Minecraft... What an amazing game... Except when the server is down, and when you can't play anymore... Well, this plugin might be a solution! Whenever a player join your server, he won't be allowed to do anything if he didn't log in (using /login command).
It is using a MySQL database, and a personalised encryption process. This way, you can create a website on which people will sign in, and use the very same password to log into your Minecraft server. You can also use this plugin to let people play only if they have an account on your server. That way, you can filter players more efficiently.
- A Column <ColUsername>
- A Column <ColPassword>
- Any other column you want, as soon as you describe it in the encryption formula.
Where ColUsername contains a username, and ColPassword contains an encrypted password.
THE FORMULA THING
As everybody might want to use a different kind of encryption process, my idea was to let you the choice. Here is how it works :
You only have few functions available right now :
- MD5, MD2 => require 1 parameter
- SHA1, SHA256, SHA384, SHA512 => require 1 parameter
- CONCAT => require 2 or more parameters
- DB => require 1 parameter
- PASS => don't require any parameter
Each function will return a String, so you can combine them together. Here are few examples :
- MD5(PASS()) => will return a MD5 hash of the password given by the player.
- MD5(CONCAT("salt",PASS())) => will concatenate the given password with the String "salt", and create a MD5 hash of the result
- SHA1(CONCAT(PASS(),MD5(DB("username")))) => will create a MD5 hash of the "username" column from the database, concatenate it with the given password, and create a SHA1 hash of the result
- And so on...
The result of this formula will be compared with the content of the <ColPassword> in the database. If it's the same String, then the player is allowed to play.
WARNING : You must be careful and you shouldn't put any space in the formula, except in the String.
- Add SQLite database support;
- Create a default configuration file outside of the archive.
- Add more functions for the hash formula;
- Associate an action on each event (login fail, login success, ...) so that the database can keep a record of it.
- Add a /register for people who don't want to go online (op should be able to activate/deactivate it);
- Add a /valid-request for op, to validate request for an account;
- Add a /forgot-account command;
- Add a /login-enable and a /login-disable command;
- Add a /let-play command to let a player play for a certain amount of time (requires op permissions);
- ... (any suggestions?)
- /login <password> - Will try to log the player in with his pseudo and the given password.
- Download "LoginPlugin.jar" file
- Edit "config.yml" in the LoginPlugin.jar file you've downloaded
- Copy the archive in your "plugins/" folder
- Restart your server
- v0.1 - first release.
- v0.2 - Add algorithm, encryption process. Reorganize code.
I wont be able to keep on working on this project before the end of November. I will release the source code for anyone who would like to re-use it. I'm sorry about that, but be sure I will not let it down. Cheers!
If you have any questions, please ask me! If you have any suppositions, please tell me!