ScrollingMenuSign
Videos
Latest video:
- See the Videos page for full list of demonstration & tutorial videos.
Latest Version
Features
- Create scrollable command menus with one or more sign, map, multisign, inventory, hologram or spout views. Or trigger your menus with redstone signals or even from any held item.
- Scroll through views with right-click, execute the selected command with left-click (configurable)
- Sophisticated command parser/executor - permission elevation, command costs (items/durability/economy/food/health/xp), player/group/world restrictions, variable substitutions...
- Commands can have warm-ups and cooldowns
- Macros - run multiple commands or display large text blocks with one click
- Build a hierarchy of menus using Submenus
- Flexible Access Control gives you private menus and views, or limited to permission groups.
- External scripting language support allowing unlimited flexibility in what menu commands can do
- Sign & multisign views can produce Redstone Output when scrolled or executed
- Redstone Control Signs allow remote scrolling & execution via redstone signals for sign & multisign views
- Permissions support via Bukkit superperms
- Command Logging lets you keep an audit trail of who's executed what commands from SMS menus
- Multi-world support: menus can have views in any number of worlds
- Full coloured/bold/italic/underline/strikethrough text support on menu titles, items and messages
- Configure menus or menu items to have a limited number of uses, either per-player or globally
- Comprehensive tab completion for all commands
- Optional Spout support
Possible Applications
- A menu of station setting commands for Minecart Mania (this is what inspired me to write the plugin in the first place!)
- Newbie user guide menus
- Warp menus for your favourite teleportation plugin
- A basic shop menu - buy/sell/swap items & credits
- Controlled access to commands that users can't normally run
- Item reward menus with limited usage count
- Traps built from redstone views and/or scripts
- Super-convenient game mode (survival/creative) changer with map and/or spout views
Installation
Pretty simple:
- Copy ScrollingMenuSign.jar into your server's
bukkit/plugins
folder - Optional: install Vault for economy command costs and/or permission group support.
- Optional: install ProtocolLib to make active items glow.
- Restart or reload your server.
That's it. ScrollingMenuSign will automatically create a folder called bukkit/plugins/ScrollingMenuSign
when it first runs. All data related to the plugin is stored in here.
Documentation
- Quickstart Guide
- FAQ
- Command Reference
- Permissions support
- The Configuration File
- The Command Parser
- Submenus
- Warmups and Cooldowns
- Popup Messages
- View Types
- Redstone Output
- Macros
- Menu Item Tooltips
- User Variables
- Command Logging
- Setting usage limits on menus & menu items
- Redstone Control Signs
- Spout Support
- Using External Scripting Languages
- API: Managing ScrollingMenuSign menus from scripts or other plugins
Source
Development Versions
Development versions can be downloaded from this Jenkins build server. Notes:
- Development versions have not been approved by dev.bukkit.org staff
- Development versions may be buggy or fail to work completely. Only use development versions if you a) want to help with finding bugs, or b) have been asked to, to test a bugfix.
Changelog
Usage Statistics
Since SMS v1.3.0, fully anonymous usage statistics are collected using MCStats:
If you wish to opt out of MCStats metrics collection, edit plugins/PluginMetrics/config.yml
and change opt-out: false to true.
Donations
If you use and enjoy ScrollingMenuSign, you are welcome to make a donation by clicking the "Donate" button at the top right. However, donations are strictly optional, and don't confer any special benefits over non-donors.
@desht
Thanks for that verification. I thought I was going crazy XD. Is bPerms an easy transition from PEX?
@Albuca
You'll notice your various requests are now fulfilled in 1.0.0 - user variables, signs taking text input from the player, command logging, less verbose permission check reporting, all there :)
@gabizou
PEX :( Never a totally well-behaved Superperms plugin. I'm guessing there's some setting or combination of settings for PEX that will make it correctly interpret parent permission nodes (which is what scrollingmenusign.user is) and grant all the children, but I can't work out what that is. I can verify I have the same problem when I test with PEX on my dev server (but the same setup works fine with PermissionsBukkit and bPermissions).
I would recommend asking in the forum thread for PEX.
I'm having issues with the PermissionsEx and this plugin. We added in the scrollingmenusign.user to our users and then the users can't even execute signs to just say "Hello". Also elevated perms aren't working either from that. I found that even adding scrollingmenusign.scroll was actually working even AFTER the users had scrollingmenusign.user (which SHOULD have that node already in). Is it me or are the permissions just not working correctly with PEX?
@Albuca
There's isn't any command logging facility at this point, but that's a possibility. What sort of thing would you like to see logged? Player name, command, anything else..? Log to the main console (and server.log) or to its own log file?
How would I go about logging the commands issued by the signs into console or a log file?
@desht
Sounds good! Great plugin! Its really making ALOT of things easier on the server!
@Albuca
Interesting idea re taking text input from the user. I'll have a think about it...
@desht
Thanks! Ive got it working now.
Yeah, it would be a nice setting to add. Verbose is good for setting things up, but once ready its not needed =P
I honestly cant remember, the message is gone now and I cant for the life of me remember what I was doing to cause it =/
Also, is it at all possible to have a sign that accepts a text input from a user? Preferably in chat. ie. You click a sign, then type a msg in chat, then, that message is executed in the command under a a variable. ex. A sign that adds members to a region in world guard. But you want to add someone *else* to the region. So you click the sign, then type a players name, then the command is executed.
Keep up the good work!
@Albuca
It's available here: http://forums.bukkit.org/threads/admn-dev-permissionsex-pex-v1-16-tomorrow-is-today-1337.18140/
Looks like t3hk0d3 hasn't gotten around to updating on dev.bukkit.org yet. I've put a comment on the forums thread suggesting that he might consider doing that :)
As for the permission error message verbosity: there isn't such a setting, but this is something I can add easily enough.
Not sure what you mean about "did you change the general command nodes" - what isn't working for you, exactly? And can you create a ticket for it, please?
@desht + @Sleaker
PEX 1.16 was not, and probably is still not, on the Bukkit Dev page. Which is why I missed it when I grabbed the latest version.
Also, did you change the general command nodes?
And is there a node or setting to prevent the "you do not have blah.bleh.grr node permissions" when ever someone tried to execute a command? Its great for trouble shooting and setting up, but I want it to be gone once I release this plugin on my main server to the masses.
@Albuca
You need PEX 1.16. The changelog for 0.9 makes that fairly clear.
@Albuca
PEX keeps swapping back and forth between method types. 1.16 is supported by Vault.
This error is back for 0.9, when creating a new sign. Command used: /sms create mymenu &4My Menu
16:22:44 [SEVERE] null org.bukkit.command.CommandException: Unhandled exception executing command 'sms'
And if you try and interact with a sign from the previous version for 1337
19:40:41 [SEVERE] Could not pass event PLAYER_INTERACT to ScrollingMenuSign java.lang.IncompatibleClassChangeError: Expecting non-static method ru.tehkode.permissions.bukkit.PermissionsEx.has(Lorg/bukkit/entity/Player;Ljava/lang/String;)Z at net.milkbowl.vault.permission.plugins.Permission_PermissionsEx.playerHas(Permission_PermissionsEx.java:82) at net.milkbowl.vault.permission.plugins.Permission_PermissionsEx.has(Permission_PermissionsEx.java:77) at me.desht.scrollingmenusign.util.PermissionsUtils.isAllowedTo(PermissionsUtils.java:22) at me.desht.scrollingmenusign.util.PermissionsUtils.requirePerms(PermissionsUtils.java:37) at me.desht.scrollingmenusign.enums.SMSUserAction.execute(SMSUserAction.java:83) at me.desht.scrollingmenusign.listeners.SMSPlayerListener.onPlayerInteract(SMSPlayerListener.java:91) at org.bukkit.plugin.java.JavaPluginLoader$11.execute(JavaPluginLoader.java:330) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:339) at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:171) at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:265) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:592) at net.minecraft.server.Packet15Place.a(SourceFile:57) at net.minecraft.server.NetworkManager.b(NetworkManager.java:226) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:92) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:501) at net.minecraft.server.NetworkListenThread.a(SourceFile:108) at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:471) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:374) at net.minecraft.server.ThreadServerApplication.run(SourceFile:417)
@Nabakin
Yeah, a bug in 0.8.2. Fixed in 0.8.3, you can download from the Latest Version link above.
@desht for some reason im having two problems one is scrollingmenusign gives me an error after it has been setup once already, the first time it starts up (when its all fresh and creating the config file in its folder) it starts perfectly except it doesn't recognize my permissions plugin which works with all my other plugins. Please help.
Permission plugin problem:
12:47:02 [INFO] [ScrollingMenuSign]: No Permissions plugin detected - using built-in Bukkit superperms for permissions.
what happens if config file is already set up and doesn't need creating:
12:58:00 [SEVERE] Error occurred while enabling ScrollingMenuSign v0.8.2 (Is it up to date?): Index: 0, Size: 0 java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.RangeCheck(Unknown Source) at java.util.ArrayList.get(Unknown Source) at me.desht.scrollingmenusign.SMSConfig.initConfigFile(SMSConfig.java:114) at me.desht.scrollingmenusign.SMSConfig.init(SMSConfig.java:72) at me.desht.scrollingmenusign.ScrollingMenuSign.onEnable(ScrollingMenuSign.java:90) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:126) at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:941) at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:280) at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:174) at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:157) at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:297) at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:284) at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:152) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:348) at net.minecraft.server.ThreadServerApplication.run(SourceFile:417)
Edit: Also I've tried removing plugins that might inter fear with it. I'm going to try to remove all of my plugins and see what happens
Edit 2: I tried what I said above and it didn't work so that must mean that another plugin isn't causing this error. Also I'm running CraftBukkit version 1240 I can't update to 1317 because it gives me an error for some reason.
Edit 3: I figured out why bukkit wasn't updating right and I'm now at 1317 but still has the same problems.
@DarkMinecrafter
OK, raise a ticket please - this isn't the right place for a support thread. I will need to see your permissions file, or at least the relevant section of it. Oh and what permissions plugin are you using? It needs to be superperms compatible, I don't (and won't) support anything that isn't.
i have give the user this permission and the plugin has '*' but it not working :(
@DarkMinecrafter
Users need the scrollingmenusign.execute.elevated node to run a command like "/*gm". This node is included in scrollingmenusign.user, which you should give to all users who you want to be able to use menus.
When a player click on a sign with /*gm than the sign say:
You lack sufficient permission to run that
What make i false?
Or what permission must i player have to excute commands from a sign when the player has no permissions ?