Inactive [INFO] HelpPages 1.30 - Group-Specific Custom Help Pages [1337]

Discussion in 'Inactive/Unsupported Plugins' started by ToastedJelly, May 23, 2011.

  1. Offline

    ToastedJelly

    [​IMG]

    Version: v1.30
    CB Builds Tested: 1337,1060, 1000, 953, 935, 928, 860, 818, 803, 798, 766

    Download: Current Version 1.30 - older: V1.21 v1.20 v1.10, v1.00
    Completely customizable Group-Specific Help Pages. Permissions supported, but works without it. Powerful System to define what is shown depending on group and parameter after /help. Unrestricted: /help can be different from /help 1, pageable named help topics like /help warps, /help warps 2 or even /help 42 without having to define /help 41.
    It's recommended to conform to known standards for the normal help pages, but you can additionaly add easter eggs or store clues for treasure hunts etc.

    Features:
    • Simple configuration - No YML madness
    • Automatic configuration reload on change
    • Permissions: Group-Specific Help Pages
    • Supported Permission systems: Permissions 2/3, PermissionsEx, GroupManager, Op
    • Reuse of Help Pages for different groups
    • Numbered or Named Help Pages or a Mix
    • Unlimited Number of Pages and Lines per Page (max 10 recommended)
    • Standard Color Codes
    • Color preserving word-wrapping
    • Mutlilanguage Support - Every Message can be customized
    • Custom Group-Specific Variables
    • Testmode to check Help Pages for other Groups
    • Works in-game and in the Console.
    • Creates a list of all Commands and Descriptions on first Start for easy Copy'n'Paste
    • Updateable by CraftBukkitUpToDate
    How to Install:
    1. Download HelpPages.jar from the above Link.
    2. Put it in your plugins folder.
    3. Run the plugin at least once to create the HelpPages directory
    4. Customize HelpPages/config.txt and that's it. No need to reload the plugin. Configuration changes are automatically reloaded.
    5. To integrate this with other plugins that have a /help command like essentials, open the jar file of the other plugin with something like 7zip, extract the plugins.yml, edit it with a text editor and remove the lines defining the help command - i.e. the line "help:" and the following indented lines starting with "description", "usage" etc. Then add the customized plugins.yml back to the jar file.
    Permissions:
    Permissions are optional. If you don't use Permissions or the Command sender is not a Player (Console), Op-status is checked instead:​
    • HelpPages.setgroup - Allows you to view other groups Help Pages for testing purposes.
    Commands:
    • /help <page_selector> - Shows the selected Page. The page_selector is optional and can be something simple like 1 or something more complex like wolf 2
    • /help <page_selector> @ groupname - Shows help for different groups - needs Permission
    Configuration:
    Basic Configuration (open)

    • Define your Pages and name them. The name is arbitrary, but has to be unique. Example:
      Code:
      [[page Page1
                          	&4---------------- &fSHAFT&7LANDS &4/help 1&c/2 &4----------------
                          	Lock your chests, furnaces and doors by putting &6[private]
                          	signs next to them - for more Options see &3Lockette &fPlugin!
                          	Chat-Colors: &0&&0&1&&1&2&&2&3&&3&4&&4&5&&5&6&&6&7&&7&8&&8&9&&9&a&&a&b&&b&c&&c&d&&d&e&&e&f&&f
                          
                          	&c/help &7#  &f-  Views help page &7#
                          	&c/m  &f-  Sends a private message to the specified player
                          	&c/r  &f-  Reply to the last player you communicated with
                          	&c/me  &f-  Allows you to emote
                          ]]
                          [[page Page2
                          	&4---------------- &fSHAFT&7LANDS &4/help 2&c/2 &4----------------
                          	&c/who  &f-  Lists the players online and how many slots are left
                          	&c/spawn  &f-  Teleports you to the global spawn
                          	&c/home help  &f-  Shows home related help
                          	&c/warp help  &f-  Shows warp related help
                          	&c/kit  &f-  Obtains the specified kit or views all available kits
                          	&c/ping  &f-  Pong! (Check server response time)
                          	&c/getpos  &f-  Displays your current coordinates
                          	&c/back  &f-  Transports you back to your last deathpoint
                          ]]
      [​IMG]
    • As you see, you can use the Standard Color Codes:
      [​IMG]
    • The Order in which the Pages are defined is not important. They are referenced by their name.
    • Then you define which group sees which page depending on the selector
      Code:
      [[group Administrators,Moderators,(OP)
                           =>APage1
                           1=>APage1
                           2=>APage2
                           3=>APage3
                           4=>APage4
                           5=>APage5
                           6=>APage6
                          ]]
                          [[group *
                           =>Page1
                           1=>Page1
                           2=>Page2
                         ]]
    • The Order in which you define those group blocks is important, because the first one that matches your User is used. As you see, Administrators, Moderators (if you use Permissions) and Ops are getting APage1-6 - which I didn't show in the Page definition above and all Users that don't match any of those Groups, fall through and match on * and they get Page1 and Page2. It is recommended to set it up as above - having the empty selector pointing to the same page as the 1 selector, as that's how User expects it to be. You can of course deviate from this, if you know what you're doing.
    • Special groups are (OP) for Ops and Console, (USER) for non-Ops in case you don't have Permissions and * which matches Every User and should be used last as a catch-all, so Everyone gets some Help Pages.
    • Another Example: Setting up the topic Mining with two pages and Monsters with one page.
      Code:
      [[group Whatever
                           mining    => miningPage1
                           mining 1  => miningPage1
                           mining 2  => miningPage2
                           monster   => monsterPage
                           monster 1 => monsterPage
                         ]]
      • Selectors and Page names are case-insensitiv and additional spaces can be used for formatting purposes and are ignored.
      • Test mode Example: /help Creepers 2 @ SemiOps would show what SemiOps would see, if they would type /help Creepers 2 - given you have the permission to set the group - it's ignored otherwise.
    Advanced Configuration: Variables (open)

    • Default Variables available:
      • {name}, {displayname}
      • {group}
      • {world}
      • {health}
      • {pos} and {pos.x}, {pos.y}, {pos.z}
    • Custom Variables Example:
      Code:
                         [[group Administrators,Moderators,(OP)
                           title=noble
                            =>Page1
                           1=>Page1
                           2=>Page2
                         ]]
                         [[group *
                           title=commoner
                            =>Page1
                           1=>Page1
                           2=>Page2
                         ]]
                         ...
                         [[page Page1
                         Hello {title} {displayname}
                         ]]
                         
    • Using Custom Variables to reuse Pages at different Positions
      Code:
                        [[group Administrators,Moderators,(OP)
                          pageCount = 3
                          basicPageNum = 2
                          =>AdminCmds
                          1=>AdminCmds
                          2=>BasicCmds
                          3=>MoreAdminCmds
                        ]]
                        [[group *
                          pageCount = 1
                          basicPageNum = 1
                          =>BasicCmds
                          1=>BasicCmds
                        ]]
                        ...
                        [[page AdminCmds
                        -------- Page 1/3 --------
                        ]]
                        [[page BasicCmds
                        -------- Page {basicPageNum}/{pageCount} --------
                        ]]
                        ...
                        
    • Another extensive Example is available here: http://pastebin.com/3rMq4mc7

    Your turn:
    Do you have any suggestions on features you would like to have or did you find a Bug? Post a reply below! Please use a services like pastebin.com for Exceptions and complete Configuration files. I would also like to hear success stories or unusual use cases.​
    Finally if you like this plugin and would like to express your appreciation monetarily, feel free to​
    [​IMG]

    Changelog:
    • Version 1.30 2011-06-16
      • Tested Builds: 860, 928, 935, 953, 1000, 1060,1337
      • Permissions plugin support added for: Permissions 2/3, PermissionsEx, GroupManager
      • Bugfix: Customized Messages not loaded from configuration file.
    • Version 1.21 2011-06-01
      • Tested Builds: 818, 860
      • Bugfix: Bug introduced with v1.20: default config files isn't created. (Thanks WayGroovy, Azelote)
    • Version 1.20 2011-05-30
      • Tested Builds: 803, 818
      • Automatic reload of changed configuration file
      • removed /hp_reload and corresponding permission node
    • Version 1.10 2011-05-26
      • Tested Builds: 803
      • Color preserving word-wrapping added
      • Variables added
    • Version 1.00 2011-05-23
      • Tested Builds: 766, 798, 803
      • Initial Release
     
    aidancbrady and zipron like this.
  2. Offline

    PsychoNecrosis

    Hey, I'm currently running a fairly plugin heavy server, and I'm pretty sure this plugin will do what I need, but for the life of me I can't seem to wrap my head around setting it up.

    What I'd like to do is set up a page for Each of my plugins, and depending on the group the user is in, display only the commands for that plugin that they can use.

    So you'd have the menu readout as

    Generic all user help here

    /help Plugin 1
    /help Plugin 2
    /help Plugin 3

    And within the plugins command use would be broken down on a per group basis. I feel like I'm on the edge of working out how to do it, but it's just not coming together and it's driving me nuts.

    Anyone care to help? :p
     
  3. Offline

    ToastedJelly

    I'll create an example for you in 30 - 60 mins
     
    PsychoNecrosis likes this.
  4. Offline

    PsychoNecrosis

    Thank you very much! Looks like a really nice, robust plugin; good work!
     
  5. Offline

    ToastedJelly

  6. Offline

    PsychoNecrosis

    Wrapping my head round it now.

    Also the logging level's a bit OTT, I'm seeing [INFO]::greeting [INFO]::displayname on my console window on each /help command
     
  7. Offline

    ToastedJelly

    Oh.. forgot that one in there. redownload. Happy wrapping...
     
  8. Offline

    PsychoNecrosis

    ..and suddenly, it all clicks into place.

    Sometimes, having insomnia pays off.
     
  9. Offline

    ToastedJelly

    Version 1.2 is tested with 818
     
  10. Offline

    WayGroovy

    I may have installed this wrong, and forgive me if this is bothersome...

    I dropped HelpPages.jar from v1.2 into my 818 server's plugin folder. Then, in game as op, i typed /reload. I noticed that no plugin subdirectory was created, no config file, and when I typed help in game it gave me an error message in my log:

    Code:
    2011-06-01 04:55:43 [SEVERE] java.lang.NullPointerException
    2011-06-01 04:55:43 [SEVERE]     at me.ToastedJelly.HelpPages.HelpPagesConfiguration.showHelp(HelpPagesConfiguration.java:329)
    2011-06-01 04:55:43 [SEVERE]     at me.ToastedJelly.HelpPages.HelpPagesPlugin.cmdHelp(HelpPagesPlugin.java:72)
    2011-06-01 04:55:43 [SEVERE]     at me.ToastedJelly.HelpPages.HelpPagesPlugin.onCommand(HelpPagesPlugin.java:42)
    2011-06-01 04:55:43 [SEVERE]     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
    2011-06-01 04:55:43 [SEVERE]     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:128)
    2011-06-01 04:55:43 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:281)
    2011-06-01 04:55:43 [SEVERE]     at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:718)
    2011-06-01 04:55:43 [SEVERE]     at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:684)
    2011-06-01 04:55:43 [SEVERE]     at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:677)
    2011-06-01 04:55:43 [SEVERE]     at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:32)
    2011-06-01 04:55:43 [SEVERE]     at net.minecraft.server.NetworkManager.b(NetworkManager.java:217)
    2011-06-01 04:55:43 [SEVERE]     at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
    2011-06-01 04:55:43 [SEVERE]     at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
    2011-06-01 04:55:43 [SEVERE]     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:401)
    2011-06-01 04:55:43 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
    2011-06-01 04:55:43 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    I then did a server reboot, and the plugin gave the same results. no subdirectory created, no config file found in the plugins folder.

    I run McMyAdmin as my server wrapper. Don't know if that would affect this, or if it was my doing a /reload instead of a /restart on initial install.

    Server information:
    http://www.mcserverwiki.com/index.php?title=WayGroovys_BTM_Server
     
  11. Offline

    ToastedJelly

    No, I <3 bug reports :)
    Checking this now...

    The exception is due to internal data structures not being setup as there was no config files to read, but you should have got some kind of exception or message on /reload or restart of the server when the plugin tried to create the directory and default config file . Can you check again please?

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

    Azelote

    On start up it's not creating the directory or the config, yet it gives no errors on the console. Simply says "HelpPages 1.2 enabled"
    Any chance I could just get the config.txt file and then create the directory myself?
    EDIT: Upon trying to use the plugin without it's config I get this error:
    Code:
    2011-06-01 07:27:54 [SEVERE] java.lang.NullPointerException
    2011-06-01 07:27:54 [SEVERE]     at me.ToastedJelly.HelpPages.HelpPagesConfiguration.showHelp(HelpPagesConfiguration.java:329)
    2011-06-01 07:27:54 [SEVERE]     at me.ToastedJelly.HelpPages.HelpPagesPlugin.cmdHelp(HelpPagesPlugin.java:72)
    2011-06-01 07:27:54 [SEVERE]     at me.ToastedJelly.HelpPages.HelpPagesPlugin.onCommand(HelpPagesPlugin.java:42)
    2011-06-01 07:27:54 [SEVERE]     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
    2011-06-01 07:27:54 [SEVERE]     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:128)
    2011-06-01 07:27:54 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:281)
    2011-06-01 07:27:54 [SEVERE]     at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:718)
    2011-06-01 07:27:54 [SEVERE]     at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:684)
    2011-06-01 07:27:54 [SEVERE]     at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:677)
    2011-06-01 07:27:54 [SEVERE]     at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:32)
    2011-06-01 07:27:54 [SEVERE]     at net.minecraft.server.NetworkManager.b(NetworkManager.java:217)
    2011-06-01 07:27:54 [SEVERE]     at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
    2011-06-01 07:27:54 [SEVERE]     at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
    2011-06-01 07:27:54 [SEVERE]     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:401)
    2011-06-01 07:27:54 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:311)
    2011-06-01 07:27:54 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)

    I assume this is just because of the lack of config.txt?
     
  13. Offline

    ToastedJelly

    thats odd.. yes.. the missing config.txt.
    You can try to create the HelpPages/config.txt yourself.

    This should give you an idea of the content: http://pastebin.com/3rMq4mc7

    same for WayGroovy.

    I couldn't reproduce the exception yet. What's your setup, Azelote?

    New Version:

    Version 1.21 2011-06-01
    • Tested Builds: 818
    • Bugfix: Bug introduced with v1.20: default config files isn't created. (Thanks WayGroovy, Azelote)
    v1.20 user don't need to update if they already have a config file.

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

    korin125

    Hey, I think the last time I used this plugins it had a simpler configuration, or Minecraft made me stupid. Either way, could you show me how to configure a setup where if you are a 'default' user you can use /help default, if you are a 'Moderator' you can use /help default and /help moderator, and so on? I had this set up before, I would greatly appreciate your help.
     
  15. Offline

    ToastedJelly

    No, the configuration style didn't change, you probably just didn't bother to check all available documentation and try it out yourself. Here's the deal: You read all documentation and try to configure it yourself. If you still can't do it, check the spoiler. And then reply to this thread with either admitting you didn't read the docu the first time or with telling me what exactly prevented you from understanding it the first time and how to improve the documentation. Or post the configuration you had before.

    Show Spoiler

    Here is the config parts that do what you described, although i wouldn't use it like this because no group has a "/help" without any topic etc.
    Code:
    ...
    [[group Moderator
    default=>defaultHelpPage
    moderator=>moderatorHelpPage
    ]]
    [[group *
    default=>defaultHelpPage
    ]]
    ...
    [[page defaultHelpPage
    default help page
    ]]
    [[page moderatorHelpPage
    moderator help page
    ]]
    ...
    
     
  16. Offline

    reedrocks58

    THANK YOU SO MUCH!!!!!!!!! [diamond][diamond][diamond][diamond] THANK YOU!!!!!!!!!!!
     
  17. Offline

    ToastedJelly

    You're welcome :)
     
  18. Offline

    reedrocks58

    My friends like how its customizable :D Is there a way to add extra pages for the user page?
    Thanks so much! - Reed, the one who loves this plugin :p
     
  19. Offline

    ToastedJelly

    Of course there is. And it is explained in the documentation above. If you still have problems, please upload your complete configuration on pastebin.com and link it here and ask specific questions.
     
  20. Offline

    reedrocks58

    Heres what ive done with my page. Oh and i use ColorMe Plugin too :) (I like this one better though :)) I also have my own rank :) (minecrafter!)
    &eHello &2Minecrafter&e, you can use the following commands:
    &b/colorme [color] (sets your color)
    &b/colorme [player] [color] (sets someone else's color)
    &b/colorme [player] (removes the color from that player)
    &b/colorme list ( show's all the colors )
    &eThere is only 1 rank that 1 rank is &2minecrafter!
    &bThere is no breaking other peoples builds
    &bHave fun!!
    My second page isnt much lol :) i'm still trying to figure out what to put!

    THX :) I've figured it out! Now I have more pages more to enjoy!!

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

    vapid2323

    This plugin is great! I love how you paste all the commands at the bottom of the config!

    It might require some "work" to setup but I feel that this help plugin will give my users the best experiance on my server!

    Thanks!
     
  22. Offline

    Einschtein

    Where does it use the groups from? As I have a few groups, which are made in McMyAdmin. Such as Regulars, Everyone, Moderators and Administrators. But when I make a page for the group Regulars, it outputs that there is no help page.
     
  23. Offline

    ToastedJelly

    It uses Permissions. You can export to Permissions from MyMyAdmin.

    I also use it with MyMcAdmin, Export to Groupmanager and have EssentialsGroupManager and EssentialsGroupBridge installed.

    Haven't checked with the very last McMyAdmin update though, which uses Permissions 3. Will do so in the next days.
     
  24. Offline

    Einschtein

    Somehow, I don't get what I need to install to make it work on McMyAdmin. Which plugins etcetera, if more plugins - different from the standard permissions manager - is needed..

    Edit: I got it, thanks. But it would still be easier for me to use the standard permissions-thingy that comes with McMyAdmin. :p
     
  25. Offline

    ToastedJelly

    I set McMyAdmin Export Options to GroupManager and have EssentialsGroupManager from the Essentials Plugin installed and EssentialsGroupBridge, which if the same as FakePermissions.

    But you shouhd be able to just use normal Permissions and export to Permissions.

    I haven't tested the latest McMyAdmin update though, which uses Permissions 3. This may break the plugin and others... will check this in a few hours and let you know in case you can't solve this yourself in the meantime
     
  26. Offline

    Einschtein

    I am using the GroupManager and EssentialsGroupManager, doesn't seem to work. I use the same group-names as I define in GroupManager.

    Would be awesome if you could get it to working. Or I am the one making a mistake here.
     
  27. Offline

    ToastedJelly

  28. Offline

    ಠ_ಠ

    i have 2 pages, i do /help 2, and it says the page does not exist... then i do /help2 and it comes up with the default help from craftbukkit... what do i do? :(

    EDIT:

    [[group Admin
    =>AdminPage1
    1=>AdminPage1
    2=>Page2
    ]]

    changed to

    [[group Admin
    =>AdminPage1
    1=>AdminPage1
    2=>AdminPage2
    ]]
     
  29. Offline

    ToastedJelly

    Post your configuration file on pastebin.com and paste the link here.
     
  30. Offline

    ToastedJelly

    tested with 860
     
  31. Offline

    yabes

    I use Permissions but Help Pages can't find the configuration :
    Permissions work for other plugins, where is the problem ?
     

Share This Page