Ample Chat Bot
What is this plugin?
Ample Chat Bot is a chat robot that responses to key phrases people say in chat. By doing this, it eliminates the need to answer common questions people ask like "can I be op?".
- Localized for English
- Simple Commands
- Database Support:
- Bukkit
- SQLite
- MySQL
- Bukkit
- API for developers
Requirements
- Bukkit
- Some form of permissions
Commands and Permissions
| Command | Permission | Description |
|---|---|---|
| /ample | Displays commands for this plugin | |
| /question <question or keyphrase> | ample.edit | Adds a question or keyphrase |
| /answer <question id> <answer> | ample.edit | Sets the answer to a question or keyphrase |
| /qlist | ample.qlist | lists questions |
| /delquestion | ample.delete | Removes a question from the database |
| /amplesay <message> | ample.say | Sends a message as the bot |
Additional Permissions
| Permission | Description |
|---|---|
| ample.* | Gives access to all commands |
| ample.invoke | Allows a user to invoke responses |
| ample.allowabuse | Allows a user to bypass abuse routines |
Message Format
Ample can not only respond with text, but can also execute commands in chat. Ample can also run commands and send private messages to the player. In order to do this, you use one of the following as a prefix to the message
In addition, you can also have ample do combinations of these by separating them with a ";". For example, the response No you shut up - muted lol;cmd:mute %player will say the first
part in chat, as well as mute the player.
| Prefix | Effect |
|---|---|
| cmd: | Runs a command as console |
| pcmd: | Runs a command as the player |
| pm: | Send a private message to the player |
This plugin utilizes Plugin Metrics for collecting statistics about this plugin and usage. These stats can be viewed here.
The bukkit implementation of this plugin uses Updater for automatic updating from the project page at dev.bukkit.org
-
View User Profile
-
Send Message
Posted Apr 30, 2012@darthdude92
if you use the cmd: prefix there might be a bug with it. so becareful. we have the ban report on our server and I had the plugin attempt to /warn %player no asking for promos and it warned the wrong person.
-
View User Profile
-
Send Message
Posted Apr 30, 2012@darthdude92
your welcome!
-
View User Profile
-
Send Message
Posted Apr 30, 2012Great plugin, does just what I need it to do: run commands based on phrases!
Thanks!
-
View User Profile
-
Send Message
Posted Apr 30, 2012@jessefjxm
hmm. Interesting that is did not accept the color codes. Sorry! I will add that to the things to do.
-
View User Profile
-
Send Message
Posted Apr 29, 2012well....it seems that the BotName in config file doesn't support color...or there's any thing i did wrong?- - BotName: '&3[&4Tips&3]&f'
-
View User Profile
-
Send Message
Posted Apr 29, 2012@omgitsmit
hmm. I am thinking that it failed to connect do to maybe settings?
-
View User Profile
-
Send Message
Posted Apr 28, 2012Loads just fine (Using MYSQL)
[INFO] [Ample] Enabling Ample v1.2 [INFO] [Ample] Using MySQL db...
I add one question and add an answer to it.
I then type the question verbatim into chat from a user that has the ample.invoke permission and i receive the following error:
[SEVERE] java.sql.SQLException: Before start of result set [SEVERE] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) [SEVERE] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) [SEVERE] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) [SEVERE] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) [SEVERE] at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:841) [SEVERE] at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2672) [SEVERE] at org.jaggy.bukkit.ample.db.MYSQL.currentEpoch(MYSQL.java:175) [SEVERE] at org.jaggy.bukkit.ample.AmpleListener.onChat(AmpleListener.java:58) [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [SEVERE] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [SEVERE] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [SEVERE] at java.lang.reflect.Method.invoke(Method.java:616) [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) [SEVERE] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [SEVERE] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459) [SEVERE] at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:786) [SEVERE] at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:764) [SEVERE] at net.minecraft.serverhook.NetServerHandlerProxy.a(NetServerHandlerProxy.java:141) [SEVERE] at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:33) [SEVERE] at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) [SEVERE] at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) [SEVERE] at net.minecraft.serverhook.NetServerHandlerProxy.a(NetServerHandlerProxy.java:83) [SEVERE] at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) [SEVERE] at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:554) [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452) [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:490)
-
View User Profile
-
Send Message
Posted Apr 28, 2012@matthewl6970
That would be great. Predicting and implementing every variance of a question is pretty impractical.
-
View User Profile
-
Send Message
Posted Apr 25, 2012@rickky2
Oh. :P that problem. I'll see if I can loosen the search code in future releases.
-
View User Profile
-
Send Message
Posted Apr 24, 2012@matthewl6970
No error.I enter "hello" then will show "world".But enter "hello world" is nothing
-
View User Profile
-
Send Message
Posted Apr 24, 2012@rickky2
It should work. Are you getting any errors?
-
View User Profile
-
Send Message
Posted Apr 24, 2012Keyword not working?
-
View User Profile
-
Send Message
Posted Apr 22, 2012@Jaminloh
ok I see a point in a reconnect command. I'll added it ti the todo list.
-
View User Profile
-
Send Message
Posted Apr 22, 2012@Jaminloh
Nope no reload command since the plugin uses databases there is no need for it.
-
View User Profile
-
Send Message
Posted Apr 22, 2012Can you make command to reload the database? maybe /ample reload or /qlist reload
Theres also an error when someone types ' in chat,
[SEVERE] java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (unrecognized token: "' LIMIT 1;") [SEVERE] at org.sqlite.DB.newSQLException(DB.java:383) [SEVERE] at org.sqlite.DB.newSQLException(DB.java:387) [SEVERE] at org.sqlite.DB.throwex(DB.java:374) [SEVERE] at org.sqlite.NativeDB.prepare(Native Method) [SEVERE] at org.sqlite.DB.prepare(DB.java:123) [SEVERE] at org.sqlite.Stmt.executeQuery(Stmt.java:121) [SEVERE] at org.jaggy.bukkit.ample.db.SQLITE.query(SQLITE.java:79) [SEVERE] at org.jaggy.bukkit.ample.AmpleListener.onChat(AmpleListener.java:30) [SEVERE] at sun.reflect.GeneratedMethodAccessor464.invoke(Unknown Source) [SEVERE] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [SEVERE] at java.lang.reflect.Method.invoke(Unknown Source) [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) [SEVERE] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [SEVERE] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459) [SEVERE] at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:786) [SEVERE] at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:764) [SEVERE] at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:33) [SEVERE] at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) [SEVERE] at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) [SEVERE] at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) [SEVERE] at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:554) [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452) [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:490) [WARNING] [Ample] SQL exception in query(): [SQLITE_ERROR] SQL error or missing database (unrecognized token: "' LIMIT 1;")
-
View User Profile
-
Send Message
Posted Apr 21, 2012@Dracasis
lol! I should have known it was essentials! I cannot live with out it on my servers.
-
View User Profile
-
Send Message
Posted Apr 21, 2012@matthewl6970
Currently I use Essentials which is part of a larger set. But it allows whisper functionality :)
http://dev.bukkit.org/server-mods/essentials/
-
View User Profile
-
Send Message
Posted Apr 19, 2012@TheFluffey
I did attempt to make it look through the message but it caused to much spam that was not even related to the question. As for caps in questions it should not be a issue when it pulls the question from the database. Unless you uncovered glitch in the plugin. I will promote this to a ticket
-
View User Profile
-
Send Message
Posted Apr 19, 2012@Davyhalliday
@Davyhalliday
you can adjust the Anti-abuse settings and restrict access using the -ample.invoke permission to higher ranked users that already know the answers to the questions. In 1.2 I will guarantee expanding the bot include spamming in general
-
View User Profile
-
Send Message
Posted Apr 19, 2012@matthewl6970
Can you make it case-insensitive and also make it so that if that phrase is said in any part of the sentence it triggers a response? It is annoying when someone types: Can I be op and it doesn't trigger because they need a question mark.
Make it so that I could say Can I be op (The defined question) can I be op? hey john can i be op?
Anywhere where the phrase is mentioned triggers it.