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

    Fluff

    As I told @morizuki , I'll take a look at it, but the more I think about it, the less I think it will work. I didn't realize plugins other than the ones that explicitly create command aliases used them.
     
  3. Offline

    Rainforce15

    ok, back again, /* and /@ dont work >_>
    '&commandsigns':
    group: Admin
    doesnt give the proper permissions apparently (admin is '*', and I can use the sign as admin, but not as normal player)
    any idea?
     
  4. Offline

    Fluff

    0.8.12 and 0.8.1g released.

    Command aliases should work with command signs now. So there's that.

    I added support for default groups in a roundabout manner. It seems all of the permission plugins will check the permissions of the default group if the user doesn't have an explicit group, but none of them will return that the user actually belongs to the default group (and most don't even give the developer a way to figure out if a group is the default group). So, I added a permission node check to see if a user belongs to the default group. To get the default group to work, add the node 'commandSigns.default.<name of the group>'. Now, what this means is that any group that has 'commandSigns.*' or '*' permissions will behave wrongly in relation to @ group checks. You'll have to remove 'commandSigns.default.*' from those groups.

    EDIT: Feel free to ignore the whole previous paragraph. I'm going to do it differently in the next version, so don't bother setting that up.

    You can now change the config from in-game or the console. '/commandsign config' will list the current config. '/commandsign config <node>' will list the particular node. '/commandsign config <node> <value>' will set the node to the given value. You will need the 'commandSigns.config' permission to use the config command.

    I'll be updating the documentation now to include all the recent changes.

    EDIT2: Actually, if you depend on @, you may want to skip this one and wait for the next release. The more I think about how I implemented 'default group' support, the more I hate it.

    0.8.13 and 0.8.1h released.

    Default groups should 'just work' now. If you have a sign that doesn't work with default groups, I'll need to know what permission plugin you're using.

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

    Darkenvy

    Code:
    2011-06-14 00:14:16 [SEVERE] Could not pass event PLAYER_QUIT to CommandSigns
    java.lang.NullPointerException
        at com.edwardhand.commandsigns.CommandSignPlayerListener.onPlayerQuit(CommandSignPlayerListener.java:247)
        at org.bukkit.plugin.java.JavaPluginLoader$2.execute(JavaPluginLoader.java:250)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
        at net.minecraft.server.ServerConfigurationManager.disconnect(ServerConfigurationManager.java:145)
        at net.minecraft.server.NetServerHandler.disconnect(NetServerHandler.java:105)
        at org.bukkit.craftbukkit.entity.CraftPlayer.kickPlayer(CraftPlayer.java:129)
        at com.webkonsept.bukkit.memorywarning.MemoryWarningPlayerListener.onPlayerJoin(MemoryWarningPlayerListener.java:17)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:243)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
        at net.minecraft.server.ServerConfigurationManager.c(ServerConfigurationManager.java:123)
        at net.minecraft.server.NetLoginHandler.b(NetLoginHandler.java:96)
        at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:33)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:91)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:401)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    2011-06-14 00:14:16 [SEVERE] Could not pass event PLAYER_JOIN to CommandSigns
    java.lang.NullPointerException
        at com.edwardhand.commandsigns.CommandSignPlayerListener.onPlayerJoin(CommandSignPlayerListener.java:242)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:243)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
        at net.minecraft.server.ServerConfigurationManager.c(ServerConfigurationManager.java:123)
        at net.minecraft.server.NetLoginHandler.b(NetLoginHandler.java:96)
        at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:33)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:91)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:401)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
     
  6. Meh I still have the same issue with @g:Group signs.

    PEX is now at 1.12 and claims to have fixed this. I dunno who to poke for a fix now, will ask them again as well...
     
  7. Offline

    mujik

    Hi @Fluff, i did as you said and received the following:
    with &CommandSigns as Op and Admin or if he is only Op
    heal and god works, but the two iConomy commands don't
    and i got this messages:
    Code:
    04:47:01 [INFO] . CommandSigns Debug: Command - /@god
    04:47:01 [INFO] ! CommandSigns Error: Couldn't find the permissions file!
    04:47:01 [INFO] . CommandSigns Debug: Fake player is op; opping mujik
    04:47:01 [INFO] . CommandSigns Debug: Removing op from mujik
    04:47:24 [INFO] . CommandSigns Debug: Command - /@bank join BC
    04:47:24 [INFO] ! CommandSigns Error: Couldn't find the permissions file!
    04:47:24 [INFO] . CommandSigns Debug: Fake player is op; opping mujik
    04:47:24 [INFO] . CommandSigns Debug: Removing op from mujik
    
    
    the strange thing was that the messages was the same for the working command and for the non working one....
    I was using commandsigns 0.8.13, iConomy 5.0, Permissions 2.7.4 and CB 860
    the god command were from CommandBook 1.52
    When i updated to Permissions 3.15b everything started to work with the permissions file being found correctly!!!:):):)

    the only thing that was preventing me from using this plugin together with annotate in large scale in my server was the iConomy commands not working... Now i can make my economy run on the backgroud like i wanted...:cool:
    Thanks again for the plugins!!! (and the support....;))
     
  8. Offline

    Fluff

    @Joy , it looks like PermissionUser.inGroup does check inheritance now, but PermissionUser.getGroups doesn't return inherited groups. This may be by design. I stopped using PermissionUser.inGroup (and the methods related to this in all the other permission plugins) because it doesn't detect the default group for users without an explicit group, while PermissionUser.getGroups does return the default group. I'll look at the API and see if I should be calling a different method.
     
  9. Offline

    t3hk0d3

    inGroup obtains groups list using getGroups :D
     
  10. Offline

    Fluff

    Yes, I see that now. However, inGroup doesn't appear to check inheritance due to:
    Code:
    parentGroup.isChildOf(parentGroup, true)
    Is Github up to date?
     
  11. Offline

    t3hk0d3

  12. Offline

    Fluff

  13. Offline

    t3hk0d3

  14. Offline

    Ne3zy

    I love you
     
  15. Offline

    Fluff

    0.9 and 0.8i released.

    Tweaked the permissions code some more for PEX; if PEX works, this plugin should support it. Essentials Economy is also supported now; to explicitly use it, use an item data of 2. For those of you that like disabling and re-enabling plugins, CommandSigns now disables cleanly, leaving no hanging event registrations.

    Almost all of the text sent to players in-game can now be localized. To do so, run the server once with the plugin enabled. CommandSigns will auto-generate the default in-game text in the Locale.dat file. A couple of important rules when modifying this file:
    1. There's an = on every line. Everything on the right side is fair game for you to play with (well, except for things falling under rule #2). Everything on the left side is MINE; do not mess with it.
    2. See the %1's and %2's that show up in some lines? Those will be replaced by text from the plugin. If a line has a %1 or %2, you probably want to keep it somewhere on that line for the most information. If a line does not have a %1 or %2, DO NOT ADD ONE.
    If you want the plugin to work, follow those two rules concerning the Locale.dat file. If you accidently screw it up, delete or rename the file and let the plugin generate a new default file. If you create a fully localized file for a different language, feel free to send it to me; I'll put it in the OP and give you the credit.

    New goodies! You can now use /commandsign exec to execute a command sign from a distance. Use of this command requires the commandSigns.exec permission. For a possible use case using both /commandsign exec and /commandsign alias, consider the following setup:
    I'll get to work on the documentation now. It might take a bit before everything's up to date.
     
  16. So frustrating, using PEX 1.12 now, still not working.

    Going to poke them again...
     
  17. Offline

    morizuki

    Suggestion.. Editting the sign :D
     
  18. Offline

    taxidriveer

    Just tried 0.9, localization work fine !! Thank you ;)
     
  19. Offline

    phondeux

    Does this work with Permissions 3.x now? I can't tell from the instructions or initial post.
     
  20. Offline

    Fluff

    The change log says 'yes'.
     
  21. Offline

    phondeux

    Okay, I see it buried in the old update. Thanks, I'll test it tonight! This working on my server would be the crowning touch. :)

    Tested - Still doesn't work with MoveCraft.
    1. Bukkit v860, CommandSigns 0.9
    2. This was in the debug log;
    Code:
    09:37:57 [INFO] . CommandSigns Debug: Command - /*aircraft pilot
    09:37:58 [INFO] . CommandSigns Debug: Command - /*aircraft pilot
    3. Command Sign Text;
    Code:
    [command]
    /*aircraft
    pilot
    4. Command sign config file
    Code:
    features:
        fakeUserDisplayName: CommandSigns
    debug:
        writeDebugMessages: true
    legacy:
        useOldGroupDirective: false
        useOldCommandSignsUser: false
        ignoreSpacesAtEndOfLine: false
        allowRunOnCommands: true
        allowEmptyCommandAsMessage: false
    5. Failed plugin is MoveCraft.
     
  22. It all works perfectly now Fluff, thanks for all your hard work, now I have all the tools to create my master plan ;)
     
  23. Offline

    Fluff

    You should use /@, not /*. As written, that command will attempt to make the fake user the pilot.
     
    phondeux likes this.
  24. Offline

    phondeux

    /me palm->forhead ...

    Just tested, works flawlessly! Thank you so much!
     
  25. Offline

    zsmb

    Hey there
    1.) Bukkit server build 803, the latest commandsigns plugin (v0.9)
    2.)
    Code:
    2011-06-16 19:34:48 [SEVERE] Could not pass event PLAYER_INTERACT to CommandSigns
    java.lang.NoSuchMethodError: net.minecraft.server.ItemInWorldManager.<init>(Lnet/minecraft/server/WorldServer;)V
        at com.edwardhand.commandsigns.CommandSigns.runCommandString(CommandSigns.java:994)
        at com.edwardhand.commandsigns.CommandSignPlayerListener.runCommand(CommandSignPlayerListener.java:219)
        at com.edwardhand.commandsigns.CommandSignPlayerListener.onPlayerInteract(CommandSignPlayerListener.java:159)
        at org.bukkit.plugin.java.JavaPluginLoader$9.execute(JavaPluginLoader.java:299)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:310)
        at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:162)
        at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:207)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:535)
        at net.minecraft.server.Packet15Place.a(SourceFile:57)
        at net.minecraft.server.NetworkManager.a(NetworkManager.java:196)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:377)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:292)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
    3.
    [command]
    /time day


    4.
    Code:
    features:
        fakeUserDisplayName: CommandSigns
    debug:
        writeDebugMessages: false
    legacy:
        allowEmptyCommandAsMessage: false
        useOldGroupDirective: false
        useOldCommandSignsUser: false
        ignoreSpacesAtEndOfLine: false
        allowRunOnCommands: false
    
    5. No matter what command I write on the sign, it crashes anyways...

    Any ideas for possible problems?
     
  26. Offline

    Fluff

  27. Offline

    zsmb

    oh my god i am so dumb.... thank you very much
     
  28. Offline

    joblessalex

    I was going to make a mass mob spawner with a sign that does /spawnmob -i -r pig cow ect. then redstone to it so I can spawn it in water in a room so that way animals dont go flying everywhere in the collection area. Would this be possible? A use for weather and time would be to set the time after about 10 minutes to day or night depending on server and turn off weather that way as well only every 20 minutes.
     
  29. Offline

    Fluff

    No. It probably wouldn't even work with RedstoneCommandSigns, unless /spawnmob can take a location as an argument.
     
  30. Offline

    Kosyne

    Trying to use xWarp with commandsigns and I'm running into the whole /@ problem.
    Quick question, is this possible?
    Code:
    [command]
    /@warp
    <NAME>_Bank
    
    It works fine when the user has the permissions to /warp, but otherwise, no.
    The whole permission elevation thing isnt working...
     
  31. Offline

    Fluff

     

Share This Page