[INFO] StickyHelp v1.0.2 - Get help from text files [1060]

Discussion in 'Inactive/Unsupported Plugins' started by marvinbek, Jul 25, 2011.

  1. Offline


  2. Offline


    yeah.. but my question is.. what is the difference between the two? it's exactly the same to me, except HelpCenter has
    • Word-wrapping for those long lines of text
    • Directory traversal protection (trying "/help ../../../../../../../etc/passwd" will not work)
    • It can fetch web-based helpfiles via HTTP. :)
    • Default helpfile with randomly-chosen help item capability (otherwise will pass-thru the /help command if typed in without any arguments)
    • Helpfile redirection!
    • and keywords..
  3. Offline


    Color codes not working -.-
    everytime & is in the code, it wipes out everything after it.
    please help ASAP
  4. Offline


    Thanks this works great! The only problem I have found is if I type '/help (Anything that does not exist)' I get an angry error message.
    16:20:44 [SEVERE] java.io.FileNotFoundException: plugins\StickyHelp\NoExist.txt
    (The system cannot find the file specified)
    16:20:44 [SEVERE] at java.io.FileInputStream.open(Native Method)
    16:20:44 [SEVERE] at java.io.FileInputStream.<init>(Unknown Source)
    16:20:44 [SEVERE] at java.io.FileInputStream.<init>(Unknown Source)
    16:20:44 [SEVERE] at me.marvinbek.StickyHelp.StickyHelp.displayHelp(Sticky
    16:20:44 [SEVERE] at me.marvinbek.StickyHelp.StickyHelp.onCommand(StickyHe
    16:20:44 [SEVERE] at org.bukkit.command.PluginCommand.execute(PluginComman
    16:20:44 [SEVERE] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCo
    16:20:44 [SEVERE] at org.bukkit.craftbukkit.CraftServer.dispatchCommand(Cr
    16:20:44 [SEVERE] at net.minecraft.server.NetServerHandler.handleCommand(N
    16:20:44 [SEVERE] at net.minecraft.server.NetServerHandler.chat(NetServerH
    16:20:44 [SEVERE] at net.minecraft.server.NetServerHandler.a(NetServerHand
    16:20:44 [SEVERE] at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:3
    16:20:44 [SEVERE] at net.minecraft.server.NetworkManager.b(NetworkManager.
    16:20:44 [SEVERE] at net.minecraft.server.NetServerHandler.a(NetServerHand
    16:20:44 [SEVERE] at net.minecraft.server.NetworkListenThread.a(SourceFile
    16:20:44 [SEVERE] at net.minecraft.server.MinecraftServer.h(MinecraftServe
    16:20:44 [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftSer
    16:20:44 [SEVERE] at net.minecraft.server.ThreadServerApplication.run(Sour

    Nothing bad happens but it's gonna start spamming the log soon XD.

    Are you putting a number or letter between 'a' and 'f' immediately after the &? Mine are working fine.
  5. Offline


    yes, im doing it the correct way, it works on other plugins. But im using MyMCAdmin and i think i found a way to make it work, thanks anyway :)
  6. Offline


    so then this works on RB#1000?
    EDIT: helpcenter that is
  7. Offline


    yep.. 100% working.. or let me say 101% :D
    Spamandritz likes this.
  8. Offline


    The problem I have is when some searches for a help file that isn't there it throws big exceptions on the server.
  9. Offline


    I'll fix it later. I just got home from vacation.
  10. Offline


    Is this the case if you just type /help too? or /help anything that doesnt exist?

    I wish this plugin could be configured to point to a default .txt when you type /help and if you type help for anything not configured it would say does not exist instead of spouting out a long error message lagging the server unessecarily and spamming the logfile.

    If this was fixed this would be the best help plugin out there! All the other ones are way too complex to setup.


    I see;
    16:20:44 [SEVERE] java.io.FileNotFoundException: plugins\StickyHelp\NoExist.txt
    (The system cannot find the file specified)

    That means if you had a txt file called NoExist.txt in /Stickyhelp folder it would show that instead of the error message :) That's great :D

    But can it altso be configured with a default.txt ? for just /help :)

    Altso, thanks for all the hard work :) I hope my suggestions can be easily implemented without alot of code :)
  11. Offline


    It can be pretty easily fixed/implemented. I'm just lazy, and just wiped my computer :D Thankfully my source is on the external HDD :p
  12. Offline


    Well.. I haven't heard anything from you and my users are starting to get impatient.. maybe i'll try that plugin that someone mentioned that does exactly the same as this one :p (Helpcenter?)
  13. Offline



    I'll start working now

    Testing time!

    Oooh... There's a bug i can't squash and i'm tired... Good night :D

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


    Yeah! GOT IT!

    v1.0 done, releasing now, after i revamp the post :D

    V1.0 IS OUT!

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


    @marvinbek seams to be working just fine. You do seam pretty new to this stuff but you are learning and that is what counts. Keep up the good work.
  16. Offline


    Suggestion #1:
    - "an automatic index" with permissions

    like (as an op with craftbukkit.command.stop):
    /help index
    help, server, multiverse, teleport, ops, bigbrother, shutdown
    /help shutdown
    This shuts the server down, duh.

    as a "builder":
    /help index
    help, server, teleport
    /help shutdown
    "not found"

    something to the tune of:
    help.txt: default
    server.txt: default
    multiverse.txt: admin
    teleport.txt: builder
    ops.txt: admin
    bigbrother.txt: moderator
    shutdown.txt: craftbukkit.command.stop

    using the permissions group of the same name or even tied to a specific permissions node

    Suggestion #2:
    Fix for the directory traversal bug morizuki mentioned-- being able to /help ../BigBrother/BigBrother.yml to grab the db password is bad mkay? You need to clean any input you're taking from users. Limit chars you'll use to A-Za-z0-9_- a single . in sequence is ok too but not multiple. Most special characters should be stripped, different OS's use different ones for special reasons, safest thing is strip the majority.

    Suggestion #3, keep your change log (add-one, it's required anyways if memory serves me) up to date, if you fix bugs note which ones there :) That way people know when they look at the change log what is different.

    You're doing good work so far keep it up!

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


    I'm very new at Java. So thank you!

    Have you not seen the "Configurable Extension"? It's set to default to only open .txt files, but can be changed. (No offense)

    I don't get it. You mean like "stickyhelp.read.<nameoftextfile>"? It's doable. I was actually planning that for v1.0, but didn't have time for that. I'm planning on putting that in v1.1.

    EDIT: After re-reading the post, i think i get it. An index is now planned for next release, along with per-file permissions. (Both will be configurable in the config file, obviously!)

    Fixed in v1.0

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


    Can you change the command to something else? It conflicts with my essentials help, and now I only get sticky help. Can you make some sort of config option where you can disable /help for StickyHelp and add an alias? Thanks.
  19. Offline


    Only when i figure out how to... Should i change the plugin.yml at runtime, or is there a way to change it in the API?

    YAY for first 1060 tested plugin!

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


    Yeah, I would love to use this plugin but I don't like how it's not compatable with Essentails. Maybe if the command was changed to /shelp or something.
  21. Offline


    I don't know java, but the option should be in config.yml and should look this this in the config:

    AllowAliasOnly=False <- default set to false

    To make the alias, I think all you have to do is copy all of the code from the command, and rename all the listeners and things.

    EDIT: Look in below post.

    Or you can make another config option that says:

    UseDefaultTxt=True <- default set to true

    When enabled, /help will bring up the default file.

    EDIT: It will also work like the default is blacklisted.

    Here's a third suggestion: blacklist entries


    It will check if the file requested is on the black list. If it is, the file will not be displayed and it will not throw a "caught a /help" in the console and it will let the essentials one work.
  22. Offline


    Okay. I poked around eclipse yesterday and I think I found a solution. In the plugin.yml, change the commands part to look like this:

    description: This shows help.
    usage: /help [page]
    description: Alias for StickHelps's /help.
    usage: /shelp [page]

    Then add listeners for the alias. :p

    I can't find out anything more because I can't open your class file.
  23. Offline


    I know, but i want it configurable.

    BTW, there is a .java source file in the jar under me/marvinbek/StickyHelp. Take a peek if you dare (very messy code :p)

    EDIT: It can be done easily if there is a function in the Bukkit API to change the command.
  24. Offline


    I did take a look at the source. It's not that messy, compared to some of my works. :p

    In your onEnable, where you put the
    , you could put this:
    prop.put("OnlyAllowAlias", "false");
    prop.put("Blacklist", "");
    prop.put("AllowDefaultFile", "true")
    And then code it. I don't really know java/bukkit api so I can't really help. But I can suggest things :p

    What's in your class file anyways? Eclipse can't open that class file for me...
  25. Offline


    It's just a compiled version of the .java file.
  26. Offline


    if(commandlabel.equalsIgnoreCase("help")||commandlabel.equalsIgnoreCase("shelp")) {
                    this.logger.info("Catched command help");
                    if (args.length == 1) {
                            this.logger.info("Displaying help");
                        displayHelp(sender, args[0]);
                    } else {
                            this.logger.info("Displaying default");
                        displayHelp(sender, prop.getProperty("DefaultFile"));
    There you go. I added a check for the alias.... Now you have to add the other settings. :p

    Actually, can I just copy the whole source here and put it into the code thing? And make my edits here?

    EDIT: I might have lied about the "can't help much" part. Java looks very similar to flash/actionscript....
    EDIT2: I downloaded the source and added an alias. I would be glad to give it to you if you want. :D
  27. Offline


    Ugh.. I cant figure out why this simply will not work. It loads without error in the logs. I have bukkit 1060 when i type /help i dont get any error or any feedback. If i type /help winkworld i also get nothing no error.

    My config file is:

    #Fri Aug 19 17:02:58 GMT 2011

    I have a text file in the plugins/StickyHelp called default.txt I also have a txt file in plugins/StickyHelp called winkworld.txt. I have StickyHelp 1.0.1 installed.

    Here is my log file.

    2011-08-19 17:14:30 [INFO] [FirstLastSeen] version 0.7 loaded.
    2011-08-19 17:14:30 [INFO] StickyHelp v1.0.1 enabled!
    2011-08-19 17:14:30 [INFO] PermissionsBukkit v1.1 is now enabled

    I also have permissions set up using superperms (permissions bukkit) i dont see specifications that i should be using bridge or not.

    I need a help system it seems to be loaded i have rebooted the server a few times. Thoughts comments suggestions?

    Is there a specific syntax for the text files themselves?
  28. Offline


    Is there text entered in each of the documents? And check the console. If the help file loaded correctly, the console should say "catched command help".
  29. Offline


    Sorry for not specifying, but you need the bridge.

    Only does that if the sender has permission to use StickyHelp (stickyhelp.read)

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


    Excellent plugin. Helped me clear up my /help menu quite a bit. In-fact it's drop dead gorgeous now will all these pages that I can add to it.

    Good job with this.
  31. Offline



    Does not seam that help really caches well.
    03:45:51 [INFO] Catched command help
    03:45:51 [INFO] Displaying default
    03:45:51 [INFO] Catched command help
    03:45:51 [INFO] Displaying default
    03:45:52 [INFO] Catched command help
    03:45:52 [INFO] Displaying default
    03:45:52 [INFO] Catched command help
    03:45:52 [INFO] Displaying default
    03:45:52 [INFO] Catched command help
    03:45:52 [INFO] Displaying default
    03:45:53 [INFO] Catched command help
    03:45:53 [INFO] Displaying default

Share This Page