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


    Now I am getting this error:
    08:54:27 [SEVERE] Could not pass event PLAYER_INTERACT to CommandSigns
    java.lang.ArrayIndexOutOfBoundsException: 0
            at com.edwardhand.commandsigns.SignPlayerListener.runCommand(SignPlayerL
            at com.edwardhand.commandsigns.SignPlayerListener.onPlayerInteract(SignP
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
            at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEven
            at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.j
            at net.minecraft.server.NetServerHandler.a(
            at net.minecraft.server.Packet15Place.a(SourceFile:57)
            at net.minecraft.server.NetworkManager.a(
            at net.minecraft.server.NetServerHandler.a(
            at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
            at net.minecraft.server.MinecraftServer.h(
    I am on CB 766 now, that is with no other plugins.
  3. Offline


    I'm pretty sure I read once somewhere on the forums that the default program used to unzip will unzip the jar too. Try the new download link.

    Yeah, that doesn't look good. Please post the command sign being used.
  4. Offline


    Cheers works like a dream :)
  5. Offline


    Ok, I have to do more testing, I figured out that the error came from the fact that the command didn't exist because I had disabled the plugin. However, when I do a simple text sign, it does work. It is some sort of plugin overlap obviously
  6. Offline


    I'd still like to make it so that error doesn't pop up...a nice single-line error from CommandSigns would be better. Please post the command sign used.
  7. Offline


    That was pretty confusing because it was apparently two plugins, VanishNoPickup and Sploderrows. I am not sure about the first one but the seconds one has some sort of issue with signs if they aren't used for its function and they are taking their time fixing it. As I recall there is another plugin to replace sploderrows for fire arrows and I have no need for vanishnopickup

    The sign I used to get that error was:

    **[Red Base]
    @red /warp red@

    hm... I disabled Roles too, which is really outdated and shouldn't be trusted even though it still works. Roles controlled that group to some extent so it might have something to do with it.

    It might be a problem with roles also, because even though I got the signs working, none of the group signs work any more.

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


    Why are you surrounding it with @? If you're just trying to get it to work with red group, you only need the @red; all commands after that will only work for red group (or a player named 'red') until the next @ directive. I see the source of the error, so I'll fix it so that it returns something nicer.
  9. Offline


    Oh, so I don't need the second one to make it work? I guess I was just stuck in forum mode
  10. Offline


    I love the idea of it BUT it sounds buggy and I would love to know what plugins its compatible with befor it try it
  11. Offline


    I don't think there are many issues, I am just using unstable and inactive plugins.
  12. Offline


    can you point me to a plugin or if you dont know of one that works look at supporting it for your plugin.
    **[command] woks great but is it possilbe to hide or override the actual command line text with something else.
    first reason, most commands are ugly. Second, some commands i dont want users to see how its typed out to do it on there own in commandline.

    I am hoping you can help me with one issue, not sure if the issue is me, your mod, or other 2.

    I am using your great plugin, and it works great, with one exception.
    The issue i am having is somewhere between Permissions, CS, MinecartMania.
    I have a sign with "/st home", this cant be done with /* as its very user specific.
    every user lvl in permissions has access to the CS use permission.
    every user has permission to use /st with minecartmania.
    using the CS sign with the command, there is no returned text (failed permissions or accepted process call notification) on client or server side.
    if the users manual type the command it works.
  13. Having issues with latest:

    09:59:03 [INFO] &CommandSigns could not execute command "/raffle ". Does command exist?
    09:59:03 [INFO] If so, perhaps you should op &CommandSigns

    Of course I gave CommandSigns the proper permission node. The command works fine for anyone else who I manually give the node.

    I don't get why it adds spaces after the command....maybe that's the problem?
  14. Offline


    @Teser, @Joy: I wonder if your issues are not related. The only reason I can think of that players can do it and a command sign can't (other than plugin developer paranoia) is that some plugins just don't handle the trailing space very well. I've added code to remove any trailing spaces. I'm going to take a look over the task list and see if I can't fit anything else in before I release today.

    0.4.8 released. Let me know if this doesn't fix any issues for you.

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


    wow, this plugin is awsome! Great work!
    Thanks For the "costs" thing, cant wait for SRM , gone be one of the MUST-HAVE plugins in your server
  16. Offline


    Could you get this to work with uQuest and Jobs? The problem is: I only want people to be able to get quests and jobs via signs, but when I use your dummy-user '&CommandSigns' he is the one who gets the quest/job and not the player :(

    edit: this is just frustrating. Is there a way for players to only being able to trigger commands with signs and not via chat?
  17. Offline


    For /* to do what you want, you usually have to use commands that take the player's name as one of the arguments. If you want to use it with a plugin that doesn't offer those kinds of commands, you'll have to bug the plugin author to add them.
  18. Offline


    Hey there, CommandSignsMan. I was taking a look at your code, and was wondering if you'd be okay with me using it as an example for making a fake/fictional player like your &CommandSigns.

    It'd be a great addition to rTriggers, and credit will be given where due. Thanks!
  19. Offline


    Use as much as you want. I update these because we're using them on our server, not because I have a stake in carving out a space for myself as an awesome plugin developer.
  20. Offline


    You don't think you could make this do the same thing it does with iConomy with BOSEconomy, do you?!

    I'd really love this plugin for warping and stuff, but a plugin that could let players obtain boseconomy money from signs? I would freaking worship you.
  21. Offline


    0.4.9 released.

    BOSEconomy support added. In addition, if you've got both iConomy and BOSEconomy installed and you want a sign to use one or the other, set the item data. For iConomy, use an item data of 0. For BOSEconomy, use an item data of 1. For example:


    will always give 200 iConomy credits while


    will always give 200 BOSEconomy credits.

    Please note that it's only necessary to specify this item data if you have both economy plugins installed. If you've only got one, then it'll do the right thing without the item data specified.
  22. Offline


    You... read my mind... (points to post above)... I LOVE YOU!

    Wait.... there isn't a way to use signs to obtain cash.. is there? These money commands are realllly confusing me. (Yeah, I am using BOSEconomy).
  23. Offline


    Yes, use a negative cost. In the examples in my previous post, both of the signs had a negative cost, so they actually gave money instead of taking it.

    Here's an example of a sign that takes 100 iConomy credits and gives 100 BOSEconomy credits:
    This sign will only work if you have ignoreSpacesAtEndOfLine set to true in the configuration file.
  24. Offline


    Wait.. what I want to know is if I can go up to a sign, click it, and sell 20 iron for 1600 BOSEconomy money ( want to obtain the money) basically. I don't use iConomy or anything... hehe I am still sorta confused... not the smartest person in the world.
  25. Offline


    You can make that sort of a sign too.

    Once again, it requires ignoreSpacesAtEndOfLine to be true. However, remember that this is not a sign shop plugin. That you can do this at all is more of a side-effect of how cost signs are implemented. Sign shops implemented by costs signs will be fixed-cost, infinite-supply shops. If you need something different or more configurable, you should use a real sign shop plugin.
  26. Offline


    Nope, that is exactly what I want. Also, I am having trouble finding anything like this that works with BOSEconomy. I still dont understand completely how 20 iron ignot would give you 1600 coins from that command though... So $;(item no.),(item amont);(zero?),-1600

    I will test and look at the help thingy again. Thansk a ton!

    EDIT: Hmm... well I tried it out... and it did something! It took my iron by the 20's, but I got no money in return. Is this the iConomy version? I am using BOSEconomy

    Agh I really want these signs working! Why wont it give me cash!

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


    0.4.10 released.

    My bad, Lanuk. I missed a couple of checks that wouldn't let anything work if you only had BOSEconomy installed. It's fixed now.
  28. Offline


    Can we add Redstone support? That would be EXTREMELY useful, kind of like xSigns
  29. Offline


    Before I spend the effort to add redstone support, I want to make sure it actually IS useful. Redstone support has two major limitations.
    1. Commands run by redstone support will always be run by a fake user.
    2. You will not be able to use placeholders (i.e. <NAME>).
    Because of #1, redstone support is similar to always using /*. But can you imagine trying to use /* if you didn't have <NAME>? Right off hand, the only sorts of commands that I can think might be useful to put on such a sign would be weather control/time control commands, and I'm pretty sure Craftbook/Falsebook offer IC's to control both of those.

    So, this is my request to everyone who has requested or thinks they might want redstone support: describe in detail how you would use it. If possible, state which plugins and which commands you would use on the signs (ignore space limitations for now; assume the signs are infinite length). If you understand the implications of the above two limitations, try to keep those in mind. If you don't, just tell me how you'd use it and I'll tell you if it'd be possible with redstone support.
  30. Offline


    can i ask why are thsose limitations?
  31. Offline


    Those limitations exist because player information is not propagated on redstone activation. In less technical terms, you can tell who pushes a button when the button is pushed, but if the button activates some redstone circuitry, you can't tell later who pushed the button. Further, it's possible that NO ONE pushed a button. Maybe you're running Craftbook/Falsebook and are using one of the automatic IC's. There is no player information in that case.

    Those limitations are not simply my limitations. They're limitations due to how redstone works. I suppose it's possible that someone could create a plugin that sent player information through redstone circuitry, but it would likely raise more difficulties than it would solve. For example, if you placed a redstone torch, it would likely make sense for your player information to be "attached" to that torch. But what if your torch is part of a NOT gate? When someone presses a button and toggles your NOT gate, whose player information should be sent? And what about AND gates? You basically have three choices of possible player informations to send through an AND gate: the first AND argument, the second AND argument, and the player information attached to any of the torches in the gate.

    I've thought a great deal about redstone support. If you look back, you can see that I wanted it too. However, I'm having a hard time coming up with plausible use-cases for such a feature given the limitations. It will also be more complicated to explain how (and why) redstone signs would work than it is with /*. Unless I get some compelling evidence that the feature actually WOULD be useful, I'm not going to do it.

Share This Page