Inactive [MECH] CommandSigns v0.9 - Issue commands using signs [953]

Discussion in 'Inactive/Unsupported Plugins' started by Fluff, May 5, 2011.

  1. Offline


    CommandSigns v0.9

    Tired of having to type out the same commands again and again? Want to allow your players to use commands only at certain places? Help is at hand!

    Feature Summary
    • Allows chat commands and chat messages to be send on right-clicking a sign.
    • Allows commands to be run on signs that players wouldn't be able to use through chat.
    • Sign usage can be limited to specific players or groups.
    • Supports 'variables' for player name and x,y,z position.
    • Won't allow users to gain access to forbidden commands without permission (secure).
    • Add a cost to use a sign, or a reward for clicking the sign!
    • Limit the number of times a sign can be used.
    • Enable and disable signs without destroying them.
    • Permissions-friendly
    • Developer API available
    User's Guide

    About The Developers

    Want to ensure your bug or suggestion isn't lost in the thread? Post it on our issue tracker.

    Command Summary (open)

    • /commandsign enable - Enables the next command sign you right-click on.
    • /commandsign enable <x> <y> <z> - Enables the command sign at x,y,z in the current world.
    • /commandsign enable <x> <y> <z> [w:]<world> - Enables the command sign in world <world> at x,y,z.
    • /commandsign enable [a:]<alias> - Enables the command sign at the alias.
    • /commandsign enable <uses> - Enables the next command sign you right-click on with a number of uses.
    • /commandsign enable <uses> <x> <y> <z> - Enables the command sign at x,y,z in the current world with a number of uses.
    • /commandsign enable <uses> <x> <y> <z> [w:]<world> - Enables the command sign in world <world> at x,y,z with a number of uses.
    • /commandsign enable <uses> [a:]<alias> - Enables the command sign at the alias with a number of uses.
    • /commandsign disable - Disables the next command sign you right-click on.
    • /commandsign disable <x> <y> <z> - Disables the command sign at x,y,z in the current world.
    • /commandsign disable <x> <y> <z> [w:]<world> - Disables the command sign at x,y,z in world <world>.
    • /commandsign disable [a:]<alias> - Disables the command sign at the alias.
    • /commandsign alias - Right-click on a block to get the alias of its location.
    • /commandsign alias <x> <y> <z> - Get the alias of the location x,y,z in the current world.
    • /commandsign alias <x> <y> <z> w:<world> - Get the alias of the location x,y,z in world <world>.
    • /commandsign alias [a:]<name> - Right-click on a block to set the alias of its location.
    • /commandsign alias <x> <y> <z> [a:]<name> - Set the alias of the location x,y,z in the current world.
    • /commandsign alias <x> <y> <z> w:<world> [a:]<name> - Set the alias of the location x,y,z in world <world>.
    • /commandsign alias remove - Right-click on a block to remove the alias of its location.
    • /commandsign alias remove [a:]<name> - Removes the alias.
    • /commandsign alias remove <x> <y> <z> - Remove the alias at location x,y,z in the current world.
    • /commandsign alias remove <x> <y> <z> w:<world> - Remove the alias at location x,y,z in world <world>.
    • /commandsign alias [a:]<name> [a:]<newname> - Set the alias of the location at <name> to <newname>.
    • /commandsign config - Lists all the configuration nodes.
    • /commandsign config <node> - Lists the configuration node.
    • /commandsign config <node> <value> - Sets the configuration node to the value.
    • /commandsign exec [a:]<alias> - Executes the command sign at the location pointed to by the alias.
    • /commandsign exec <x> <y> <z> - Executes the command sign at location x,y,z in the current world.
    • /commandsign exec <x> <y> <z> [w:]<world> - Executes the command sign at location x,y,z in world <world>.
    Syntax Summary (open)

    • [command] - use on the first line of a sign to define a command sign.
    • **[title] - use on the first line in place of [command] to customise the title of the sign
    • /command - runs a command as the player using the sign
    • /*command - runs a command as the fictional user &CommandSigns
    • /@command - elevates the player's permissions (using the permissions assigned to &CommandSigns) if necessary to run the command
    • @player/group - commands following (up to the next @) are limited to that player/group.
    • \message - prints the message to chat
    • \\message - prints the message to the player
    • <NAME> / <X> / <Y> / <Z> / <I> - replaced with the using players name/x/y/z-coord/current held item id on running.
    • $;<cost1>[;<costN>] where cost is <item id>,<item number> or <item id>:<item data>,<item number> - adds a cost to the sign
    • $$ - break evaluation of a command sign
    Permission Nodes (open)

    • commandSigns.use - Use a command sign.
    • commandSigns.create - Create, enable, or disable a command sign.
    • commandSigns.super - Create, enable, or disable a command sign using /*command, /@command, @player/group, or $.
    • commandSigns.super.cost - Create, enable, or disable a command sign using $.
    • commandSigns.super.elevated - Create, enable, or disable a command sign using /@command.
    • commandSigns.super.fakeuser - Create, enable, or disable a command sign using /*command.
    • commandSigns.super.restricted - Create, enable, or disable a command sign using @player/group.
    • commandSigns.default.<default group name> - A flag stating that the group is the default group.
    • commandSigns.config - Allows a user to manage the configuration.
    • commandSigns.alias - Allows a user to manage aliases.
    • commandSigns.exec - Allows a user to remotely trigger command signs.
    Reporting a Problem (open)
    The following bits of information are helpful to include when reporting a problem:
    1. Bukkit and plugin version.
    2. Excerpt from server log of the failed command usage, preferably with the debug configuration option set to true.
    3. Complete command sign text.
    4. Command sign configuration file.
    5. Name of plugin that the failed command comes from, preferably with a link to the plugin's forum thread.

    Recommended Plugins
    • With Annotate, you can have CommandSigns on practically any block with an almost unlimited amount of room for commands! They can even activate when pressing a button or a pressure plate!
    • With ScrollingMenuSign, your signs can look even nicer while allowing your users to scroll through a menu of commands!

    Download Latest Version
    MD5: 7f4076eea7198f2c0f17cde3f62f7c1f
    Download 0.8.1i - RB 803 and previous
    MD5: 72a60e16bfd775b3d15a03aca70e86e0


    To Everyone Asking For Redstone Support (open)

    Yes, I also think redstone support would be very cool. Unfortunately, there are some major limitations on what you can do with a redstone-controlled sign. You can read about those limitations in this post, and you can read a rationale about why those limitations exist in this post. Given those two limitations, I don't think redstone support is currently a useful feature to add, especially given what Annotate can do for you. (If you disagree, please post on the issue tracker on how you would use redstone support.) In the (not too distant) future, redstone support may will be added in a separate plugin due to the different nature of redstone command signs.

    Change Log
    version 0.9 - See Post
    • If PEX permissions work, this plugin supports it.
    • Economy redone; added Essentials Economy.
    • Localization support added.
    • Added new command: /commandsign exec
    • Events properly unregistered when plugin is disabled.
    version 0.8.13
    • Default groups should work for real.
    Older Entries (open)

    version 0.8.12
    • Added handling for default groups.
    • Added support for command aliases.
    • Added /commandsign config.
    version 0.8.11
    • Fixed @ directive.
    • Fixed '/commandsign disable' bug.
    • Added aliases.
    version 0.8.10
    • Fixed /@ permissions error.
    • Added exception handling for removing permissions from users.
    version 0.8.9
    • Added PEX and Permissions 3.0 support.
    • Added new placeholders: <N> and <I>
    • Fixed bug with regular / commands.
    • Added new directives: $$ and \\
    • Added additional debug messages.
    version 0.8.8
    • Fixed /* and /@ working without permissions support.
    • Fixed Permissions creating new users with the wrong casing.
    version 0.8.7
    • Fixed command sign creation permissions.
    • Added debug configuration option.
    version 0.8.6
    • Added Permissions checks to developer API.
    • Fixed enabling bug with /* and /@.
    • Updated to work with GroupManager and fake Permission plugins.
    version 0.8.5 - See Post
    • Fixed multi-world Permissions bug.
    • Changed @ group directive
    version 0.8.4
    • Removed support for Permissions 3.x
    • Updated to 818
    version 0.8.3
    • Fixed API bug
    version 0.8.2
    • Updated for Permissions 3.x
    version 0.8.1
    • Fixed GroupManager integration
    version 0.8
    • Added /@ to temporarily elevate a user's permissions.
    • Added developer API.
    version 0.7.1
    • Fixed item data bug - for real, this time.
    version 0.7 - See Post
    • Removed SignReadMore support.
    • Added Annotate support.
    • Added more granular permissions for advanced sign creation.
    • Removed a debug message that looked like an error.
    version 0.6.2
    • Fixed enable bug on sign creation.
    • Fixed item data bug.
    version 0.6.1
    • Fixed berating of users who can't create command signs but were just innocently putting up a sign.
    version 0.6
    • Added SignReadMore support.
    version 0.5.1
    • Can no longer place blocks directly on enabled command signs.
    • Fixed @ directive.
    • Changed fake user network code.
    version 0.5 - See Post
    • Added /commandsign commands.
    • Added finite-use signs.
    version 0.4.10
    • Fixed BOSEconomy support
    version 0.4.9
    • Supports BOSEconomy
    version 0.4.8
    • Trimming commands in hopes it fixes some problems.
    version 0.4.7 - See Post
    • Added cost signs.
    version 0.4.6
    • Hackish solution to 'items not showing up in inventory' bug.
    version 0.4.5 - See Post
    • Updated support for GroupManager.
    • Added configuration option to change the display name of the fake user.
    • Added configuration option to allow command parser to understand // commands.
    version 0.4.4
    • Fixed numerous bugs when not using Permissions.
    • Beginnings of an API for other plugin devs.
    version 0.4.3
    • Added configuration file.
    • Fixed chat command bugs.
    • Rearranged code for simpler maintenance.
    version 0.4.2 - See Post
    • BREAKING CHANGE - The fake user is now named &CommandSigns.
    version 0.4.1
    • Fixed for 740
    version 0.4
    • Bukkit team trying to break everything again
    version 0.35
    • Fixed conflict when using <NAME> in commands overriding permissions.
    version 0.3
    • Added NAME, X, Y and Z variables
    • Added permission filter
    • Allowed creation of signs that call commands user would not usually have access to
    • Allowed customisation of [command] to other text.
    version 0.15
    • Bugfix ("Insufficient Permissions" annoyance bug)
    version 0.1
    • Plugin Released
    Dimochka, c_dric, Flipp and 5 others like this.
  2. Offline


    I have a suggestion. Add a variable for player names. So basically you can have a sign that uses the name of the player clicking it.
  3. Offline


    Read the OP more carefully, there is a variable: <NAME>
  4. Offline


    Silly me :) Just came over from edward hands version. I,ll read through the change log.
  5. Offline


    NOTE: I didn't look to see if anyone asked it or anything so don't get mad if it has been asked before or if you are working on it :)


    I would like you to implement the use of redstone to signs so if you hooked up a command sign to redstone and activated the redstone the sign would out put the command.

    Thanks :)
  6. Offline


    All i have to say is THANK YOU SO MUCH!
    Now i don't have to havepeople manually pay me and i wont have to manually send them the items.
    We're actually making a whole mall. It's amazing.
    Thanks again.
  7. Offline


    Seriously tired of people asking about this, but it's my own fault for not putting something in the OP before now. I am more and more convinced that this is not a useful feature, despite the initial gut feeling that it'd be really cool. Give me a use case that isn't covered by the Annotate integration but is allowed according to the limitations, and we'll talk.

    EDIT: And when I say 'Give me', I mean 'Post on the issue tracker'.
  8. Offline


    What if there is a user "&CommandSigns" ?
    does it matter?

    and some plugins wont accept & as a name , still trying that towny thing.,

    towny says "None of those name were vaild" when i try to add "&CommandSigns" as mayor..
    (trying /*t add <NAME> , in order to let people add them selfs to towns with a cost)

    is there any way to change that to something without & ?
  9. Offline


    There is a legacy option to change it to '/CommandSigns'. This also has plugin conflicts, but you can try it. However, I suspect Towny is checking to see if the name is a valid Minecraft name according to the characters that are valid in a Minecraft name. The fake user will ALWAYS have an invalid character in it according to those rules so that a real user doesn't accidently use the fake user permissions.

    Here's a fun trick that might be useful to someone. Let's say you've got lots of Permission groups. You want one of them (for the sake of this example, the group name will be 'red') to warp somewhere when they use the sign, and you want everyone else to warp somewhere different. Now, you could just use the @ directive and include instructions on the sign for every single group. That's a lot of work. Alternately, you can use the interaction between the @ directive and cost signs to make it easy for you.

    In this example, we're going to assume that portal blocks are not obtainable by players on your server. Here's the command sign:
    @red /warp <wherever> $;90,1 @ /warp <other-place>

    How does this work? When a member of red group uses the sign, they'll first warp and then try to pay a cost of one portal block. Since they can't, the evaluation of the sign stops (and they'll receive a message about being unable to pay, which may be a little sloppy, but the ease of writing it might be worth it). When a player who is not a member of red uses the sign, they'll first hit the @red directive and skip commands until the next @ directive. The empty @ directive clears the player/group restriction, so everyone can use commands after that. And so, everyone who is not in red will warp to that other place.

    This uses the fact that cost signs can stop evaluation of a sign (which is mentioned only once and very briefly in the User Guide) and it introduces the empty @ directive, which has been an undocumented feature since 0.5.1.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 15, 2016
  10. Offline


    In this rant, I will be comparing RedStone implementing and Compromise Ideas through out.

    RedStone - API
    What is API? (own interpretation)
    API, in other worlds, is a system that allows you through event(s) do a action(s). The lower the API the harder it is to use. The more advance it is can mean the lower it goes. But, if you add easy to use featuring it keeps it high and advanced.
    How does it raise the API and advances it?
    Redstone circuitry has became more common knowledge and comes with guides, hands-on learning, plugins adaptions, and easily manageable. It allows conditioning. Which in short means if something doesn't add up the action doesn't take place. This is a key feature in any API. Another is the WAIT function or delays. Allowing things to roll in a sequence.
    Ex. AND, NOR, NAND, etc.
    Ex. You can make a sequenctial movie! [Scene1: TP player Scene2:Creeper runs to player Scene3: BOOM!]

    RedStone - Uses

    If, you don't want to die from text please just stop reading now!
    Ok, first and most important. Is the one I will never let down.

    Second, is a building a race. You can use redstone powered signs to alternate blocks appearing and disappearing. Like, make a wheel spinning! Just use command sign to sequencly paste a shape and a opening! That way it is spinning :O.
    Third, alot of key features we don't want players to have access to we use /*. For sanity sake I like the idea of WAIT or IF conditioning. Also, the use of voiceing themselves to palyers. A sequence of that, like Prepare for battle in 10secs! and such for timers would be cool.​
  11. Offline


    @IcyCoolDude sounds like the programmable CPU in the SSP mods.
  12. Offline


    i asked what will happen if the fake a user is a real player, so that's what i did ,
    1. asked my friend to log in as "&CommandSigns" (he uses a ilegal client)
    2.tried to make him a mayor
    3. got "none of those names were vails" error...

    how ?

  13. Offline


    I'm not debating the usefulness of redstone. Yes, it's useful. However, I'm not convinced the sign that could be triggered by redstone will be useful.
    Have you tried using the commands you would use on a redstone command sign on a regular command sign? I was under the impression that a number of commands from sk89q's plugins would not work with CommandSigns. For example, I know that the /region command from WorldGuard works fine, but the /heal command does not. If both //load and //paste work, then I'd have to say that is much more useful than trying to use Falsebook's set-block and door signs to recreate an area. Please tell us about any WorldEdit commands that you've successfully used from a command sign.

    Ha! Yes, how indeed? I'm missing information about the configuration file in the OP. Go look in the configuration file and set legacy.useOldCommandSignsUser to true.

    The next version is ready, but I think I'm going to wait for the 1.6 RB until releasing just to make sure it stays compatible.

    New in the next version: /@. Use /@<command> similar as you would /*<command>. The difference is that /@ is run by the user that activated the sign, but it uses the fake user permissions if it has to. This fixes the incompatible commands from WorldGuard and WorldEdit (at least, the two I tested). It also opens up the possible use of basically every other command out there. You don't need an override that takes a player's name any more. Just give the permission to the fake user and use /@.

    This does modify in-memory permissions. If you start getting incorrect stuff written out to your permission files, let me know. All of my permission tests showed that the permissions were removed without side-effects.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 15, 2016
  14. Offline


    @Fluff I don't get the meaning of that post. Does the new version evaluate permissions based on &CommandSigns but evaluate the command upon the activating person or does it grant temporary permissions to the user or?
  15. Offline


    Fluff do this! I have already proven the compatability xD
    In a map you want to the sign to copy and paste! Either create it or //copy and //save it WHERE you want it to be pasted by the sign! Then remove it! The have the sign /*/load [SCHEMATIC] which you saved then paste it with /*/paste -o you can also use /*/paste -ao if you don't want to paste airblocks too.

    Also, fluff that would be awesome of the /@ instead of doing give them perms do that command then removing xD
  16. Offline


    This. The permissions are very temporary as far as I can tell; during my testing, I executed a delayed command and then logged off before it could finish. The permissions still did as they should. Personally, I'd still use /* where I could since that doesn't alter player data at all. Even though /@ still seems a little shady to be adding and removing permissions.
  17. Offline


    How can i change what is on the sign but with the command? For example, the command in the sign is: /user -setgroup u:<NAME> s:Miner

    I want to show this phrase in the sign: Get the job of miner here!

    And other question;

    For example: The player hits the first sign (the sign to pay for the job), and when he hits, the fence on the way desappears, so, he enters on the room. (The fence need to desappears for a short time, like 5 seconds, and appear again).

    Is possible to do that with the command sign? Or something like that... A teleport?
  18. Offline


    You can also use HeroChat or CommandSign msg. Like /*msg <NAME> [message here]
    You can always just use Command sign with a pressure plate which sends out a RedStone circuit to open and close something xD
    If, you don't want that you can use /*tp <NAME> X, Y, Z with command books or just have other tele plugins use.
  19. Offline


    If you want to show something different on the command sign, use Annotate.
  20. Offline



    What's wrong here? When i hit the sign i only pay the money but dont get teleported.

    And other question, when a normal player (no OP) hits the sign to become a Miner, the sign says: "You have no permission to use this command".

    The command i'm using is /user -setgroup u:<NAME> s:Miner and i already added the node to all jobs on the permissions (commandSigns.use)
  21. Offline


    ignoreSpacesAtEndOfLine: true/false?
    tp needs to be 278,56,-64
  22. Offline


    @Fluff thank you for clarifying.
    Got a suggestion: Get together with @desht and try to join this with ScrollingMenuSign. It would be awesome to be able to create let's say, a sign with 6 lines. The first is title, then every line after that is binded to an Annotate so instead of typing a command in SMS you would type the name of an Annotate (perhaps a command for Annotate so when you have added the lines you want, you could do "/ann bind test" ) and then whenever "test" is done as a command in SMS it would trigger Annotate and CommandSigns. This would be nice to save some signs as you can create multiple commands that you scroll through.
  23. Offline


    This means the player doesn't have permission to use one of the commands on the sign. You should try /*user -setgroup u:<NAME> s:Miner (and make sure you give the fake user the permissions to use the /user command).
  24. Offline


    What is the permission? i tried p2.user but didn't worked

    also, the sign:


    i'm gettin crazy, dude.
  25. Offline


    I don't know, you'll have to check the plugin that has the /user command. Also, the permission needs to be assigned to the fake user.

    0.8 released.

    /@ commands are in. You can limit what /@ commands can do through permissions on the fake user. If the player can't do it and the fake user can't do it, then it just won't work due to permissions. In addition, there's a new permission node to control who can create /@ command signs.

    In addition, the first version of the developer API is complete. Instructions will be in the User Guide shortly.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 15, 2016
  26. Offline


    If it is set at false your sign is trying to issue following command:
    /*user -setgrou p u:<NAME> s:Fa zendeiro /spawn

    See those spaces? Yeah that wouldn't work in the normal command and won't work with the command sign.
    I suggest changing it to true!

    Feature Idea:
    Sign use charges for each player!
    So, each player can only use it once!
    I want to use it for returning a quest in. Without messing with player groups.
    Another idea is instead of a @group how about a #permissions. So, can make dummy permissions that can be removed individually.
    #Permissions = Check if player has permission node.

    Suggestion opening up a spot for people to paste Tips/Tricks.
    Another Project I did:
    I made a COD:Nazi Zombie I setup a row of 10 pressure plates. Associated proper commands to each. I then made schematics for each one + a air block to remove the last pressed pressure plate. It works like a Level 1-10 system. I then used superpick(worldedit) to remove all but the level one pressure pad. When you press it it pastes the next pressure pad and removes the one pressed and runs the commands. Thus making 10 level system. To, prevent players from pressing all used craftbook to create blocks above all pads and hooked it too a system of mob checkers so if there is one mob in area the blocks block player(Note: players were still able to activate so I added a door system so this is outofdate). BAM you got your self COD:Nazi Zombies.

    Past Tip:
    If you remove block associated with annotation without a player destroying it the annotation is still associated to that blocks spot thus you can replace it with same block or ANY block, and it will run commands like normal!
  27. Offline


    This is what im getting when anyone tried to right click on a command sign. The sign creates itself properly, changing the color etc, but doesnt seem to work when right clicked. Any help would be great :)

    UPDATE: The problematic plugin conflicting with this is essentials group bridge, which is needed for group manager to function properly.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 15, 2016
  28. Offline


    Pretty sure you don't need group bridge to use group manager. I'm not supporting 'fake' Permission plugins that try to bridge Permissions and Group Manager. In this case, it breaks because the bridge doesn't support what the Permission plugin supports. Use one or the other; support is included for either, but don't use the bridge.
  29. Offline


    Whenever I disable groupbridge, the group functions stop working. It says on the essentials wiki that groupbridge needs to be installed to use groupmanager. I know thats a problem for them, not you, but just trying to see whats going wrong
  30. Offline


    0.8.1 released.

    So, I could see where what I did could be argued to 'break' the public Permissions API. I fixed it up so GroupBridge should work now too. Or, at least, it shouldn't give that error. I wouldn't be surprised if GroupBridge's data directory points to the wrong place, but that's GroupBridge's problem.
  31. Offline


    Ok I'll test it out. Thanks for the update mate :) If it doesnt work I'll get on to groupbridge

    Edit: Works GREAT. Thankyou so much :)
    Edit2: Oh wait no it doesnt, spams my console with permissions, ah well, damn plugins. Thanks for trying

Share This Page