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
And if you have time, can you response me about down questions (I know they need a lot of time to write good anwser so I can be patient and wait)?
@wiedzmin137
Yeah, I know all about the various plugins and libs that have been recently developed for this. The plugin you link to doesn't provide any kind of documented API that I can see - any holographic / floating text support that I add will be done through code, and not using any direct NMS access, or reflection. That means either ProtocolLib or a plugin with a stable, well-defined and well-documented API.
@desht
Theoretically, you even don't need to use ProtocolLib. Holographic Displays plugin was to explain what I mean.
You can see how do it here (if you didn't know that before)..
@wiedzmin137
Display a holographic view is pretty easy, but interacting with one would be quite a lot harder. Still, it would look pretty cool :) If I do ever implement something like this, it will require ProtocolLib since I have no intention of adding a direct NMS dependency to SMS.
Hmm... And what about Holographic view used by signs and redstone? It may look smilar to Spout view.
Wow, this is such a great idea ^_^
@desht Thanks for lore.
I know that there is support Submenus so not, I didn't look that. I mean the ADVANCED USAGE of that.
EDIT: I have used some of SUBMENU options and I've seen that the doors doesn't appear and menus doesn't work properly.
@wiedzmin137
Well, there is support for Submenus - is that what you're looking for?
Regarding colours in lore text, yes - just put "&X" in where X is the colour code (see http://minecraft.gamepedia.com/Formatting_codes). E.g.
and with the API:
@desht
I have some questions about usage some features in SMS.
Can I set up one menu with some submenus/subviews which can be easy toggled. I mean you have on first use e.g. 5 buttons with classes, all are submenus. You click on one and other don't dissapear, but click on other quick back to main menu and go to this other submenu (or direct pass will be better).
Is there option to make colored lore text on buttons in InventoryView by using command and API?
I'll keep this source code public becouse I want to make it public, with other people (in the end GitHub is for that).
@wiedzmin137
OK, I see what you're trying to achieve. It's a good idea, I agree - I'm just still a little concerned over the way this is very specific to one type of view (inventory view). Right-click on other views (maps/signs) scrolls the view by default.
What I could possibly do is add a new "alt command" to each menu item. That would be triggered by a right-click in the inventory view, and perhaps a shift-click on sign & map views (and Active Items).
It would have to be up to the user though to make it clear that an alt command exists, via the lore. An example (with made-up commands):
That would work great for an inventory view icon, but would of course be misleading for a sign view.
Also, you're welcome to use my code, just keep it open source please :)
@desht
It's not a secret that I'm creating new version HeroesSkillTree with option to see in ItemGUI how skills do you have, how powerful are they and what it will be their power on next skill level.
I want to have RightClick to upgrade skill level and LeftClick to lower this level (or vice versa).
I'll check your new method and I'll tell you about results. Then I'll make pull request to my GitHub repository if you want to see that. And sorry for long response, I haven't subscibed this page and I don't think that you have responsed me.
EDIT: Now it's works without errors, thanks :)
EDIT2: And here it is (it contains some parts of your plugins' code, sorry).
@zpremio
@Ludovic67114
Yep, the right command syntax would be:
Sorry I didn't reply sooner, been a little busy over the last few days...
@Ludovic67114
hey... you got a space too much... "/ jobs join Woodcutter" i think its "/jobs join Woodcutter"
Good morning. I managed to find my problem, it was made ​​an input error control, I had to do / sms create ....... and / sms add jobs Woodcutter "/ jobs join Woodcutter". This I did not do it.
@wiedzmin137
My concern here is that separate left-click/right-click only applies to inventory views, not any other kind of view type. It's special menu behaviour for one specific view type, which feels wrong. What specific applications are you thinking of where it would be useful to do this? (Note: I'm not saying no, I just want to have a better understanding of your plans... feel free to take this to private conversation if you prefer).
As for API hooking, a NoClassDefFoundError will get thrown if the SMS plugin is not present or (I believe) not enabled. I'd need to see your full code there to see what's happening but this should basically work:
Be sure of course to have
depend: ScrollingMenuSign
orsoftdepend: ScrollingMenuSign
in your plugin.yml!So... Please, add differentiation of L&R clicks when you'll have free time, it's have big potential.
And I have error when I don't have got SMC in plugins folder. I use that (look down) and add onEnable() after initialize logger
Then I get that in console. Method in API page returns this error too. Is there way to fix that error (plugin it works but this error is ugly)?
Already, thank you for your reply. Made in, what I want to do is your plugin, to put signs to a job, or a left. I had seen on a French forum, with your plugin, you could do that, but I do not know how.
@Ludovic67114
I'm not completely sure what you mean here. What command do you want to run? And how do you want to trigger it - when someone clicks a sign?
Hello, I have a question. I would use the plugin for Jobs plugin, but I can not find where to put the command. Sorry for my english is a little rusty.
@wiedzmin137
OK, views are actually persistent objects (and SMS will auto-save them so they persist across server restarts too). What this mean is that you don't want to be adding a new view every time - create the view once (e.g. on plugin startup) and then just show it when the command is run (
view.showGUI(player)
).You can give the view a name too, so you know what to check for. E.g.:
Pick any name you want for your view name. You probably want to create your view at the same time your create your menu. And note you can use view.showGUI(player) to pop the view up (toggleGUI() toggles it up and down).
I'm afraid there's no way to distinguish between left & right-clicking an icon (that could be added but it wouldn't work for any other view type so would be quite inconsistent).