[FUN][CHAT] ServerBot V0.4 - It's like an IRC Bot for Minecraft! - [740]

Discussion in 'Inactive/Unsupported Plugins' started by lego6245, Feb 5, 2011.

?

What should the Next Feature I work on be?

More parsing like {P} 40 vote(s) 12.3%
A cool command 142 vote(s) 43.6%
Different sorts of catches 42 vote(s) 12.9%
"Friends" system 102 vote(s) 31.3%
     
  1. Offline

    lego6245

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    ServerBot - You've got a friend in me: IRC Bot-like creation with catch/response system.

    Version: v0.4 - "Why does the <init>() keep existing!" edition

    About
    Styled after many an IRC bot, ServerBot is a customizable bot with a catch/response system that lets you program responses for key phrases or questions directed at your Bot. In the future, the bot will have functions like:
    • Dice rolling
    • Lotto
    • RSS feeds
    • Tweeting
    • Googling
    • Quick references
    • Time both Server and Local
    • Any any other suggestions
    For now, with v0.1, we have the catch system online. With v0.3 the friends system was activated.


    Download
    Zip File with Config

    Base Level Configuration
    In the config.yml file inside the ServerBot folder, there are five main options so far. They are pretty self explanatory (name is the bot's name, color is the [0-9a-f] letter designating the color), save for the last three: action, spoken, and other. Those are part of the Catch System, outlined below.

    Catch System
    There are three types of catches. Action catches, Spoken catches, and Other catches. Action catches are used when the player uses the /me command. Spoken catches are used then the player sends a normal chat message. Other catches are other messages used elsewhere throughout the program. The format is thus:

    Yay! A hug from {P}!: [hugs]
    I like waffles, {P}: [does, like waffles?]

    The way this works is simple. The first bit is the actual response you want. Notice the {P}. This inserts the players name at that spot. The second bit after the colon, in bracket, is the before/after clause. The first part, before the comma, is what should come before the bot's name. The second part, after the comma, is what should come after the name. Avoid using commas in your actual catches, as it probably will break things. This is the format for Spoken/Action catches. Other catches are similar, except instead of having a before/after, you have just the ID of the other catch. A list of IDs are provided below, and they are self explanatory.
    • playerjoinop
    • playerjoinfriend
    • playerleaveop
    • playerleavefriend
    • playerkickfull
    • playerkickbanned
    • playerkickother
    Parsing
    In your responses, you can use certain parsers. These will input things that you might not want to remain constant, i.e. the players name or the current time. Here is a list of current Parses. Add them in like in the example above.
    • {P} - Player Name
    • {B} - Bot Name
    • {T} - Time (Real World)
    • {D} - Date (Real World)
    • {ST} - Time (Server)
    • {DT} - Descriptive Time (Real World)
    • {SDT} - Descriptive Time (Server)
    Change Log
    Version 0.4
    • Compatible with most recent recommended build.
    • Fixed a few lingering Friends system issues. Preparing full implementation.
    Version 0.3b1
    • Friends system in place. May be buggy.
    Version 0.2
    • More parsing for the bot
    Version 0.1
    • Release. Base catch system
  2.  
  3. Offline

    fugue2005

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    CB440

    only thing working is the op join
  4. Offline

    lego6245

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    @drampelt Then I guess it's a random bug. As for the essentials /me that's expected behavior. Wait for a newer essentials update and it should fix it.
    --- merged: Feb 28, 2011 1:56 PM ---
    @fugue2005 Are you following the instructions and posts before you? That might help.
  5. Offline

    Zaonhort

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    I'm getting an error on craftbukkit #450

    Code:
    2011-02-28 10:09:19 [SEVERE] Could not load plugins\ServerBot.jar in plugins: null
    org.bukkit.plugin.InvalidPluginException
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:80)
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:129)
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:94)
        at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:59)
        at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:204)
        at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:191)
        at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:131)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:246)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Caused by: java.lang.NoSuchMethodException: com.enigmasm.serverbot.ServerBot.<init>()
        at java.lang.Class.getConstructor0(Unknown Source)
        at java.lang.Class.getConstructor(Unknown Source)
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:75)
        ... 8 more
    Also I think it would be cool if you could have a basic conversation with it and it would be awesome if we could use if..then statements in the config or something like depending on the day, or player. Also it would be awesome if it could search for definitions. like "define bucket" and it will go fetch that data and define it
  6. Offline

    lego6245

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    This seems to be a blanket problem that I can't seem to reproduce. Make sure your craftbukkit version is as current as possible.
  7. Offline

    GizmoTheGreen

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    I have issues using this configfile, am I doing anything wrong or is it a bug?


    Code:
      action:
          Yay! A hug from {P}!: [hugs]
          I has been summoned!: [summons]
      spoken:
          no u {P}: [no u]
      other:
          Oh look, an OP!: playerjoinop
          I will miss you {P}: playerleaveop
          {P} mean to me! T_T: playerkickfull
          {P} tried to force himself on me! T_T: playerkickban
          {P} mean to me! T_T: playerkickother
    error message:
    Code:
    Caused by: while parsing a block mapping
     in "<reader>", line 10, column 7:
              Oh look, an OP!: playerjoinop
              ^
    expected <block end>, but found Scalar
     in "<reader>", line 12, column 11:
              {P} mean to me! T_T: playerkickfull
                  ^
  8. Offline

    lego6245

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    I don't see what could be wrong. Try not starting a line with a { symbol.
  9. Offline

    GizmoTheGreen

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    latest recommended build broke this plugin? I get

    Code:
    07:37:54 [ALLVARLIG] Could not load plugins\ServerBot.jar in plugins: null
    org.bukkit.plugin.InvalidPluginException
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
    ava:80)
            at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.
    java:129)
            at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager
    .java:94)
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:59)
            at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:204)
            at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:191)
            at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:131)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:246)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Caused by: java.lang.NoSuchMethodException: com.enigmasm.serverbot.ServerBot.<in
    it>()
            at java.lang.Class.getConstructor0(Unknown Source)
            at java.lang.Class.getConstructor(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
    ava:75)
            ... 8 more
  10. Offline

    lego6245

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Oh god, this thing again. I'm going to try to figure out what it means. I have no idea though, so wait for me to find out.
  11. Offline

    Emalde

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    This is a fun plugin, thanks for making it! Do you think it would be possible to restrict/separate catches by user type? Have it say one when an OP trips a catch, but something else when a regular player does the same?
  12. Offline

    lego6245

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    That will be in a later update, @Emalde.

    By the by, here is what the Vo.3 update will have
    User Types: Known, Friend, Admin, Owner
    Able to change the types from in game using SQLite.
    Able to have join messages for each type of user.
  13. Offline

    Emalde

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Oh no, we're getting an error! While I can guess this means one (or some) of our lines are too long, is there any way to make it more helpful?

    Code:
    [SEVERE] 1 (Is it up to date?)
    java.lang.ArrayIndexOutOfBoundsException: 1
    	at com.enigmasm.serverbot.Bot.loadCatches(Bot.java:121)
    	at com.enigmasm.serverbot.ServerBot.loadBotInformation(ServerBot.java:50)
    	at com.enigmasm.serverbot.ServerBot.onEnable(ServerBot.java:39)
    	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:140)
    	at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:426)
    	at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:187)
    	at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:79)
    	at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:60)
    	at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:187)
    	at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:174)
    	at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:120)
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:227)
    	at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Edit: after extensive testing we have -zero- idea what the hell is going on
  14. Offline

    GizmoTheGreen

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Sounds awesome lego, patiently waiting :)
  15. Offline

    skillinazn

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    I have figured out the pointers of some of the errors of this plugin. If you ever add under scrolls (_____) To the server bot's respond message you WILL get that error no matter what. The same will go for equal signs. The problem might be is that the under scroll or equal sign might have a different function, which means they are read differently.

    As to looking at Emalde's error, I have also come to the conclusion that putting periods in the responses will trigger that error. Basically, the only symbol that can be used for messages is the exclamation sign or the dash for now. (I don't know about the others, didn't test it)

    How do I know all of this? I had just made near spam log of text and found out why it was failing. The issue probably has to do with the .yml format but I'm not completely sure.

    Edit: If you are to attempt to link two responses in one message it will not work.
    Ex. Hi! : [Hi]
    How's it going? : [Hi]
  16. Offline

    Emalde

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Thanks skillinazn, that stopped it from erroring, but now spoken catches wont work at all (actions and other do however). This plugin has the most ridiculous problems I've ever run into :/

    edit: we've kind of gotten around it by moving them all into actions, but the lack of hyphens and periods is one of the strangest bugs in the world
  17. Offline

    lego6245

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    I'll check into that period and hyphen thing. Thanks for the debugging help.
  18. Offline

    skillinazn

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Ok, for spoken catches you must remember to type what your want your bot to say first, then space it once and type a colon. Afterwards you space again and type what you, the player, will say. Then put it in brackets. Since this might be confusing to say here is a simple model to show you.

    "Word for Server Bot to say" : ["Word that the player should say"]

    Ex. (This is from my own text, from an event map)
    Welcome to the Collozo! This challenger has come their way to battle these fiendish monsters! Good Luck and Have fun! : [collozo1]

    As you can see here, "Welcome to the Collozo! This challenger...." is the text the bot will say. [collozo1] is what the player will have to say to trigger that catch phrase.

    Because this is in .yml format you should know that if you are ever to enter another line you MUST backspace until it has reached the first spacing. Then you can press tab and type whatever you like. (Notepad++ helps a lot to see what the errors are)

    Finally, to trigger that catch phrase you would in game type:
    "phrase to say" "Bot Name"
    Ex. collozo1 Server-Tan Then after Server-Tan will say the phrase above.

    No problem. Hyphens work by the way, but apostrophes do not. (Well I'm not entirely sure, but when I added it the line would still have a gray color using Notepad++, meaning that the code did not go through)
  19. Offline

    lego6245

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Apostrophes are used to designate strings, so that would break it. Perhaps try \' instead? or is it /'... I forget. Anyway, use an escape character and it should work better.
  20. Offline

    skillinazn

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Cool, I'd try it out but the new craftbukkit build doesn't support it. Mind if you can update it please?
  21. Offline

    MJRamon

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    I found a clue about "Could not load plugins/*****.jar in plugins: null
    org.bukkit.plugin.InvalidPluginException" error

    a m (flames):

    Hope this will help. If you've placed source files, I could try to fix this (though I'm no good in Java, but tutorials and wiki make their job)
  22. Offline

    lego6245

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Sorry for being away for so long. Spring Break + God Only Knows = Lack of Updates. Rest assured that development is resuming!

    -William
  23. Offline

    lego6245

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    WARNING: UPDATE 0.3b1 IS JUST THAT: A BETA. ALL OTHER THINGS SHOULD BE WORKING PROPERLY SAVE FOR THE FRIENDS FEATURE. USE FRIENDS AT YOUR OWN RISK.

    Now, with capslock turned off, 0.3b1 is released
    Changes: Friend system. You'll need the full zip for this one, as it contains SQLite, the database management system I chose. You're welcome.

    You may now collectively download from the links in the thread.
  24. Offline

    MJRamon

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Thank you. Does it support 556 version? Cause it's too early to upgrade for 1.4...
  25. Offline

    lego6245

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    It should work backwards.
  26. Offline

    lego6245

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    As an aside, I have found no major bugs in promoted craftbukkit build 617, which is recommended and supports 1.4
  27. Offline

    MJRamon

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    About half of plugins are still not updated :) So I won't be in rush
    I'll check the plugin, thank you
  28. Offline

    MJRamon

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Nope. Doesn't work.

    Code:
    [SEVERE] Could not load plugins/ServerBot.jar in plugins: null
    org.bukkit.plugin.InvalidPluginException
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:113)
            at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:159)
            at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:107)
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:61)
            at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:204)
            at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:191)
            at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:131)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:246)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Caused by: java.lang.NoSuchMethodException: com.enigmasm.serverbot.ServerBot.<init>()
            at java.lang.Class.getConstructor0(Class.java:2706)
            at java.lang.Class.getConstructor(Class.java:1657)
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:108)
            ... 8 more
    
    CB 556
  29. Offline

    lego6245

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Oh god, not this again. No such method exceptions are haunting me. HAUNTING ME I TELL YOU! It's because you should really version up by now...
  30. Offline

    MJRamon

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Too bad:( Maybe later.
  31. Offline

    Plague

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    You'Re missing a changelog and there has to be the latest working version in the thread title.
  32. Offline

    lego6245

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    First of all, V0.3b1 is the latest working version. One component of it, which is not necessary for actual usage, hasn't been able to be tested throughly (as I am but one man) and therefore the "b1". Second, changelog will be added.

Share This Page