Bukkit MySQL-Reader
General:
This plugin reads commands from a MySQL database and performs them with operating rights to the console.
Features:
- Automated extraction of commands from a table
- Login data configurable
- Interval: Configurable (defined in minutes)
- Query on the port which is defined in config (by default, it is 3306)
- Deleting commands from the table after execution if you want to
Installation and configuration:
To install the plugin you just have to specify the login data to the MySQL server in the plugin's configuration file which is found in "plugins/MySQL-Reader/config.yml". After that, you have to reload your server. Now, create a column with that name you have specified in the configuration file. This column has to contain items of the SQL type "VARCHAR". Now, just enter your commands and have fun :D
Upcoming Features:
- Ingame commands to add and remove tasks
- Ingame commands to change the configuration
Known Bugs:
No bugs are actually known! Feel free to report some!
Changelog:
1.0:
- Initial release
2.0:
- Added configuration option for interval in minutes
- Added adjustable column name
- Added adjustable port
- Renamed some classes
- Added description to the plugin.yml file
3.0:
- Added configuration option for using the commands just once
- Fixed connection not closing properly
Sample config:
Config: server: localhost table: bukkit database: bukkit user: root password: password port: 3306 column_name: commands interval: 5 singleuse: false
Hi! I don't know why, when I run the server on my own computer, and I use XAMPP to database, it works. But when I upload to a hosting and I sign up to a mysql hosting...
Does'nt there exist a MySQL-writer?
i really like your plugin but can you please add that there didnt appear a message when it runs a task
I've brought out an update which should be approved soon. It's fixed in it.
This is cool plugin, but I have a problem: plugin don't remove a string from database after using a command. I tested with parameter "singleuse: false" and "singleuse: true". P.S. In my DB was a table with 3 columns, but after I made 1 column and got the same result: a string was not removed from DB...
12:23:27 [INFO] [MySQL-Reader] Running the task! Execution number: 2
12:23:27 [SEVERE] [MySQL-Reader] CAN'T EXECUTE QUERY! ERROR:
12:23:27 [SEVERE] com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Tab
le 'bukkit.bukkit' doesn't exist
12:23:27 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance
0(Native Method)
12:23:27 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance
(Unknown Source)
12:23:27 [SEVERE] at sun.reflect.DelegatingConstructorAccessorImpl.newInst
ance(Unknown Source)
12:23:27 [SEVERE] at java.lang.reflect.Constructor.newInstance(Unknown Sou
rce)
12:23:27 [SEVERE] at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
12:23:27 [SEVERE] at com.mysql.jdbc.Util.getInstance(Util.java:382)
12:23:27 [SEVERE] at com.mysql.jdbc.SQLError.createSQLException(SQLError.j
ava:1052)
12:23:27 [SEVERE] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:
3593)
12:23:27 [SEVERE] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:
3525)
12:23:27 [SEVERE] at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
12:23:27 [SEVERE] at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:21
40)
12:23:27 [SEVERE] at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.
java:2620)
12:23:27 [SEVERE] at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.
java:2570)
12:23:27 [SEVERE] at com.mysql.jdbc.StatementImpl.executeQuery(StatementIm
pl.java:1474)
12:23:27 [SEVERE] at de.mrpixeldream.mysqlreader.SQLConnector.query(SQLCon
nector.java:187)
12:23:27 [SEVERE] at de.mrpixeldream.mysqlreader.ExecutorTask.run(Executor
Task.java:67)
12:23:27 [SEVERE] at org.bukkit.craftbukkit.v1_4_6.scheduler.CraftTask.run
(CraftTask.java:53)
12:23:27 [SEVERE] at org.bukkit.craftbukkit.v1_4_6.scheduler.CraftSchedule
r.mainThreadHeartbeat(CraftScheduler.java:345)
12:23:27 [SEVERE] at net.minecraft.server.v1_4_6.MinecraftServer.r(Minecra
ftServer.java:530)
12:23:27 [SEVERE] at net.minecraft.server.v1_4_6.DedicatedServer.r(Dedicat
edServer.java:224)
12:23:27 [SEVERE] at net.minecraft.server.v1_4_6.MinecraftServer.q(Minecra
ftServer.java:494)
12:23:27 [SEVERE] at net.minecraft.server.v1_4_6.MinecraftServer.run(Minec
raftServer.java:427)
12:23:27 [SEVERE] at net.minecraft.server.v1_4_6.ThreadServerApplication.r
un(SourceFile:849)
12:23:27 [SEVERE] [MySQL-Reader] FEHLER IN DER MYSQL-KLASSE!
I'm working on it by now. Thanks for the report! Should be fixed in about one week.
Heya bud! Having an issue trying to get the reader to even connect to my database. Here's the stack trace:
After doing some searching, it looks like you're trying to use executeQuery when you should be using executeUpdate. I'm not savvy in that field; that's just what I read.
Anyhow, any chance you could get an update going? We have a Minecraft community that uses this and we're in need of a fix! :D
Thanks bud.
I closed the connection before the plugin had finished the task. Update is out, sorry for that.
Also can you please add a posibility to set interval in seconds?
Doesn't work for me. Any thoughts?
Working on it. I thought that I maybe should add an configuration option to only execute the commands once. But you can put more than one command in you database.
Can you make it so that it doesn't execute the same command, only when it changes?
Hello, I really need a bukit plugin so I want to pay for it. This plugin looks alot like it, maybe you can make it! Please look at this video for more information http://www.youtube.com/watch?v=kNllPaLsbCY Thanks, Koen
To you first remark: It was my goal to let the server repeat them but i'll add a configuration option to change this. Second thing: that's strange. I'll check this and make an update if possible!
Thank you!
Also I think their may be an issue with the connections closing properly. AFter running this plugin overnight my mysql server hit the max open connections threshold and nothing more could connect to my database. This is the only time this has ever happened on our server.
Could you add an option to mark a command as completed in some way. Either have it delete that row in the table or add another column that flags it as completed. The server just keeps running the same commands over and over. Or am I missing something?
It should work for it. If not, please let me know the exception which occurred.
Update pls 1.4.4
Next version released and approved! Have fun and suggest some features if you like to!