[INACTIVE][INFO] Help 0.2: The smart /help menu [531]

Discussion in 'Inactive/Unsupported Plugins' started by tkelly, Feb 28, 2011.

  1. Offline

    tkelly

    Help v0.2
    Download Help v0.2
    Download Help (Static Jar)
    Help Source Code
    Suggest Features

    Help has support for both GroupManager and Permissions, so you can use either one. You can also use neither if you so choose. Help will not force you to any which one.

    What is Help?
    Help is a clean and advanced /help menu. Help separates "main" commands from secondary ones, allowing you to have a clean initial menu, but still able to dig down and get access to every possible command.

    It is also the first /help menu to take into account permissions; some commands simply aren't applicable to all users, so those commands should clearly not be visible to those users. Now, default users' help menus won't be cluttered with commands for admin tools they have no way of using.

    Scroll down for a preview, or see below for how to hook into Help :)

    Help Commands
    /help (#) : Shows the /help menu.
    /help http://dev.bukkit.org/bukkit-plugins/ (#)[/I][/B]:[/FONT] Shows all the help entries for [I][plugin][/I]. [B][FONT=courier new]/help plugins[/FONT][/B] : Shows a list of all the plugins with Help entries. [FONT=courier new][B]/help search [I][query][/I][/B][/FONT] : Searches for [I][query][/I] within it' entries. [B][FONT=courier new]/help reload[/FONT][/B] : Reloads the entries from ExtraHelp.yml. [FONT=helvetica][SIZE=5][B]Plugin Support[/B][/SIZE][/FONT] Help requires that plugins tell Help about the commands they use. This makes sure that the commands and permissions are accurate and precise (rather than trying to auto fetch commands). Because it's ridiculous to assume that all plugins will instantly jump up and support Help (we can dream can't we? :D), server admins can mimic this behavior by supplying... [SIZE=5][FONT=helvetica][B]Custom ExtraHelp/[/B][/FONT][/SIZE] In the Help.zip download, I include a Help/ folder with a sample extra helps inside the ExtraHelp folder. This shows you how you can add custom commands to the /help menu. I'll also cover how to do that here. Each command has a "name", this name is only for you, as Help doesn't care about it (they just need to be unique names). In the following example the names are 'versions', 'pluginversions', 'kick' and 'essentialswho'. Within these Nodes you [U][I][B]need[/B][/I][/U] 3 things: command, description, and plugin. These should be self-explanatory. The two optional pieces are "main" and "permissions". If you specify a "main", you can choose whether or not the command is important enough to show up on the main /help menu; if you leave it blank or skip it, it will default to 'false'. If you specify a "visible", you can specify whether the command shows up at all. This is useful for overriding other plugins' built-in Help support (in case you don't want all the commands); if you leave it blank or skip it, it will default to 'true'. If you specify a "permissions", you can choose what is necessary for the user to see the command; and leaving it blank will allow all to see. So in the case of /version, all users can use it, so no permissions. But with /who, you have to have essentials.list, so that was specified. There is also a special permission case, "OP". By specifying this, this will require the user to be an OP to use the command (as is the case with Minecraft's built-in /kick command). [CODE] versions: command: version description: Show the version of Minecraft and CB plugin: CraftBukkit main: true pluginversions: command: version [plugin] description: Shows the version of [plugin] plugin: CraftBukkit kick: command: kick [player] description: Kicks [player] from the server plugin: Minecraft main: true permissions: OP essentialswho: command: who description: Show who's one the server plugin: Essentials main: true permissions: essentials.list [/CODE] [B][SIZE=5][FONT=helvetica]How To Hook into Help.[/FONT][/SIZE][/B] Hooking into Help is extremely easy, and very similar to hooking into any permission-plugin. When your plugin is starting up, just grab the Help plugin and register your commands with Help's registerCommand() method; that's it! Here's the API and some examples. If you'd like a concrete example, check out the relevant source code from [URL='https://github.com/tkelly910/MyHome/blob/master/src/main/java/me/taylorkelly/myhome/HomeHelp.java']MyHome[/URL] and [URL='https://github.com/tkelly910/BigBrother/blob/master/src/main/java/me/taylorkelly/bigbrother/BBHelp.java']BigBrother[/URL]. [SIZE=4][FONT=helvetica][B]Help API[/B][/FONT][/SIZE] [CODE] /** * Registers the given command, description, and plugin. * There are no permissions, so all users can see it. * It is also not a "main" help entry. * @return Whether or not it was successful */ public boolean registerCommand(String command, String description, Plugin plugin); /** * Registers the given command, description, and plugin. * There are no permissions, so all users can see it. * You can set whether the plugin is a "main" entry or not * @return Whether or not it was successful */ public boolean registerCommand(String command, String description, Plugin plugin, boolean main); /** * Registers the given command, description, and plugin. * You can specify one or more permissions. * If a user has permissions for at least (1) of them, he can see this command * It is also not a "main" help entry. * @return Whether or not it was successful */ public boolean registerCommand(String command, String description, Plugin plugin, String... permissions); /** * Registers the given command, description, and plugin. * You can specify one or more permissions. * If a user has permissions for at least (1) of them, he can see this command * You can set whether the plugin is a "main" entry or not * @return Whether or not it was successful */ public boolean registerCommand(String command, String description, Plugin plugin, boolean main, String... permissions); [/CODE] [SIZE=4][FONT=helvetica][B]Basic Example[/B][/FONT][/SIZE] [CODE] // plugin is the instance of your Plugin registering the commands Plugin test = plugin.getServer().getPluginManager().getPlugin("Help"); if (test != null) { Logger log = Logger.getLogger("Minecraft"); Help helpPlugin = ((Help) test); // Registers a main command. But all users will be able to see it helpPlugin.registerCommand("home help", "Help for all MyHome commands", plugin, true); // Registers a secondary command to our plugin (MyHome), but the user has to have the permission to see it helpPlugin.registerCommand("home", "Go home young chap!", plugin, "myhome.home.basic.home"); log.log(Level.INFO, "'Help' support enabled."); } else { Logger log = Logger.getLogger("Minecraft"); log.log(Level.WARNING, "'Help' isn't detected. No /help support."); } [/CODE] [SIZE=4][FONT=helvetica][B]Slightly More Advanced Example[/B][/FONT][/SIZE] [CODE] Help helpPlugin = ((Help) test); String[] permissions = new String[]{"bb.admin.watch", "bb.admin.info", "bb.admin.rollback", "bb.admin.cleanse"}; // If a user has any one of those permissions, they'll be able to see /bb help. A main command helpPlugin.registerCommand("bb help", "Help for all BigBrother commands", plugin, true, permissions); // If a user has "bb.admin.watch" they'll be able to see /bb watch [player]. A secondary command helpPlugin.registerCommand("bb watch [player]", "Toggle the watch on [player]", plugin, permissions[0]); [/CODE] [FONT=helvetica][SIZE=5][B]Plugins with Help Support[/B][/SIZE][/FONT] Here's a quick list of plugins (and version) that have built in Help support. - MyHome v1.9.2+ - MyWarp v1.10.3+ - BigBrother v1.6.4+ - Citizens v1.0+ - General 3.1+ - TelePlus 1.6+ - Pixl 1.3+ - Vampire 1.3+ [FONT=helvetica][SIZE=5][B]ExtraHelp Packs[/B][/SIZE][/FONT] [URL='https://github.com/FabianN/MC-Bukkit-HelpExtra']FabianN put together a repository of entries for your ExtraHelp/ that represent other plugins' commands.[/URL] It's really awesome and was helped put together by others from the community. [SIZE=5][B][FONT=helvetica]Preview[/FONT][/B][/SIZE] [IMG]http://i.imgur.com/AE9cG.jpg[/IMG] [IMG]http://i.imgur.com/cII2X.jpg[/IMG] [SIZE=5][B][FONT=helvetica]Changelog[/FONT][/B][/SIZE] [SPOILER="Changelog"] [SIZE=5][FONT=helvetica][B][URL='http://taylorkelly.me/plugins/Help/Help%20v0-2.zip'][COLOR=rgb(16, 97, 179)]Help v0.2 [531][/COLOR][/URL][/B][/FONT][/SIZE] [I]Released 15 Mar, 2011[/I] - Built with latest recommend build (531) - Multiline support. Descriptions of commands can now be as long as you'd like. - Separated ExtraHelp.yml into separate YML files (for each plugin, etc). - Plugin overriding. Don't like how a plugin has their Help support? Completely customize their entries. [SIZE=5][FONT=helvetica][B][URL='http://taylorkelly.me/plugins/Help/Help%20v0-1-1.zip']Help v0.1.1 [493][/URL][/B][/FONT][/SIZE] [I]Released 6 Mar, 2011[/I] - Built with latest recommend build (493) - Updated for GroupManager 1.0 [SIZE=5][FONT=helvetica][B][URL='http://taylorkelly.me/plugins/Help/Help%20v0-1.zip'][COLOR=rgb(16, 97, 179)]Help v0.1 [440][/COLOR][/URL][/B][/FONT][/SIZE] [I]Released 28 Feb, 2011[/I] - Intial Release [/SPOILER]/
     
  2. Offline

    Jandalf

    delete tho lonely piont in one line
     
  3. Offline

    2or0

  4. Offline

    Jandalf

    this seems to be a nice plugin, will try it out. when a plgin supports Help, does it creates a yml for help or wont i see the configs of this plugin for help?
     
  5. Offline

    Jacob Litewski

    Yea I got the same message when I was testing support for Pixl. I thought it was a bug within my code not passing permissions to GM right (since i'm using the FakePermissions thingy).

    So yea, I can confirm this. A simple update should get everything working correctly again :)

    Good job tkelly for making such an awesome plugin, I love it!
     
  6. Offline

    Nedigo

    Really love the plugin, pretty easy to use and really useful.
    There's just one thing, maybe this is what others are talking about too?

    Using the default ExtraHelp.yml, if a non-OP player types the /help command you'll get an error and a line in-game saying an internal error occured while attempting to perform this command. This is because there's a command in the /help that the non-OP isn't aloud to see (command set to permissions:OP at same time as main:true). A way to test it would be to type /help help (since those commands should have no permissions set).

    Could someone fix this error so a command with OP permissions would just not appear instead of sending an error if a player types /help?
     
  7. Offline

    LudicrousYoshi

    I downloaded the plugin, but I still get Essential's help menu, not Help's help menu.

    Can you give a more clear way to install the plugin? It doesn't seem to work for me at all even though it says it is enabled in my server console
     
  8. Offline

    BurnseyBoi

    I have Essentials and this Help. All I had to do to get it to work was remove the EssentialsHelp plugin, and remove - 'essentials.help' from my permissions file. Then this plugins help screen started showing up [​IMG]
     
    LudicrousYoshi likes this.
  9. Offline

    LudicrousYoshi

    That did the trick! Thanks so much! :D
     
    BurnseyBoi likes this.
  10. Offline

    Dateranoth

    I'm trying to add entries to ExtraHelp and everything is going great except one thing. Is there any way to line wrap the description? As it stands now, anything after X characters is cut off. Is there a symbol I can put in to force it to wrap to the next line or is this a feature that will need to be added? It's normally not a problem, but some of the commands are so long that it leaves very little room for the description.
     
  11. Offline

    tehseano

    I get the same error too, please update!
    Code:
    2011-03-05 18:04:26 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'help' in plugin Help v0.1
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:33)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:80)
    at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:183)
    at net.minecraft.server.NetServerHandler.c(NetServerHandler.java:619)
    at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:582)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:576)
    at net.minecraft.server.Packet3Chat.a(SourceFile:24)
    at net.minecraft.server.NetworkManager.a(SourceFile:230)
    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:357)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Caused by: java.lang.NoSuchMethodError: org.anjocaido.groupmanager.GroupManager.getHandler()Lorg/anjocaido/groupmanager/permissions/AnjoPermissionsHandler;
    at me.taylorkelly.help.HelpPermissions.permission(HelpPermissions.java:42)
    at me.taylorkelly.help.HelpEntry.playerCanUse(HelpEntry.java:40)
    at me.taylorkelly.help.HelpList.getSortedHelp(HelpList.java:38)
    at me.taylorkelly.help.Lister.setPage(Lister.java:32)
    at me.taylorkelly.help.Help.onCommand(Help.java:67)
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:31)
    ... 12 more
     
  12. Offline

    l3x

    this probably should be in core of bukkit.
     
  13. Offline

    tyderion

    I don't quite get it how to display the help for those commands in ExtraHelp.yml which have main: false

    e.g. your /version plugin example, how can I display that helptext?

    if I try /help search version
    the answer is: An internal error occurred when performing this command
     
  14. Offline

    Dateranoth

    I set mine up like listed below. Essentially, I've made one helptext display on main all the time, and when called it displays all the associated command help. So ESoc, LWC, EAdmin are 'Plugins' and when called with /help ESoc etc brings up their commands. Works incredibly well while keeping the main help menu clean. The only problem I'm having is getting the full help text to show up. It shows if I search the command via /help search LWC, but not when called via /help LWC

    Code:
    versions:
        command: version
        description: Show the version of Minecraft and CB
        plugin: CraftBukkit
        main: true
    pluginversions:
        command: version [plugin]
        description: Shows the version of [plugin]
        plugin: CraftBukkit
        main: false
    pluginlist:
        command: plugins
        description: Shows the plugins loaded in CB
        plugin: CraftBukkit
        main: true
        
    lwchelp:
        command: help lwc
        description: List the help for LWC Plugin (Chest Protection)
        plugin: LWC
        main: true
        permissions: lwc.protect
    lwccreatepublic:
        command: lwc -c public
        description: Create a public protection
        plugin: LWC
        main: false
        permissions: lwc.protect
    lwccreatepassword:
        command: lwc -c password [password]
        description: Create a password-protected protection
        plugin: LWC
        main: false
        permissions: lwc.protect
    lwccreateprivate:
        command: lwc -c private
        description:  Create a private protection
        plugin: LWC
        main: false
        permissions: lwc.protect 
    lwcmodify:
        command: lwc -m
        description: Modify an existing protection
        plugin: LWC
        main: false
        permissions: lwc.protect
    lwcunlock:
        command: lwc -u [password]
        description: Unlock something (when asked)
        plugin: LWC
        main: false
        permissions: lwc.protect   
    lwcview:
        command: lwc -i
        description: View information on an already protected inventory
        plugin: LWC
        main: false
        permissions: lwc.protect
        
    ELoc:
        command: help ELoc
        description: List all location commands from Essentials
        plugin: Essentials
        main: true
    essentialsdepth:
        command: depth
        description: Displays your current block depth in relation to sea-level.
        plugin: ELoc
        main: false
        permissions: essentials.depth
    essentialsgetpos:
        command: getpos
        description: Displays your current coordinate location in the world.
        plugin: ELoc
        main: false
        permissions: essentials.getpos
    essentialscompass:
        command: compass
        description: Displays your current bearing in the world.
        plugin: ELoc
        main: false
        permissions: essentials.compass
    essentialstop:
        command: top
        description: Teleports you to the highest block at your current location.
        plugin: ELoc
        main: false
        permissions: essentials.top
    essentialsjump:
        command: jump, /j
        description: Teleports you to the nearest block, in your line of sight (Crosshair).
        plugin: ELoc
        main: false
        permissions: essentials.jump
    essentialsback:
        command: back
        description: Use this command after dying, it will transport you to a safe deathpoint.
        plugin: ELoc
        main: false
        permissions: essentials.back
    essentialsworld:
        command: world [nether|gamercide]
        description: Allows you to teleport to any world by name, which is on the server.
        plugin: ELoc
        main: false
        permissions: essentials.world
        
    ESocial:
        command: help ESocial
        description: List all Social commands from Essentials
        plugin: Essentials
        main: true 
    essentialsmsg:
        command: msg, /whisper, /tell, /m
        description: This allows you to private message another player.
        plugin: ESocial
        main: false
        permissions: essentials.msg
    essentialsafk:
        command: afk
        description: Sets your status as AFK
        plugin: ESocial
        main: false
        permissions: essentials.afk 
    essentialsrules:
        command: rules
        description: Displays the rules
        plugin: ESocial
        main: true
        permissions: essentials.rules 
    essentialsmotd:
        command: motd
        description: Displays the MOTD
        plugin: ESocial
        main: true
        permissions: essentials.motd
    essentialsme:
        command: me
        description: Allows you to emote.
        plugin: ESocial
        main: false
        permissions: essentials.me
    essentialslist:
        command: list, /who, /playerlist, /online, /L
        description: Lists the players online and how many slots are left.
        plugin: ESocial
        main: false
        permissions: essentials.list
    essentialsmail:
        command: mail [read|clear|send] [player]
        description: Allows you to send, recieve, and read mail from other players on the server.
        plugin: ESocial
        main: false
        permissions: essentials.mail
    essentialshelpop:
        command: helpop
        description: Requests help from online admins/operators.
        plugin: ESocial
        main: false
        permissions: essentials.helpop
    essentialshelpop:
        command: whois [nickname|playername]
        description: Displays a specified players money, real name (if using a nick), and afk status.
        plugin: ESocial
        main: false
        permissions: essentials.whois
    
    EAdmin:
        command: help EAdmin
        description: List all Essentials Admin Commands
        plugin: Essentials
        main: true
        permissions: essentials.essentials
    essentialsreload:
        command: essentials
        description: Reloads your Essentials.jar configuration.
        plugin: EAdmin
        main: false
        permissions: essentials.essentials
    essentialsreloadall:
        command: reloadall, /rel
        description: Reloads all of your plugins
        plugin: EAdmin
        main: false
        permissions: essentials.reloadall
    essentialsgc:
        command: gc
        description: Displays chunk, memory, and world information.
        plugin: EAdmin
        main: false
        permissions: essentials.gc
    essentialsplugin:
        command: plugin [list] [<enable|disable|reload> <plugin name>]
        description: Allows you to enable, disable, or reload a specified plugin.
        plugin: EAdmin
        main: false
        permissions: essentials.plugin
    essentialsspawnmob:
        command: spawnmob [mob],[mount]:[slime-size] [amount]
        description: Allows you to spawn a specified mob with an optional mount, with Slime-size support.
        plugin: EAdmin
        main: false
        permissions: essentials.spawnmob
    essentialsclearinv:
        command: clearinventory [player name]
        description: Allows you to clear your own inventory or the inventory of a specified player.
        plugin: EAdmin
        main: false
        permissions: essentials.clearinventory
    essentialsbroadcast:
        command: broadcast
        description: Displays a specified message to all players on the server.
        plugin: EAdmin
        main: false
        permissions: essentials.broadcast
    essentialsantioch:
        command: antioch
        description: Places LIVE TNT near or on the block your crosshair is on.
        plugin: EAdmin
        main: false
        permissions: essentials.antioch
    essentialskill:
        command: kill
        description: Allows you to kill a specified player.
        plugin: EAdmin
        main: false
        permissions: essentials.kill
    essentialsnick:
        command: nick, /n [player name] [nickname|off]
        description: Allows you to give yourself or another player, a nick name.
        plugin: EAdmin
        main: false
        permissions: essentials.nick
    essentialsping:
        command: ping
        description: Replys with a "Pong!". Generally used to make sure Essentials.jar is working correctly.
        plugin: EAdmin
        main: false
        permissions: essentials.ping
    essentialssetspawn:
        command: setspawn
        description: Sets the global spawn and/or group (Permissions) spawn to your current location.
        plugin: EAdmin
        main: false
        permissions: essentials.setspawn 
        
    ECheats:
        command: help ECheats
        description: Display Available Cheats
        plugin: Essentials
        main: true
    essentialsgive:
        command: give [player] [item] [amount]
        description: Allows you to give another player a specified item.
        plugin: ECheats
        main: false
        permissions: essentials.give
    essentialsitem:
        command: item, /i [player] [item] [amount]
        description: Gives yourself a specified item.
        plugin: ECheats
        main: false
        permissions: essentials.item
    essentialstime:
        command: time [day|night]
        description: Allows you to switch the world time between day and night.
        plugin: ECheats
        main: false
        permissions: essentials.time
    essentialstree:
        command: tree [tree|birch|redwood]
        description: Spawns a specified tree 2 blocks in front of yourself.
        plugin: ECheats
        main: false
        permissions: essentials.tree
    essentialsbigtree:
        command: bigtree [tree|redwood]
        description: Spawns a specified big tree 2 blocks in front of yourself.
        plugin: ECheats
        main: false
        permissions: essentials.bigtree
    essentialsgod:
        command: god
        description: Makes you invulnerable to all damage types.
        plugin: ECheats
        main: false
        permissions: essentials.god
    essentialsheal:
        command: heal [player]
        description: Allows you to completely heal yourself or a specified player.
        plugin: ECheats
        main: false
        permissions: essentials.heal
    
    ETele:
        command: help ETele
        description: Display Essentials Teleport Commands
        plugin: Essentials
        main: true
    essentialstptoggle:
        command: tptoggle
        description: Toggles players ability to teleport or request teleport to/from you.
        plugin: ETele
        main: false
        permissions: essentials.tptoggle
    essentialstpa:
        command: tpa [player]
        description: If not denied by tptoggle status, then asks the player if you can teleport to them.
        plugin: ETele
        main: false
        permissions: essentials.tpa
    essentialstp:
        command: tp, /tele [player]
        description: Direct (you >> player) teleport unless denied by tptoggle status.
        plugin: ETele
        main: false
        permissions: essentials.tp
    essentialstpo:
        command: tpo
        description: Overrides the tptoggle status and directly teleports you to the specified player.
        plugin: ETele
        main: false
        permissions: essentials.tpo
    essentialstpahere:
        command: tpahere [player]
        description: If not denied by tptoggle status, then asks the specified player to accept transport to your location.
        plugin: ETele
        main: false
        permissions: essentials.tpahere  
    essentialstphere:
        command: tphere, /s [player]
        description: Direct (player >> you) teleport unless denied by tptoggle status.
        plugin: ETele
        main: false
        permissions: essentials.tphere
    essentialstphere:
        command: tpohere [player]
        description: Overrides the tptoggle status and directly teleports a specified player to your location.
        plugin: ETele
        main: false
        permissions: essentials.tpohere
    essentialstppos:
        command: tppos [x] [y] [z]
        description: Type in an <x> <y> <z> coordinate and off you go! The Y coordinate is your "Up in the Sky or Down near the Bedrock" location.
        plugin: ETele
        main: false
        permissions: essentials.tppos
    essentialshome:
        command: home
        description: Teleports you to the location of where you last used the /sethome command.
        plugin: ETele
        main: true
        permissions: essentials.home
    essentialssethome:
        command: sethome
        description: Sets your home position at your current location.
        plugin: ETele
        main: true
        permissions: essentials.sethome
    essentialsspawn:
        command: spawn
        description: Teleports you to the global spawn or group (Permissions) defined spawn area.
        plugin: ETele
        main: true
        permissions: essentials.spawn   
    
    EMod:
        command: help EMod
        description: Display Essentials Moderator Commands
        plugin: Essentials
        main: true
        permissions: essentials.ban
    essentialsban:
        command: ban [playername]
        description: Bans a specified player.
        plugin: EMod
        main: false
        permissions: essentials.ban
    essentialsbanip:
        command: banip [playername]
        description: Bans the IP of a specified player.
        plugin: EMod
        main: false
        permissions: essentials.banip    
    essentialsmute:
        command: mute [playername]
        description: Mutes or un-mutes a specified player.
        plugin: EMod
        main: false
        permissions: essentials.mute 
    essentialskick:
        command: kick [playername] [reason]
        description: Kicks a specified player off the server.
        plugin: EMod
        main: false
        permissions: essentials.kick 
    essentialskickall:
        command: kick [playername] [reason]
        description: Kicks all players off the server.
        plugin: EMod
        main: false
        permissions: essentials.kickall
    essentialsunban:
        command: unban [playername]
        description: Unbans a specified player.
        plugin: EMod
        main: false
        permissions: essentials.unban 
    essentialsunbanip:
        command: unbanip [playername|IP address]
        description: Unbans a specified players IP address.
        plugin: EMod
        main: false
        permissions: essentials.unbanip
    essentialstjail:
        command: togglejail, /tjail [playername]
        description: Sends a player to the jail warp, then prevents them from building and destroying blocks. When the command is used on a jailed player, the player will be teleported to their last location before being jailed.
        plugin: EMod
        main: false
        permissions: essentials.togglejail
     
  15. Offline

    tkelly

    @Nedigo : Could you send what the error was in the console?

    @Dateranoth : Right now there's no way to have multilines. If there ever will be, I want to make sure it does it attractively, rather than how /help menus have done in the past (like in hMod).

    To all: Glad that people have been liking this. I'll be getting an update for GroupManager alpha later tonight.
    I'm also going to start working on command specific help (for those commands that are really, really complicated).
    As well as plugin descriptions (stuff that will appear at the top of the menu as a little description) ;)
     
  16. Offline

    Dateranoth

    I don't think it would be unattractive if it could at least wrap one more line. An entire wall might be unruly but one line shouldn't be too bad. However, I have told my users to use a workaround of /help search COMMANDNAME if they need the full help text. The only downside being search finds common words in the description as well.

    Still, great work so far. Much better than anything else we've had.
    --- merged: Mar 6, 2011 7:41 PM ---
    Maybe a /help search c and d ( for description and command ) so you can only search the command name would work well.
    --- merged: Mar 6, 2011 8:05 PM ---
    I actually have one more request. Maybe it needs to be directed at plugin authors supporting your help menu, but I'd like to see all main /help commands to a minimum. If every plugin author puts their help commands in the main help menu it's just going to get extremely cluttered and useless again. /help PluginName should be pretty standard for bringing them up. At the very least the option to disable showing them in the main help menu.
     
  17. Offline

    Celtic Minstrel

    Can you add some standard way to indicate that a parameter is optional? For example, put "[@player]" or maybe "(player)" instead of "[player]" and then Help will display "[player]" but in a different colour.

    As for the multiline suggestion, I've a sort of similar one... could you add some capacity to insert non-main commands that don't even show up on /help <plugin>, but instead will show up when my plugin requests it, for example on /<cmd> help. I'm not really sure how this should be done, but I would at least like the ability to use Help's formatting engine rather than formatting it myself for command-specific detail help.
     
  18. Offline

    tkelly

    Help 0.1.1
    Release 6 Mar, 2011
    - Updated for GroupManager 1.0
    - Built w/ latest recommended build (493)

    @Dateranoth : I'll look into that. And yea, for the minimality, that's exactly what I want. I may do things in the future to force this if it gets out of hand, but for now it should be good.

    @Celtic Minstrel : I wanted this as well. I just need a color suggestion :p
     
  19. Offline

    twiggy

    I am having an error with my extrahelp.txt everytime i edit it.. am i doing it wrong? here is what i have in the file: http://pastebin.com/PbQy0M3Y
    Nvm i fixed the problem i feel stupid lol
     
  20. Offline

    Jandalf

    why not make the color adjustable in the config file?
     
  21. Offline

    tyderion

    Thanks for this update, now it works perfectly, all custom commands get shown with /help PluginName but only those with main:true get shown when using /help

    That's really cool! :)
     
  22. Offline

    Jandalf

    sorry for reposting but i think u overread this...
     
  23. Offline

    Celtic Minstrel

    Plugins that support help include the help in their jar file (in my case, right in the code) and, if they detect that Help is present, simply pass it along. So, you don't need to do any work if the plugin supports Help. The yml is only for plugins that don't support Help.
     
  24. Offline

    Jellyfrog

    My test-server:
    Craftbukkit 493 (Recommended)
    MyHome 1.9.2
    Help 0.1.1

    When I run /help myhome I get this:

    Code:
    2011-03-07 17:59:17 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'help' in plugin Help v0.1.1
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:33)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:80)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:183)
        at net.minecraft.server.NetServerHandler.c(NetServerHandler.java:619)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:582)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:576)
        at net.minecraft.server.Packet3Chat.a(SourceFile:24)
        at net.minecraft.server.NetworkManager.a(SourceFile:230)
        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:357)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Caused by: java.lang.NullPointerException
        at me.taylorkelly.help.HelpPermissions.permission(HelpPermissions.java:38)
        at me.taylorkelly.help.HelpEntry.playerCanUse(HelpEntry.java:40)
        at me.taylorkelly.help.HelpList.getSortedHelp(HelpList.java:79)
        at me.taylorkelly.help.Lister.setPage(Lister.java:35)
        at me.taylorkelly.help.Help.onCommand(Help.java:115)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:31)
        ... 12 more
    EDIT: When I installed Permissions it started to work!
     
  25. Offline

    fullwall

    My Citizens plugin now supports this one :).
     
  26. Offline

    lysandergray

    Great plugin! Is there a way to remove the default lines? (/help http://dev.bukkit.org/bukkit-plugins/ and /help Help)/
     
  27. Offline

    tkelly

    @Jandalf : That is being planned ;D I want a nicer way to have colors designated in the settings rather than the common &code stuff that more plugins use.
    And for the question that I missed before, right now users don't see what other plugins have set up. Part of me wants users to be able to see and manipulate that, but I haven't decided a proper way yet. I will probably play around with how that works, as Help is in its infancy, so a lot of the design isn't set in stone yet.

    @Dateranoth : Is "LWC" what was designated as plugin: in the ExtraHelp?

    @Jellyfrog : Ah, glad to hear that that fixed it. But thanks for the report, I was able to fix that problem for the future.

    @fullwall: Awesome, I'll add it to the list :)

    @lysandergray : Yea. Like I was saying to Jandalf, I want server admins to have complete control over what is visible (but still have plugins be able to register so that it's quicker for admins). Over the next iterations I'll be playing around with different ideas, but if you have a method that you would personally like, let me know, and I'll try that in one of the versions.
     
  28. Offline

    Dateranoth

    Yeah, it was. My full ExtraHelp file is listed above. The help shows, but you answered my question already. I wasn't seeing the full help text because of the 1 line restriction. When you do /help search LWC it returns without the formatting and 1 line restriction so I see the full help text. It's the workaround I have my users doing if they need to read the full line to understand the command.
     
  29. Offline

    Celtic Minstrel

    Oh wait, there's a list of plugins with Help support? I incorporated it into General 3.1, so you can put that on the list too.
     
  30. Offline

    lysandergray

     
  31. Offline

    Tiramon

    I just installed this plugin on my server, but i currently only have console access.
    After loading the 'Help' plugin the console help doesn't work anymore

    All i get is
    Code:
    help
    10:59:52 [INFO] /help - Displays help for all commands
    craftbukkit: b493
    Help: 0.1.1
    Permissions: 2.5.2

    Just an idea .. maybe the console has no rights so i don't see any help?
    Or do i have to create a ExtraHelp.yml for those basic commands

    EDIT:
    Even after adding the ExtraHelp.yml from your start post, i can't see any usefull response in console

    Btw entering '?' instead of 'help' still works ibn console
     

Share This Page