Ample Chat Bot
View the documentation
View the source code on Github
Download the latest version on Github
Report issues and request features on Github
Aid in translating this project to your language on Crowdin
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
@Nomadadon
hi! this could have been a support ticket but it is the quotes in the answer command that is not needs.
>answer 2 "%player probably not"
12:53:34 [SEVERE] com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'probably not"" WHERE id = '2'' at line 1
12:53:34 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
12:53:34 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
12:53:34 [SEVERE] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
12:53:34 [SEVERE] at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
12:53:34 [SEVERE] at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
12:53:34 [SEVERE] at com.mysql.jdbc.Util.getInstance(Util.java:382)
12:53:34 [SEVERE] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
12:53:34 [SEVERE] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
12:53:34 [SEVERE] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
12:53:34 [SEVERE] at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
12:53:34 [SEVERE] at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
12:53:34 [SEVERE] at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
12:53:34 [SEVERE] at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1662)
12:53:34 [SEVERE] at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1748)
12:53:34 [SEVERE] at org.jaggy.bukkit.ample.db.MYSQL.query(MYSQL.java:113)
12:53:34 [SEVERE] at org.jaggy.bukkit.ample.cmds.CmdAnswer.setAnswer(CmdAnswer.java:103)
12:53:34 [SEVERE] at org.jaggy.bukkit.ample.cmds.CmdAnswer.onCommand(CmdAnswer.java:81)
12:53:34 [SEVERE] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
12:53:34 [SEVERE] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:186)
12:53:34 [SEVERE] at org.bukkit.craftbukkit.v1_4_6.CraftServer.dispatchCommand(CraftServer.java:514)
12:53:34 [SEVERE] at org.bukkit.craftbukkit.v1_4_6.CraftServer.dispatchServerCommand(CraftServer.java:506)
12:53:34 [SEVERE] at net.minecraft.server.v1_4_6.DedicatedServer.al(DedicatedServer.java:260)
12:53:34 [SEVERE] at net.minecraft.server.v1_4_6.DedicatedServer.r(DedicatedServer.java:225)
12:53:34 [SEVERE] at net.minecraft.server.v1_4_6.MinecraftServer.q(MinecraftServer.java:494)
12:53:34 [SEVERE] at net.minecraft.server.v1_4_6.MinecraftServer.run(MinecraftServer.java:427)
12:53:34 [SEVERE] at net.minecraft.server.v1_4_6.ThreadServerApplication.run(SourceFile:849)
12:53:34 [WARNING] [Ample] Error in SQL query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'probably not"" WHERE id = '2'' at line 1
12:53:34 [INFO] [Ample] Answer was set!
@VergilPrime
what is the error?
Seems to spam the console nonstop with messages reguardless of whether anyone is invoking them.
@XeonG8 k.
php admin console would be great.
pls do, I really like the plugin, but I hate ingame commands for stuff like this, minecraft command line is not the kind of text editor I want it to be.. its just frustrating, and not easy to work with stuff like this... when a text editor and just being able to see all questions and answers and link them or add, edit much quicker.
I can see the qlist growing etc.. so a php panel like that would be good, I'll change it to mysql next restart I think.
also want to be able to make much longer responses and commands.. it doesn't fit in one line so that's why being able to edit this stuff out of game is much easier.
Another thing I wouldn't mind being able to have is a separate bot, that I can specify to answer certain questions, maybe even have the two bots openly have a conversion about what to do with a player :D
"it does have a have the ability to detect people that have repeated the question in a time frame."
/question <admin name>
/answer (first response) <admin name> is away (2nd (answered by <diff botname>)) ..just ask your question maybe someone else can help you. (3rd) if you keep asking, you will get muted. (4th if its the same person who asked in a time frame of 5mins) cmd: mute 5mins
like something like that would be good
And for a specific question /question Where is <insert admin name> (wait=5s for <adminname> to respond>)
@XeonG8
btw, I thought of doing php admin console to also.
@XeonG8
hrm on different responses idea! it does have a have the ability to detect people that have repeated the question in a time frame. the SQLite can only update when the plugin is not load since SQLite locks updates while the bot is loaded. The changes in the databases is instant there is no reloading needed.
Needs some way of the bot counting if the same player (or even other players) have asked same question in a certain time period, that way the response can be different if the player(s) have triggered the same question like 3times in the space of 1min etc
If I edited the db, or switched to mysql and used phpmyadmin to edit things.. does it check if things have been updated or does it need some reload command?
I'm tempted to switch to mysql, and build some page where players can submit questions and answers for the bot to use and I'll just approve them.
@XeonG8
That would be cool for an RPG or Adventure server where the bot sets the story interactively!
or just another one... if someone asks a question, and the answer has a timer, where if no one on a certain player list responds at all in public chat within that time, then the bot answers, if someone on that list does answer in that time then the bot can have a different answer or none.
Just stuff like that would be cool.
@XeonG8
Thanks!
Would be nice if this had more of the Skript plugins like features, like if I wanted to make a question that would only be answered dependant on other factors like if the player asking had a certain perm, or if they were in a certain perm group, or if the answer required that a certain player was afk or there were no staff online etc.
As a basic auto responder for things its fine, but it would be cool if was possible to do much more advanced stuff more easily.
I know how to edit the sql db file.. when I find some free software to do it with, just can't be bothered, its not a very convenient setup having to do it that way.
Just be better if some other flatfile option were available, as its easier to edit say .yml file with notepad, save, then reload plugin config if the plugin had a command for it.
@XeonG8
SQLite Databases is accessible with a SQLite program capable of understanding the file format and is not much different then MySQL that is why I have added both of them. Thanks for your suggestions!
Couldn't another flatfile format be provided , one that is more easily editable than sql or using mysql... I mean i'm temped to use mysql just as it is more easier to edit that, however it would remote.
and plugin reload command added
would be much easier to just make and edit questions answers than in game.
Outside of that just more advanced features for the bot to do things. Some sort of regex feature would be useful for questions.
@Socoolluke
You could play with the allowable setting in config.yml to adjust how it responds or do an responds for the things you do not want it to respond to. As example I would do a question for 'Where is pvp?' with an answer of 'none' and it will not respond to that question.
Awesome plugin, it became an instant hit on my server.
Awesome helping tool if configured properly! Now I don't have to answer questions such as "Where is creative" or "How do I go to the battlefield". VERY very very useful.
I love the way the bot is able to interpret stuff and even if it is wrong sometimes, it still makes it really funny to be answered when you speak to a bot. My younger players seems to be confused and really expect an answer from Arcbot (the name of our bot). They are upset when Arcbot is not replying. Priceless fun!
It is also a great way to test lag! By the time it takes for your bot to answer, you can see it your server is lagging or not quite efficiently.
One of my all-time favorite plugins. No error or bug so far for me. I will definitely keep this plugin for as long as it is working fine!
For those who wish to test the plugin, you can join my server and try these lines:
"arcbot" "greetings" "how do I get to my plot" "can I be OP"
and much more.
[GOMC] 69.160.47.8 cracked and premium accepted.
Whenever users type 'Where is he?' it thinks they said 'Where is pvp?' so it answers it, adding some sort of like allowed list so you could just add questions to the allowed list that don't get picked up by the answer, also adding some sort of plugin reload would be useful too.
@AlexM850
uploaded. the MonsterIRC integration might be touchy.