AmkMcAuth
Update:
16-03-2022: AmkMcAuth-v1.5.3 version is out and available for download. If this version is not available on bukkit.org (due to some "technical difficulty" on bukkit.org), you can download it from: https://www.spigotmc.org/resources/amkmcauth.90252/ (Like other plugins).
This version is tested and running on a MC 1.18+ Spigot servers.
This plugin also protects (to some extend, its not a replacement for whitelist) your server against the "Operation Copenheimer" bots/griefers as it adds an extra login/password layer on your server so the bots mark your server as "protected" and not as "open".
See ChangeLog for information on Changes in this version.
Quick info.
AmkMcAuth is Minecraft Vs. 1.15+ , 1.16+, 1.17+, 1.18+, 1.19+ (and 1.20) ready. Works out of the box!
Preface:
AmkMcAuth (Big-Server edition) is a fork/continued RoyalAuth plugin (developed by jkcclemens). Jkcclemens was not updating his plugin and it stopped working at MC-Version 1.9+.
So i took the original sourcecode from jkcclemens and i fixed all the errors that occurred using it on MC 1.9+ servers creating a new version that i named AmkMcAuth.
But, all the credits go to jkcclemens who is the original creator of RoyalAuth i am using as the base for this plugin.
AmkMcAuth is an authentication plugin. It requires players to register their account with a password and use that password to login, adding another layer of security to any server. (If you are using email registration: the player has to register his email address after wich AmkMcAuth sends a random password to that email address so the player can login using that password, and possibly change it afterwards).
You can see it in action (and try it if you like) on my private AmkSoft Linux MineCraftServer
What options has the AmkMcAuth plugin.
This, the "Big-Server" version of AmkMcAuth, contains Email-Registration and MySQL support (larger plugin filesize). The AmkMcAuth(se) (Small-Server) Edition does not have MySQL Support and Email-registration (and the plugin file-size is much smaller).
So, if you have a small server or have a small playerbase then you can use the AmkMcAuth(se) version.
If you have a big server and/or you need MySQL support or Email registration, than you need this "Big-Server" version.
See the config.yml AmkMcAuth config.yml file in the Pages section. This file also has all the options documented.
First-time Install+Setup:
Just drop the plugin in your plugins folder and (re)start the server.
AmkMcAuth works default "out of the box", no special configuration needed, meaning: your players need to register a password (first time) and log in using that password.
Using the Admin commands you can manualy manage players.
Upgrading existing Setup:
You can just drop the plugin in your plugins folder and (re)start the server, but you have te check your existing config.yml and lang/en_us.properties files as there may be missing some entries (check the pages section for details) and you probably have to restart your server when you did some updates to those files.
As of version1.4.3 AmkMcAuth updates your config.yml in place if it finds missing config settings after backing up your previous config.yml file (this removes the comment lines from the config file).
If you are updating to an older version (pre 1.4.3) you have to rename your config.yml manualy, start the server and merge the old and new config.yml files.
Setup MySQL connection:
See the MySQL-SetUp file in the Pages section.
Commands and Permissions:
See the Commands and Permissons files in the Pages section.
Other Language Files:
Language files can be downloaded from the "Pages/lang" section.
SourceCode and Downloads:
The sourcecode can be viewed on github
Metrics:
AmkMcAuth uses bstats.org for collecting anonymous plugin stats:
- Total number of Servers running this plugin
- Total numer of players playing on servers
- Server Online/offline mode
- Mincraft server version
- Plugin version
- Server Core count
- System architecture
- Operating system
- Server location (country)
- Installed Java version
- AmkMcAuth Registered player count%100
- Plugin usage (Options used)
Notes on using AmkMcAuth e-mail:
This plugin uses the SMTP java library written by GermanCoding due its small size.
But, you cannot just use every mailserver, it has to be a SSL/TLS mailsever, like gmail.com .
Review/Usage:
If you see something weird to happen or you want something added, please let me know so i can help you. Also: if you use this plugin, please let me know and leave a 'like', much appreciated. You might even send me some buck's (Donate) so i can enjoy a coffee while updating this plugin :D .
Who donated to me: thank you. I appriciate it. The coffee tasted great.
In reply to Forge_User_55966263:
Hello GramerForever69,
if someone already register with the name TrollBot someone else can also register with the name TrOllBot which that can causes exploits and bugs
Yes, you are right. Bukkit (or PermissionX) does not see the difference between TrollBot and TrOllBot. You were so right, how could i ever miss that. AmkMcAuth sees the difference as AmkAuth uses different profiles.
I will try to fix this in the next Release so it is no longer possible to register the same UserId using different lowercae/uppercaste characters.
You are a good tester. I hope you find more "bugs" like this, it will only become more secure. Thankl you for telling it.
Are you willing to test the next Release if the "findings" are fixed?
In reply to Forge_User_92118576:
If you are using my Plugin, plz. leave a 'Like'
Was RoyalAuth user. TY for updaten this easy to use plugin.
Thank you
Love this plugin 5 stars! It solved my problem, I coundlnt find a good auth plugin! :)
Thank you
Very nice plugin, but I just have 1 problem with it. I can't figure out how to make it so that it saves all the registered players in a file. Right now every time I close the server, everyone has to register again in order to play the game. Otherwise it's really nice and well done plugin.
Hi Wabbit4real,
Thank you (i did not really write this plugin, i just rewrote some parts that failed to run on a MC 9+ server),
Sorry for the late respons, but concerning your question: this happens to me if the userid that is running the mincraft server has no rights in the the <McServerDir>/plugins/AmkMcAuth/userdata directory.
Can you check to see if your minecraft userid has the rights te write in that directory?
Lets asume your minecraft server is running under userid: mcuser.
if you issue this command:
ls -l <McServerDir>/plugins/AmkMcAuth
you should see something like:
-rw-rw-r-- mcuser mcuser xxxx date time config.yml
drwxrw-r-- mcuser mcuser xxxx date time lang
drwxrw-r-- mcuser mcuser xxxx date time userdata
if you issue this command:
ls -l <McServerDir>/plugins/AmkMcAuth/userdata
you should see something like:
-rw-rw-r-- mcuser mcuser xxxx date time uuid-1xxx-xxxxx-xxxxx.yml
-rw-rw-r-- mcuser mcuser xxxx date time uuid-etc2-xxxxx-xxxxx.yml
-rw-rw-r-- mcuser mcuser xxxx date time uuid-etc3-xxxxx-xxxxx.yml
Every player get a yml file with his uuid as the filename.
If then MincraftServer UserId has no write rights it cannot update the User profile Files, so after a server restart the user profile files are not there anymore (while the server is running it keeps the data in memory, saving them every like 10 minutes (see config.yml)
Ik hope i could help you.
if you still have problems, plz let me know..
Hi,
i even don't know what a maven repository is, so i think i don't provide a maven repository.
I first have te figure out how to use Github. The source btw. is available/downloadable at my server, it may take some time to put it on Github.
I think you are asking this so you can add AmkMcAuth support to your FastLogin Plugin (I read a comment about that on the RoyalAuth page asking the same question).
I'm just keeping this plugin "alive", i'm not a Java programmer, but i know how to program :D (40 years programming experience in several programming languages except Java).
Can i help you in any other way with your support, like i add an API for you (and how do i do that?).
Yeah an API would be nice like
forceLogin(Player player)
forceRegister(Player player, String password)
boolean isRegistered(UUID crackedUUID)
or alternatively
boolean isRegistered(String playerName)
BTW: Nice Javadoc comments if you're beginner ;)
Hi games647,
I sounds interesting, but how do i make the API's so you can "talk" to it?
What the API's should do is niot the problem, becaus these functions are already in the code, but probably they are not public sou you cannot acces them.
I can make a function like "forceLogin(Player player)" (and link it to the "Login" command code that is already in the code), but where do i put the "forceLogin()" so you can "see" them from the "outside"?
I know very little of Java, can you give me some hints on what is the best practice plz.?
Btw. "JavaDoc comments?", i'm not aware of that i did put JavaDoc comment in the code. My Eclips tells me there are no JavaDoc comments in the code, lol. If there are, then jkcclemens did put them in.
Grtz.
martie
Basically you make them public in a accessible component for example the main class.
Hi games647,
I have uploaded a new version of AmkMcAuth.
It contains 3 extra functions in the mainclass:
public boolean isRegistered(String player)
public void forceRegister(String player, String Password)
public void forceLogin(String player)
I have not tested it if it is working, but Eclipse is not complaining lol.
Can you give it a try to see if it is working as you expect?
Grtz.
Martie
Do you have any plans on providing the Source Code on Github and providing a maven repository?