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

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

  1. Offline

    Fluff

    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

    Source

    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

    ArmEagle

    Sigh, was going to write a long post.. when I found out I made a mistake when downloading the latest version and we were still messing around with 0.8.5. Anyway that works now.

    Does the plugin have a clean way of reloading the config file, without having to use /reload?
    Maybe you changed it. But I noticed that in 0.8.5 if I disabled and enabled CommandSigns (using Plugman) it would register events a second time. Unfortunately that's a bit of an issue with how plugins are setup in Bukkit. I myself make sure I do not register my event listeners more than once by using a global boolean. I do re-read the config file on enabling again though.

    I might have another comment. But I've done too many /reloads by now already, so that will have to wait till after the nightly backup.
     
  3. Offline

    Gritania

    Does Essentials Economy Work with this plugin? If so can someone tell me what i should put on what line to make it so people have to pay to use a command
     
  4. Offline

    Fluff

    @c_dric , I've got a good idea what's going on with the default group issue. I still have no clue what's going on with /killstats.

    @ArmEagle , I don't have a command to reload the config. I'll make sure the events don't get re-added with repeated onEnable.

    @Gritania , Essentials Economy isn't supported. I can add it in the next version.
     
  5. Offline

    c_dric

    Fluff,

    No worries. I replaced the '/killstats' by '/*slay <NAME>' for now.
     
  6. Offline

    Gritania

    Thanks
     
  7. After quite some annoying and confused testing, I can report that in 8.11, group inheritance is broken on @ signs.

    So, for user in group CEO:

    ===
    §2[command]
    @g:Vendor
    /@buxlottery RAFFLE
    ===

    This does not work ^. But this does:

    ===
    §2[command]
    @g:CEO
    /@buxlottery RAFFLE
    ===

    Where CEO inherits from Vendor, of course.
     
  8. Offline

    Fluff

    Which permissions plugin are you using?

    EDIT: Bet a dollar it's PEX.

    After checking it out, it's apparently a Permissions problem. Why a permissions plugin would allow for default groups but not report that all users without an explicitly defined group belongs to the default group is beyond me. Between this and the @ inheritance problem, I'm almost ready to throw out permissions altogether (even though I know I won't). Why provide the capabilities to the users if you're not going to provide a (relatively simple) way for plugin devs to use them?

    Maybe I'm wrong, but I haven't seen a single permissions plugin that reports a user as belonging to the default group unless they've been explicitly added. This is madness. Further, PEX is the only plugin out of the four I support that doesn't check group inheritance when checking to see if a user belongs to a group. More madness.

    I'm stepping away for the rest of the day. I wanted to get another release out there to fix these issues, but it'll have to wait until tomorrow.

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

    mujik

    Hi
    Great plugins, this one and Annotate too....
    Thanks..
    The only problem i have is when try to use the signs with iConomy commands
    I want players to go to a bank and create accounts there by clicking a sign with a /@command
    but whem they click the sign nothing happens and a message appears at the console:
    CommandSigns Error: Couldn't find the permissions file!

    but if an Admin with sufficient permissions use the sign everything looks fine and the account is created

    CommandSigns works fine with all other commands with permissions being elevated correctly, only commands from iConomy are not working

    I'm using commandsigns 0.8.11, iConomy 5.0, Permissions 2.7.4 and CB 860
    '&CommandSigns' is Op and Admin with * permissions
    and my sign look like the code below
    Code:
    [command]
    /@bank join Mybank
    Am i doing something wrong??
     
  10. Offline

    Pippin

    I really, really love this plugin. But I have a (pretty simple) idea, with a lot of reference code I guess.
    Could you make it possible to use iConomy?
    So you have to have X amount of dollars to do a command. An example being /heal. Maybe it can override the permissions system. Because I don't want my members to /heal. I want them to be able to go to a "healing area", left-click a sign, pay 100 dollars, and bam; health restored.
     
  11. I'll add the PEX people why, and if this can be improved, they have been very flexible in making changes so far, plugins are there for the users, right :)

    Don't give up, this plugin is unique and awesome, especially combined with Annotate.
     
  12. Offline

    morizuki

    It's not working when I'm using Command Aliases like bShortcut or Command Helper.. Can u add this?
     
  13. Offline

    badbh222


    If you read the User's Guide, you would probably know it is already supported:

    Code:
    $;0:0,100
    /@heal
    
    Would be my best bet.
     
  14. Offline

    Fluff

    @mujik , please add a couple of snippets of your server log with debug turned on - one when using a sign with /@ that doesn't use an iConomy command, and one that uses /@ that does use iConomy.

    @morizuki , my initial answer is 'no', but I have an idea that might support the command aliases. I'm just not sure if it'll work with the fake player or not. I'll try it and let you know.
     
  15. Offline

    morizuki

    Ok sure.. I'll wait for that.. Please do let me know :D thanks..
     
  16. Offline

    desht

    That's already supported - just do a command like "$;0,100 /heal" and it will charge you 100 iConomy credits (0 is the "special" item ID for economy credits - non-zero item ID's can be used to charge items). It's all documented on the Wiki for the plugin.

    @Fluff - confirming that 0.8.11 has fixed the problem I reported re: permissions checks failing for /@ commands. Thanks!

    Got another API feature request for you though. A user of ScrollingMenuSign wondered if SMS macros could be halted by CommandSigns costs not being met. Now this can easily be worked around just by putting the cost & command on the same macro line, but it occurred to me that a general way for other plugins to know if a command was halted would be handy.

    E.g.

    PHP:
    csHandler.runCommandString("$;0,300"player);
    Boolean wasHalted csHandler.lastCommandHalted(player);
    wasHalted would be true if the $ command failed due to the player not having 300 credits, false otherwise. Seem reasonable? Then multi-line macros (at least in SMS) can correctly stop if necessary.

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

    Fluff

    @desht , I'm not against; I'm just not sure why it wouldn't work with the current implementation. If you put the whole macro into the command string and send it, it will break if a cost is unfulfilled.
     
  18. Offline

    desht

    Good point - I seem to recall thinking of that a few days ago and then forgetting about it :confused:
     
  19. I asked, this is a bug, and already fixed in latest version, should be up soon I guess :)
     
  20. Offline

    t3hk0d3

    This is SPARTA!!!11 :D

    Well, thank you, that was a bug.

    EDIT
    Code:
    ret = new ArrayList<String>();
    for(String s : user.getPermissions(player.getWorld().getName()))
        ret.add(s);
    =>
    Code:
    ret = Arrays.asList(user.getPermissions(player.getWorld().getName()));
     
  21. Offline

    ArmEagle

    Something different. Shouldn't you add a Permission node limiting who can destroy a command sign? Or probably just use .create for that. But that currently doesn't seem to prevent any normal player from breaking the sign.
     
  22. Any area-protection plugin? :S
     
  23. Offline

    Rainforce15

    ok, silly question: how am I supposed to make "&CommandSigns" part of the user permission list?
    just adding
    Code:
    &CommandSigns
    group: Admin
    Will break the whole file. Working with " '&CommandSigns' " does work but gives no result when I try to let a sign execute admin commands.
    (to clarify: whats the '&' char doing there?)

    also your syntax description isn't foolproof.
    I tried things like
    /*command
    /give 1
    instead of
    /*give 1
    for some time.
    so you might want to write it like "/*(command)" or something more obvious.

    EDIT: pretty much 50% of my commands (that I execute as an admin user) don't work, and the console tells me I don't have permission. solution?
     
  24. Offline

    Fluff

    Annotate also has a way of setting this, though it doesn't prevent a player from breaking the block that the sign is connected to or destruction via explosions.

    @t3hk0d3 , thanks for that. Java isn't my native language, so I'm sure you can find all sorts of little things like that in the code.
     
  25. Offline

    MG127

    your doin it wrong :D
    /* just executes the command with the player &CommandSigns
    what you need is /@ that will level the players permissions to the permissions of &CommandSigns, theoreticly


    but i have the problem that everything i write doesnt work:
    2011-06-13 16:33:16 [INFO] ? CommandSigns: MG127 could not execute command "/warp car". Does command exist?
    2011-06-13 16:33:16 [INFO] ? CommandSigns: If so, MG127 may be missing a permission.
    same with "/@warp car" and also "/warp car"

    CB860, cmdSigns 0.8.11, permissions 2.7.4
    permissions for &CommandSigns:
    - dc.warp.*

    my permissions: '*' :p
     
  26. Offline

    Fluff

    I'll need more information.
    &CommandSigns is the fake user used as a 'permissions holder' that can either execute commands on behalf of the player or share permissions with the player. To add a permissions file, you have to put the name in single quotes. Then, either add the user to a group or give the user the permissions you want. You can also OP &CommandSigns. The & doesn't do anything except prevent a player name from colliding with the fake user's name.

    If you have '*' permissions, it should work without permission elevation. What does your server log say if you have debug turned on?

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

    Rainforce15

    Bukkit build #818, plugin v 0.8.11 (at least thats what the title states)
    the message is your standard "Rainforce15 could not execute command" etc., tested with "/time 0" to set it to day with an admin that has '*' as permission.
    Debug only says "command - /time 0"
    sign text is
    [command]
    /time 0
    config is standard, except for writedebugmessages: true now
    it's a bukkit standard command, as far as I know.
    EDIT: commands from some other plugins work without any problems. (tested with worldedit for now)
     
  28. Offline

    MG127

    now i know, /warp isn a hard wired command from defaultcommands its only an alias, so if i use the hardwired thing, it works: /@dcwarp
     
  29. Offline

    Fluff

    Yes. CommandSigns will not work with command aliases at this time. I'm pretty sure DefaultCommands uses a ton of command aliases. @Rainforce15 , this may also be your problem.

    EDIT: This actually make a lot of user-reported errors much clearer. Thanks for figuring this out and reporting back, @MG127 .
     
  30. Offline

    Rainforce15

    yep, that solved it!
     
  31. Offline

    MG127

    thats too bad that aliases dont work, with commandHelper would it be such a help with long and combinated commands that i write on signs
     

Share This Page