GrimList
GrimList - A better approach to whitelisting!
For now, the only valid focus is saving to YAML and MySQL. SQLite, and URL support will be added back when I've done further bug-testing.Connects to Mojang Servers for UUID lookups!
Requires JDBC for MySQL connections!
Built Against: 1.7.9-R0.1 (Build #01936)
Compatible With: 1.7.9-R0.1
It's been reported that versions before 3.1.5 are not compatible with the newest beta build of Bukkit.
This has not been confirmed, or reproducible. However, the newest update (3.1.5) has been built against this build, and should solve any potential issues.
GrimList is a whitelisting program for Bukkit, designed with ease of use in mind. It allows you to manage your server in a variety of ways, ranging from a remote file to a sqlite database. Once you configure (or dont!) management of your server's whitelist becomes so simple, you almost forget it's a complicated plugin, under the hood. Choosing to add or remove players from the whitelist is just scratching the surface!
Used to refreshing your whitelist, after you add or remove a player? Don't worry about it! GrimList handles all of this automatically (and immediately)!
Worried about the upcoming UUID changes? Don't! GrimList is already ahead of the curve, and fully compatible with UUIDs.
Have you heard horror stories about a UUID lookup freezing the server? Ha! GrimList handles any UUID lookup on an alternate thread, leaving your server unaffected!
In short, GrimList is the premier whitelisting plugin. I challenge you to find an easier to use, or better designed solution.
About the YMLs:
config.yml - The config.yml is intended to be streamlined for use!playerdata.yml - Be careful if you want to edit this! I've warned you!
Commands and Permissions!:
Commands - There are more commands than you might think. Take a look!Permission | Function |
---|---|
grimlist.* | Grants all permissions. |
grimlist.mod | Grants permissions to 'add', 'remove', 'view', 'getid', and 'help'. |
grimlist.add | Allows player to add others to the whitelist. |
grimlist.remove | Allows player to remove others from the whitelist. |
grimlist.delete | Allows player to completely delete another player record. |
grimlist.view | Allows a player to view another player's player data. |
grimlist.getid | Allows a player to gather another player's UUID. |
grimlist.set | Allows a player to change configuration in-game. |
grimlist.convert | Allows a player to import or export foci. |
grimlist.help | Allows a player to view the help menu. |
grimlist.update | Shows notification of update on join. |
grimlist.notify | Notifies player on failed join attempt. |
Other Stuff:
Updater - This plugin uses Updater ONLY to notify you of updates. It will NOT download anything. Can be disabled.Metrics - This plugin uses Metrics to log simple metric data, which helps me improve the plugin. Can be disabled.
Source Code - Every program I create is copyright under GPLv3. Hack away!
Thanks To:!
evilmidget38 - Created UUIDFetcher, which this plugin uses.BlackVoidRules - Created Dynamic Effect Whitelist, which inspired this plugin.
For those still interested in this plugin, I _am currently_ working on updating this.
If you want to track progress, please bookmark this issue on GitHub.
This advanced and no option to set the whitelist message?
Can we get an option for a custom whitelist/denial message please?
I've found a bug, if you use MySQL and have a password, the plugin won't use the password. I've fixed this bug and it works like a charm now. The file is exactly the same file as v3.1.6.
All credit goes to FerusGrim, and I will delete this file if it becomes obsolete: https:www.dropbox.com/s/tao1ewzps8n49um/GrimListMySQL.jar
Note: There can be more bugs, so use my file at your own risk!
Hi. Is there a way to convert to grimlist from standard whitelist json?
When will the new update come? I can't connect to databases with this. I have tried different databases and different game hosts. I can't get it to work. I always get this: WARN com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
@DonGrif
New version coming soon which should fix any and all issues.
Hello? Can you look at my pastebin in my latest post?
@FerusGrim
http://pastebin.com/kyRhKJH4
@DonGrif
The difference between the port and password, being that one of them is an int, and another a String. ints (the port), do not require ' 's.
As far as JDBC goes, no. It's not a plugin. It's something your server host would have to install onto the server (which most do).
Though, it appears as though your server host has already done this. If it was a problem with JDBC, it would not have reached the stage where you were denied access. You would have encountered an error related to JDBC, first.
Go ahead and pastebin your config.yml.
"Requires JDBC for MySQL connections!"
Isn't this build into Bukkit? Or do I have to install some other plugin too?
@FerusGrim
But all the settings in the config file are correct. Do I use ' when typing it? Like 'password'. You have done that on the config.yml page here. But not on the port?
@DonGrif
The plugin is functioning just fine. The stacktrace is reporting that you're being denied access to the server. This is usually due to an invalid username and password.
Check your config.yml.
I get this error message in the console:
09:20:32 CONSOLE: WARN]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 09:20:32 CONSOLE: WARN]: at java.lang.reflect.Constructor.newInstance(Unknown Source) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.Util.handleNewInstance(Util.java:407) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.Util.getInstance(Util.java:382) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2239) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2168) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) 09:20:32 CONSOLE: WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 09:20:32 CONSOLE: WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 09:20:32 CONSOLE: WARN]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 09:20:32 CONSOLE: WARN]: at java.lang.reflect.Constructor.newInstance(Unknown Source) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.Util.handleNewInstance(Util.java:407) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:378) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305) 09:20:32 CONSOLE: WARN]: at java.sql.DriverManager.getConnection(Unknown Source) 09:20:32 CONSOLE: WARN]: at java.sql.DriverManager.getConnection(Unknown Source) 09:20:32 CONSOLE: WARN]: at net.caelumcraft.GrimList.FocusManagers.MySQLManager.sqlConnection(MySQLManager.java:39) 09:20:32 CONSOLE: WARN]: at net.caelumcraft.GrimList.FocusManagers.MySQLManager.setupPlayerDataTable(MySQLManager.java:51) 09:20:32 CONSOLE: WARN]: at net.caelumcraft.GrimList.FocusManagers.MySQLManager.<init>(MySQLManager.java:26) 09:20:32 CONSOLE: WARN]: at net.caelumcraft.GrimList.GrimList.updateFocus(GrimList.java:70) 09:20:32 CONSOLE: WARN]: at net.caelumcraft.GrimList.GrimList.onEnable(GrimList.java:42) 09:20:32 CONSOLE: WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:316) 09:20:32 CONSOLE: WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:324) 09:20:32 CONSOLE: WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:404) 09:20:32 CONSOLE: WARN]: at org.bukkit.craftbukkit.v1_7_R3.CraftServer.loadPlugin(CraftServer.java:446) 09:20:32 CONSOLE: WARN]: at org.bukkit.craftbukkit.v1_7_R3.CraftServer.enablePlugins(CraftServer.java:380) 09:20:32 CONSOLE: WARN]: at net.minecraft.server.v1_7_R3.MinecraftServer.n(MinecraftServer.java:352) 09:20:32 CONSOLE: WARN]: at net.minecraft.server.v1_7_R3.MinecraftServer.g(MinecraftServer.java:326) 09:20:32 CONSOLE: WARN]: at net.minecraft.server.v1_7_R3.MinecraftServer.a(MinecraftServer.java:282) 09:20:32 CONSOLE: WARN]: at net.minecraft.server.v1_7_R3.DedicatedServer.init(DedicatedServer.java:182) 09:20:32 CONSOLE: WARN]: at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:436) 09:20:32 CONSOLE: WARN]: at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) 09:20:32 CONSOLE: WARN]: Caused by: java.sql.SQLException: Access denied for user '93042'@'46.253.196.80' (using password: NO) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:931) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4031) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1296) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2338) 09:20:32 CONSOLE: WARN]: at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2186) 09:20:32 CONSOLE: WARN]: ... 28 more 09:20:32 CONSOLE: ERROR]: Error occurred while enabling GrimList v3.1.6 (Is it up to date?)
@I_IblackI_I
Yes. I'll have that feature automatically available in the plugin. When it's available, I'll post the information on this page.
As far as the 1.7 downloads, I have two. They're both currently being reviewed for release. I would recommend holding off on getting 3.0.1, as 3.0.2 will be coming out directly afterwards, and contains quite a few important updates.
@FerusGrim
When saving to file now. Will it be able to automatically port it to a MySQL database when that is available?
Also where can i find the 1.7 downloads?
@DonGrif
Yes, it shouldn't be too difficult. When I finish recoding the MySQL portion of GrimList for the UUID update, I'll probably write a conversion script.
For now, though it may not be optimal, you can use the playerdata.yml option that GrimList comes with, now.
Also, you may have noticed the page has been updated with a lot of information that doesn't apply to the current version. That's because GrimList 3.0.1 has been sent in for review. All the new information on this page will apply to that new version, when it's accepted.
Currently, it only supports the file platform. I'm avidly working on making MySQL, SQLite, and URL support. My main focus being on MySQL, at the moment.
I'm currently using Dynamic Effect Whitelist. Can I easily switch to Grimlist?
@DonGrif
A recode is currently in works, right now, as well as bringing a plethora of new features.
It will be ready by 1.8.
How is this plugin working with the new UUID system?