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

    captainawesome7

    You could just use MCDocs
     
  3. Offline

    ToastedJelly

    Or SimpleHelp or HelpCenter or Help and some others ... all of which do something similar. Diversity allows you to choose the tool that works best for your Scenario.
     
  4. Offline

    Plague

    please use version ranges only when really necessary
     
  5. Offline

    ToastedJelly

    I thought Version ranges only when it can be guaranteed... How do I specify that it's combatible to prior Builds for Servers that didn't update yet?

    And thanks for moving.
     
  6. Offline

    cholo71796

    @ToastedJelly
    Very nice, word-wrapping would be a great addition to the plugin- I would definitely use this if it was added.

    EDIT: Also, make sure it doesn't tear off letter coloring on the next line (if you do add it)! Hahah
     
  7. Offline

    lordkalem

    theres no actual pages it only shows as one long list that goes down off the !page!. how can i get it to go into individual pages with there own /help # if i type /help 2 it just says try page 1 and nothing els happens and if i type /help it will show both pages 1 and 2 from the default config when i first started and even when i started adding new pages they all just stayed in 1 line
     
  8. Offline

    ToastedJelly

    Please send me your complete configuration via pastebin.com. I assume you're using the latest Bukkit-Build - if not, specify.

    Would never use it as I wanted full control over wrapping, but you're right - some people may use this for longer texts and it wouldn't affect people that manually word-wrap. I'll look into it.

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

    Semirotta

    how can i create new admin page?
    i have page 1 for all / different kind for admins
    page 2 for all commands puplic and i want to make page 3 for admins only for admin commands.
    Code:
    [[page UserPage1
    &c--------------------- HELP 1/3  ---------------------
    &bTerve Semicraftin pelaaja.
    &c/help &7[#] &f- Näyttää HELPin eri sivut &7[#]
    &bSivulta 2 löydät yleiset komennot joita jokainen voi käyttää.
    ]]
    [[page ModPage1
    &c--------------------- HELP 1/3  ---------------------
    Hello Moderator, you can use the following commands:
    &c/help &7[#] &f- Shows help page &7[#]
    ]]
    [[page AdminPage1
    &c--------------------- HELP 1/3  ---------------------
    Terve Semicraftin Admin.
    &c/help &7[#] &f- Näyttää HELPin eri sivut &7[#]
    &bSivulta 2 löydät yleiset komennot joita jokainen voi käyttää.
    &bSivulta 3 löydät komennot joita Admin voi käyttää.
    ]]
    [[page AdminPage3
    &c--------------------- HELP 3/3  ---------------------
    &b]]&bKomennot joita jokainen voi käyttää: 
    &b]]&6/sethome 1-20 - Asettaa kodin 1-20.
    &b]]&6/home 1-20 - Teleporttaa kotiin 1-20.
    &b]]&6/delhome 1-20 - Poistaa kodin 1-20.
    &b]]&6/lwc - Lukitse arkut,ovet,furnacet,signit etc. tämän avulla.
    &b]]&6/jailstatus - Tarkistaa Jail statuksen jos olet jailissa.
    &b]]&6/lottery - Näyttää Lottery tiedot.
    ]]
    [[page Page2
    &c--------------------- HELP 2/3  ---------------------
    &b]]&bKomennot joita jokainen voi käyttää: 
    &b]]&6/sethome 1-20 - Asettaa kodin 1-20.
    &b]]&6/home 1-20 - Teleporttaa kotiin 1-20.
    &b]]&6/delhome 1-20 - Poistaa kodin 1-20.
    &b]]&6/lwc - Lukitse arkut,ovet,furnacet,signit etc. tämän avulla.
    &b]]&6/jailstatus - Tarkistaa Jail statuksen jos olet jailissa.
    &b]]&6/lottery - Näyttää Lottery tiedot.
    ]]
    
    This is what i got atm. Help 3/3 should be the admin page which im still editing so it has copied the same commands lol as help 2/3 which shows for every1
     
  10. Offline

    ToastedJelly

    You just posted the pages. The group definitions actually decide who sees what. What do you have there?
    Also, do you run Permissions and what are your group names? or are you just Op and you don't have permissions?
     
  11. Offline

    Semirotta

    I have permissions, i got normal users and admins only.
    i want to show the admins page for admins only :)
    i have set the permissions for me n my friend who are the admins

    EDIT:

    i got it. added to groups
    [[group Administrators,(OP)
    =>AdminPage1
    1=>AdminPage1
    2=>Page2
    3=>AdminPage3
    ]]
     
  12. Offline

    ToastedJelly

    Ok. you got it working. great.
     
  13. Offline

    Semirotta

    thank you for this awesome plugin. :)
     
  14. Offline

    thernztrom

    Wow, looks exactly of what i have been looking for! Will test it out!

    Ok, installed the plugin easilly and set it up with no problems. :)
    Its really an awesome plugin, and the config is really easy to understand!

    Only thing that I believe would be nice is if the top Page number is a function instead of normal manual letters.
    So I that got 7 ranks in my server can have automatic help-page counter for each rank.
    Right now I have so that Default access first page, Members 2nd, VIP 3rd, Donators 4th, Mods 5th, Smods 6th and admins 7th. Now, I can make it so members see at the top "Page 1/7" or "Page 1/1", but both creates dilemmas.
    With "1/7" they might wonder wy it says that when they only see first one.
    With "1/1" Im afraid Vip´s--Smods wont understand they have more pages, and it will be unclear to them how many pages they can see.

    So it would be awesome with a function that sees how many "help-pages" default's shouls have acess to (1), and it shows automaticly 1/1. And for Members it sees that they have access to 2, and shows that 1/2.
    Because then Members will know they have 2 pages to show and Mods know they have 5 pages to browse.

    Something that would be possible? :p
    If so it would be great!

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

    ToastedJelly

    I see your dilema, but the problem atm is that the selector is basically freeform. So if I have the folowwing selectors: ""(empty), "1", "2", "42"
    how do I know that in fact these are 3 and not 4 pages - ok, maybe I check the unique pages available, but still... the 42 is numeric, but probably doesn't belong to the normal help pages and it shouldnt show x/3, but just 1/2 and 2/2 and page 42 would be something additional.

    Another Idea.... I thought about adding Variables - like Username etc.
    If I would also allow to create custom variables and make those also settable by groupname, you could do pagenumber=2 for members and pagenumber=5 for Mods and then write Page 1/[pagenumber].
    What do you think?
     
  16. Offline

    Plague

    You don't have to guarantee old builds. Currently bukkit is a rolling-update software.
     
  17. Offline

    thernztrom

    Yeah that sounds cool. Or if it is possible to make it even more automatic so that I assign the pagenumber in the config to a repective rank in permissions. So I preselct that pagenumber 2 is members and pagenumber 5 is Mods. So that it will check against permissions for what "rights" you have.
    Or if not possible maybee have an option to add permissions nodes for that. pagenumber.1, pagenumber.2
     
  18. Offline

    ToastedJelly

    I know... anyway, I found a good solution I think - I put the tested builds in the changelog
     
  19. Offline

    thernztrom

    also I can guarantee it works with RB 766. Flawless ;)
     
  20. Offline

    ToastedJelly

    Yes, I had to remove it from the title, but it's in the changelog...

    Well that exactly what the group definitions are for. I don't see how I can keep the selectors freeform and powerful as now AND count pages that belong together... The thing is that the engine doesn't know or cares that the pagenumbers are numeric or that they have a certain order. Permission nodes wouldn't solve this as you also assign these per group so there's no new functionality.

    I think I will go with Variables for now - this could even be used to rearrange the pages order and not only add at the end.

    Example:
    Code:
    [[group User
    pagecount=2
    orderBasicCmds=1
    =>BasicCmds
    1=>BasicCmds
    2=>TeleportCmds
    ]]
    [[group Admin
    pagecount=3
    orderBasicCmds=3
    =>AdminCmds
    1=>AdminCmds
    2=>TeleportCmds
    3=>BasicCmds
    ]]
    [[page BasicCmds
    ---- page {orderBasicCmds}/{pagecount} ----
    Hi [Username]!
    ...
    ]]
    [[page TeleportCmds
    ---- page 2/{pagecount} ----
    ...
    ]]
    [[page AdminCmds
    ---- page 3/{pagecount} ----
    ...
    ]]
    
    
    I have to think about the exact syntax I want to use, though - the above is just a sketch - the syntax may change.

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

    thernztrom

    Yeah, that looks awesome. So then it would recognize me as Admin and when i pop up the help menu it will show the preselected page/"pagecount"?
     
  22. Offline

    ToastedJelly

    if you type /help 3 as an admin, it first sees that you're an admins, so all the variables for admins are set:
    pagecount=3
    orderBasicCmds=3


    Then it sees your selector "3" and maps it to BasicCmds, which includes the text
    "page [orderBasicCmds]/[pagecount]"


    and when the Variables are substituted you get "page 3/3"
     
  23. Offline

    GT-Rustik

    Yes, this is very nice help :) thank you ToastedJelly!
     
  24. Offline

    ToastedJelly

    New Version

    Version 1.10 2011-05-26
    • Tested Builds: 803
    • Color preserving word-wrapping added
    • Variables added
    Variables are used with {} - see Documentation
    Also updateable by CraftBukkitUpToDate now
     
  25. Offline

    thernztrom

    Sweet, can i just replace the old jar, or do i also have to delete the config for the new variables?
     
  26. Offline

    ToastedJelly

    just replace the jar and you can use variables
     
  27. Offline

    thernztrom

    Nothing big but when I start/reload my server it says HelpPages is of ver 1.00. :p
     
  28. Offline

    ToastedJelly

    Thanks. Forgot that.. it's 1.1 though.. I'll change it in the next hours :)
     
  29. Offline

    ToastedJelly

    Added explanation how to integrate this with essentials in the "How to install" section
     
  30. Offline

    ToastedJelly

    Version 1.20 2011-05-30
    • Tested Builds: 803
    • Automatic reload of changed configuration file
    • removed /hp_reload and corresponding permission node

    Also, for the interested - I guess not many use this in the console:
    I found a bug in (Craft)Bukkit: Outputs to the console that have no space character in them, are ignored.
    So if you have a line in your help pages without a single space, it will not show up in the console if you type /help there. This doesn't affect the output in the game client in any way.
    As this is not a bug of HelpPages, doesn't affect a lot of people and I have it reported and expect it to be fixed pretty fast, I won't bother to include this in the description in the initial post.

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

Share This Page