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

    Wegs

    My users can't seem to use a command sign that they wouldn't normally have permission to, despite my attempts to elevate them. For example, I have a sign with /@give <NAME> 1 1 on it, but attempting to activate it results in a message saying that the user does not have access to the command. I've made &commandsigns an OP, both as that and '&commandsigns'. Am I doing something wrong?

    I'm running version 0.8.6 of this plugin, with Build 818.
     
  3. Offline

    c_dric

    I have &commandsigns as OP & '&commandsigns' user in the admin group in Permissions.
    I use '/*give <NAME> item number' and it works for me. Maybe try that ?
     
  4. Offline

    Wegs

    It worked for that, but it doesn't seem to work for all of the commands I need it to, like /unjail. But this is a help, thanks.
     
  5. Offline

    Fluff

    0.8.7 released.
    This is my fault. That code got lost in the refactoring of the developer API. I've re-added it in this version.
    I've been hearing this for a number of commands. So, if you all will help me sort it out, I'm willing to fix it. The bug reports have generally been useful in this regard, helping me find a number of small things that were incorrect in the reporting. I've added a debug configuration option in this version. Setting this option to true will be a bit spammy in your server log, but it will also help me figure out what's going on.

    From now on, if you have a problem with using /* or /@, I need the following bits of information:
    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.

    @Clem , the user guide has a couple of examples of cost signs, and there are a few more examples in the thread. For the @ directive, you put the player name or the group name prefaced with a "g:" in front of the @; all commands following the @ directive will only run for the specified player or group. Your example should be something like this:
    [command]
    @Member
    /*money grant -10
    @Donator
    /*money grant -5

    Personally, I'd use the cost signs for this rather than economy commands, since cost signs will stop the evaluation if the player does not have sufficient resources. Reworked with cost signs, this would be:
    [command]
    @Member
    $;0,10
    @Donator
    $;0,5

    However, I'm pretty sure it checks if groups are inherited, so this will probably charge donators 15 instead of just 5. You may want to try the trick I described in this post to get your sign to work.
     
  6. Offline

    Clem

    @Fluff wow! Thanks, it is a bit confusing in the wiki... Anyways, I have a visitor class (the default class), and I enabled commandSigns.use in the permissions (GM) file, but it won't let me use any... It works for any class above, but I need it for this class to make a auto memeber-ing machine.. I was trying to use /@warp etc... but then i tried just
    [command]
    /spawn

    and it still wouldn't work (Visitors has /spawn, and it works when I type in /spawn into the debugger)

    Sorry for the troubles :S
     
  7. Offline

    Wegs

    My Error is just that /@ fails to elevate the sign user to OP when using the sign, despite both &CommandSigns and '&CommandSigns' being marked as OPs.

    1. Bukkit 818, Plugin version 0.8.7
    2. There's no messages in the console, not even in debug mode.
    3.**[Freedom]
    /@unjail <NAME>
    4.
    Code:
    features:
        fakeUserDisplayName: CommandSigns
    legacy:
        useOldGroupDirective: false
        useOldCommandSignsUser: false
        ignoreSpacesAtEndOfLine: false
        allowRunOnCommands: false
    debug:
        writeDebugMessages: true
    
    5. Jail v1.1.0
     
  8. Offline

    Fluff

    @Wegs , thanks for the error report. I've got to say that your answer on #2 really threw me for a loop, but it made a lot of things clear. I didn't expect someone to not be running Permissions and want /@ to op-deop players for commands to work. This will be in the next version.
     
  9. Offline

    c_dric

    Fluff, i noticed some users had their color/permissions removed after a restart.

    It seems to only happen to players with caps in their names.
    They get an extra entry at the bottom of the Permissions yml with their name without caps and permissions: []
    This extra entry seems to remove all their perms at restart.
     
  10. Offline

    Fluff

    0.8.8 released.

    /* and /@ should work now without permissions support. Just op &CommandSigns and go.

    I thought I'd fixed this several versions ago, but I found that I coded all around the problem without actually addressing it. It should be fixed now.
     
  11. Offline

    Clem

    I'll test er right nao @Fluff !
     
  12. Offline

    phondeux

    Still not working with permissions. I made &CommandSigns an op, added the user as an admin in Permissions, then created a sign as follows;
    Code:
    [command]
    /*aircraft
    pilot
    I see the following error in my logs;
    Code:
    2011-06-07 12:31:19 [INFO] ! CommandSigns Error: Couldn't find the permissions f
    ile!
    2011-06-07 12:31:19 [INFO] ? CommandSigns: &CommandSigns could not execute comma
    nd "/aircraft pilot". Does command exist?
    2011-06-07 12:31:19 [INFO] ? CommandSigns: If so, perhaps you should give permis
    sion to &CommandSigns
    Looking back at my permissions, I'm seeing it rewritten so &CommandSigns is now a question mark! Well, no wonder it's not seeing it!
     
  13. Offline

    c_dric

    Thanks for the quick updates.

    We're now using 3 of your plugins (Annotate, CommandSigns & MobRider) and it's been great fun. Thanks for that too.

    Did you add single quotes around &CommandSigns in the Permissions ?

    Code:
       '&CommandSigns':
            group: admins
            permissions:
    If i understood correctly running a command with /* will execute the command as &CommandSigns.
    So that only works well with commands that allow you to specify a player or location.
    If you need the command to be executed by the player clicking the sign, i think you should use /@.

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

    phondeux

    I didn't, so updating permissions with the single quote signs fixed the rewrite issue thank you! However, using the /* still give the "could not execute command" error for the &CommandSigns user. I granted the &CommandSigns user Admin privileges and made them an op just in case.
     
  15. Offline

    Fluff

    Set the debug configuration to true and follow the reporting guidelines in this post. Hopefully that will give me enough information to sort it out.
    I like to think we're maintaining 'interesting' plugins. Seriously though, just wait for us to finish up MobRider and start releasing our own. I know they won't all be of use on every server, but I think all four or five of them are pretty neat with functionality not easily duplicated with other plugins.
     
  16. Can you tell me how "/@command - elevates the player's permissions (using the permissions assigned to &CommandSigns) if necessary to run the command" is implemented?

    Does it actually add the permission node to the player temporarily, as in, would the node be entered into the DB for an SQL based Permission plugin?

    You mentioned earlier permissions may stick behind if something goes wrong, and in that case, I could just cron a script to check the DB for nodes that shouldn't be there...
     
  17. Offline

    Lolmewn

    Isn't there some easier way to give ppl access to the signs than to make that player person?
    You could maybe make it so that when a person activates one with ex: /*time day, that it will be sent from the Console. (I think you can make Console a sender aswell)
     
  18. Offline

    Fluff

    Basically, yes. My plugin has no way of knowing what permission node a player will need to execute a command, so it temporarily adds all the permissions assigned to the fake user to the player that the player does not already have. Like I said, I haven't noticed any permission carry-over yet, but if a command throws an exception during its evaluation, the permissions won't get removed. I'll fix that in the next release to at least have a chance of working.
    A lot of plugin devs immediately check to see if the sender is a Player, even if the command should be able to run with just the console. Additionally, there's no way to set permissions for the console. I'm assuming that if you're using Permissions, you won't mind setting up Permissions for one more player. The simplest way to setup Permissions on most servers will be to just give the fake user * permissions or add the fake user to the admin group.

    Last chance to get your input on the following subjects:
    1. Are there any additional features you'd need in a 1.0 release? In other words, is CommandSigns now 'feature-complete'? Don't mention redstone support; I've already decided to implement that in a separate plugin due to the differences in how it will have to work.
    2. Do you use \<message> for anything? I plan on changing \<message> to only show a message to the player that triggered the command sign. I'll include a configuration option so that admins can switch back to the current functionality if needed.
    I plan on a fairly stable release on Friday. At that point, development on CommandSigns will largely be maintenance and bug fixing. New features will be added 'when we get around to it'. In other words, if there are any features you really want, better speak up soon.
     
  19. Ok been testing /@command for the first time.

    It does not seem to work. Tried a very simple sign with /@shop. Commandsigns user has correct nodes.

    We use PEX for Permissions, but it is PR 2.7 compatible.
     
  20. Offline

    phondeux

    Bukkit 818, plugin 0.8.8
    Excerpt from server log of the failed command usage:
    Code:
    21:12:05 [INFO] ! CommandSigns Error: Couldn't find the permissions file!
    21:12:05 [INFO] ? CommandSigns: &CommandSigns could not execute command "/aircra
    ft pilot". Does command exist?
    21:12:05 [INFO] ? CommandSigns: If so, perhaps you should give permission to &Co
    mmandSigns
    21:12:05 [INFO] . CommandSigns Debug: Fake user has no permissions.
    Sign Text:
    Code:
    [command]
    /*airplane
    pilot
    Plugin failed command comes from is MoveCraft.

    I'm working with this on my development server so I can pretty much set it up any way you want me to test it.
     
  21. Offline

    Fluff

    If PEX has its own data directory (and I think it does), then it will not work with /@. The problem is that PR 2.x doesn't have an API to get all the permission nodes for a player. I was left with two alternatives: 1) use reflection to go get the info out of the PR 2.x plugin. While I personally like this option, it would be the least compatible with other plugins that claim they are 2.x, or 2) go into the Permissions directory and parse the permission files myself.

    I can probably add PEX support.

    @phondeux , I need more details about your setup. The problem (which I would have seen if I'd looked closer at your original post) is that your Permissions file is not where CommandSigns expects it to be. CommandSigns thinks you're using Permissions 2.x for Permissions; is this correct?
     
  22. Offline

    c_dric

    We do use the \<message> when we want everyone to know someone pushed the wrong button, or the right one.
    Although we could use private notices too in some case. Maybe '\' for public '\<NAME>\<message>' for private.

    Other than that, i think the plugin does all what it needs to do. The only i can think of, if possible, is to have the number of use based on the player clicking. So that everyone could use that button/sign a specific amount of time.
    That could be useful at the end of parkours or mazes, when you want to give a prize to everyone that completes it but you don't want them to take the prize more than once.
     
  23. This would be great, it's an amazing plugin :)

    So is command signs ;)
     
  24. Offline

    phondeux

    No, I'm using 3.1.4 for Permissions. Is it not supported?
    The file structure looks like this in plugins;
    Code:
    o Permissions
      - users.yml
      - groups.yml
      o world.biome
        - users.yml
        - groups.yml
    Where Permissions and world.biome are directories.
     
  25. Offline

    Fluff

    3.x isn't supported. Does it actually work yet?
     
  26. Offline

    phondeux

    By your plugin? Damn. If you mean by the Permissions group, 2.x isn't even downloadable anymore. The 3.x permissions work just fine, although it's not full featured yet.

    Do you support Permissions plus? That's in 2.x right now. I would like your plugin to work and I'm not really tied to any version of Permissions.
     
  27. Offline

    Fluff

    @phondeux , I'm currently reworking all the Permissions stuff, so if I can poke 3.x hard enough such that I can create a test environment with it, I'll add support for it (again). The current version of CommandSigns supports Permissions 2.x and GroupManager (which I hear may be going the way of the dodo). The next version will also support PEX and possibly Permissions 3.x.
     
  28. Offline

    phondeux

    I appreciate the effort Fluff! It must be hard to create a plugin with so many moving targets.
     
  29. Offline

    Fluff

    In other news, some of you may want to keep an eye on this.
     
  30. Offline

    phondeux

    Okay.

    Found Permissions 2.7.2 and installed it.
    Configured it.
    Created a sign for movecraft.
    right-clicked it with a non-admin but with someone having commandSigns.use permissions and there was nothing.

    I set the sign as
    Code:
    [command]
    \test message
    Argh! I assume my permissions file is wrong?
     
  31. Offline

    badbh222

    Code:
    users:
        '&CommandSigns':
            group: Admins
            info:
                prefix: ''
                suffix: ''
            permissions:
    
    With the group "Admins" having all permissions "*" and "useOldCommandSignsUser" set to false.

    If that doesn't work, post your Permissions config and CommandSigns config.
     

Share This Page