[INACTIVE] AuthMe v0.72 - High Performance Authorization plugin - MySQL/flatfile support[740]

Discussion in 'Inactive/Unsupported Plugins' started by fabe, Jan 22, 2011.

  1. Offline

    fabe

    Hello guys,

    the last days I have made an alternative authorization plugin for Bukkit, called AuthMe.
    AuthMe prevents people, which aren't logged in, from doing stuff like placing blocks, moving, typing commands or seeing the inventory of the current player.
    The possibility to set up name spoof protection kicks players with uncommon long or short playernames before they could actually join.
    Login Sessions make it possible that you don't have to login within a given time period.

    Each command and every setting can be enabled or disabled by a easy structured config file.
    And if you don't prefer English or don't like my translations ;) you can easily edit nearly every message sent by AuthMe!

    Nearly every version gots tested for stability and lag-ness on my 50+ player server.

    In the next coming days I will add some new features, just make some suggestions!

    Features:
    • Following protections are activated, when a player is not logged in:
      • Movement protection
      • Block placement & damage protection
      • Inventory protection
      • Interaction protection (blocks usage of doors, chests)
      • Health protection
      • Commands & chat protection
    • Playername spoof protection
    • Protection against "Logged in from another location" messages
    • Login sessions
    • Editable settings & messages
    • MySQL and flatfile support
    • Custom MySQL tables/columns (useable for forums, other scripts)
    • Two data caches for best performance
    Commands:
    • Player side:
      • /register <password>
      • /login <password> -Alias: /l <password>
      • /logout
      • /changepassword <oldpassword> <newpassword>
      • /unregister <password>
    • Op and Console (without / ) side:
      • /authme reloadconfig
      • /authme reloadcache
      • /authme toggleregs
      • /authme deleteauth <playername>
    Installation:
    1. Download it.
    2. Put the downloaded jar file into your /plugins folder
    3. Run the server to generate configs.
    4. Edit the config on any way you wish.
    5. Following datasources are possible: flatfile or mysql
    6. Restart the server.
    7. If you have choosen MySQL as datasource, your table will be generated automatically, if it doesn't exist yet
    8. Done!
    Version History:

    0.72
    o Fixed issues occuring on CB #670
    o Added /logout command
    o Added the possibility to disable joining of players that aren't registered

    0.71
    o Cleaned up player cache code (performance!)
    o Changed the way of fixing the continuous player falling
    o Fixed BlockIgnite error messages
    o Fixed door/chest protection
    o It's now impossible to register/update/remove an account when updating the datasource had failed
    o Added editable messages
    o Default colors of messages are now stored in message file and can easily be changed

    Older versions (open)

    0.7
    o Compatibility with CraftBukkit version 602
    o Op commands are now included in a general /authme command
    o Possibility to reload config under runtime
    o Fixed errors on reloading the plugin
    o Prevention against "Logged in from another location" messages
    o Fixed NullPointerException Errors
    o Possibility to add NPC names to config (to add compatibilty with NPC plugins)
    o Registrations can now be toggled by Ops
    o More debug messages on MySQL errors
    o Player sessions will now be created on player disconnect
    o Possibility to allow commands for non-registered/non-loggedin players
    o Custom fields on /register when using MySQL as datasource e.g. E-Mail
    o Kick player after x seconds, if he is not logged in
    o Op-Commands are now accessable via console
    o Commented config
    o Fixed players stuck in blocks on join
    o A lot more minor bug fixes
    0.61
    o Fixed MySQL loading users wrongly and making them unregistered
    o Fixed continuously falling players on non-authenticated state
    0.6
    o Whole new cache system for online players and offline players (performance boost!)
    o New datasource: MySQL support (beta)
    o MySQL can use custom tables, colums
    o Log messages on command/login/registration/session-login
    o Non-authenticated player can't use doors, chests or get drops
    o Fixed surviving bug
    o Fixed player health protection
    o Alias for /login command: /l <password>
    o Settable interval between alerts
    o Settable kick on wrong password
    o Settings for unregistered players (allow chat, allow walk around spawn)
    o Possibility to disable cache (useful for live-editing the datasource)
    o CraftBukkitUpToDate support (soon!)
    0.5
    o Editable messages
    o Added /changepassword command
    o Added /unregister command
    o Added /resetauth command
    o Added /reloadauths command
    o Added option to disable forced registration
    0.42pre (unreleased)
    o Login/Register commands don't show up on console anymore
    o Waaay better performance with 50+ players online
    o Login sessions
    o Config settings
    0.41pre
    o Fixed incompatibility with plugins that use the onPlayerMove Event
    o Better performance
    0.40pre
    o Location of auth.db has changed
    o New Authentication Cache (Maybe fixes memory issues)
    o Fixed possible missing inventories after server restarts
    0.3
    o Compatibility with newer Bukkit versions
    o Fixed possible item duplication bug
    o Fixed command protection
    0.2
    o Fixed some error messages, when a player is leaving
    0.1
    o Release



    If you like my plugin and want support my work, fell free to donate. Thanks.
    [​IMG]

    Download AuthMe V0.72
    Help developing AuthMe via GitHub
     
    Fuppiz, tombik, sbeex and 6 others like this.
  2. Offline

    Phinary

    So if I want to link it with a login and register system on a website I need to code it so it enceypts the passwords as md5 and decrypts them as md5?
     
  3. Offline

    Hayfever

    correct, php is easiest as theres a function for md5 en/decode
     
  4. Offline

    Phinary

    Thanks! 1 last thing. What happens if the MySQL server crashes?
     
  5. Offline

    Hayfever

    you smartly restore with backups youve made, of course. Obviously, you wont have AuthMe MySQL abilities, you can export your DB regularly to the flatfile and keep it handy.
     
  6. Offline

    Penorzilla

    Having an issue with your plugin using MySQL. I am using CB 544.

    It seems after someone registers and the server restarts it will randomly (instead of using the information for a user that is already in the table) it will make them re-register.

    So basically PlayerOne logged in for the first time and did /register <password>

    MySQL table authme: ID:1 - PlayerOne - Special encrypted password

    Server restarts.

    PlayerOne logs back on and it makes him do /login <password>

    PlayerTwo logs in for the first time and does /register <password>

    MySQL table authme: ID:1 - PlayerOne - Special encrypted password
    ID:2 - PlayerTwo - Special encrypted password

    Server restarts.

    PlayerOne Logs on and it makes him do /register <password> for some reason.

    PlayerTwo logs on and it makes him do /login <password>.

    MySQL table authme: ID:1 - PlayerOne - Special encrypted password
    ID:2 - PlayerTwo - Special encrypted password
    ID:3 - PlayerOne - Special encrypted password

    So for some reason it is ignoring the fact that there is already a PlayerOne and is creating a new ID in the table for them.

    I had this happen to me on 3 different servers.

    My config.yml is as followed:
    Code:
    MySQL:
        Custom:
            ColumnUsername: admin
            TableName: authme
            ColumnPassword: *********
        Connection:
            Port: 3306
            Host: 192.168.1.2
            Database: adminauth
            Password: ***********
            Username: admin
    DataController:
        CacheEnabled: true
    Misc:
        Datasource: mysql
        ForceRegistration: true
        KickOnWrongPassword: true
        AllowUnregistered:
            Chat: false
            WalkAroundSpawn:
                Enabled: false
                Radius: 1
        AlertInterval: 5
    PlayerNameRestriction:
        PlayerNameMaxLength: 20
        PlayerNameMinLength: 2
        PlayerNameRegex: '[a-zA-Z0-9_?]*'
    LoginSessions:
        Enabled: false
        MaximalTimePeriod: 0
        IPCheckEnabled: true
    Commands:
        Users:
            ChangePasswordEnabled: true
            RegisterEnabled: true
            UnregisterEnabled: true
            LoginEnabled: true
        Ops:
            ReloadAuthsEnabled: true
            ResetAuthEnabled: true
    
     
  7. Offline

    fabe

    This issue is now fixed in 0.61!
    This feature is already included since 0.6.
    That's now on my list for future features.
    Yes, it uses MD5 as password encryption and it also should block Op commands.

    Thanks for your detailed bug report. The issue is now fixed in version 0.61.
     
  8. Offline

    Hayfever

    Sure is! Works perfect now, thank you. This is exactly what I needed.
     
  9. Offline

    matejdro

    Any chance of importing existing passwords from AuthCraft?
     
  10. Offline

    fabe

    Sure, just copy & paste the auth.db to the AuthMe folder.
     
  11. Offline

    Jm Erestain

    ... rapidshare and megaupload are one of the most annoying filehosting websites...
     
  12. Offline

    Penorzilla

    Thankx for fixing that bug!

    I could host your files as a mirror if your clients are complaining about rapidshare/megaupload.

    Just shoot me an e-mail or PM me. [email protected]
     
  13. Offline

    UnderdogMac

    hi, i really like your plugin, its just what i needed but they are right, it have lots of bugs and need to be updated, im running bukkit 530

    I obtain errors in my console about unlogged people that can move and talk through the chat (and the console its right).

    i reinstalled the plugin and the moving intruders problem was fixed, but no luck about the chat (im ussing hero chat i think thats the problem)

    btw unlogged people can edit the map

    ******IMPORTANT******
    i cannot reload the config file with the server up, the command /reloadauths isnt working, im op, i have all the permissions (im using permissions, but authme and permissions dont look like they are colliding to me, they work right) and it would be great apply that command from the console, can you fix it?
     
  14. Offline

    fabe

    I can't see the problem, I don't host the plugin on Rapidshare since 0.6 but on my own server... But thanks for your offer.
    Please try a stable Craftbukkit version, like 531. Looks like other plugins causing errors that enable chating and moving.
    The /reloadauths command reloads the registered player of the datasource into the datacache of AuthMe, but doesn't actually reload the config.
     
  15. Offline

    snatch182

    Hmm, I find out with bug, im not sure if it's from authme but I think so.

    Well, when you use any tool as example "wooden axe" and it broke (dissapear) than if you make relog it appears again fully fixed.

    Can someone confirm this bug and help me?
     
  16. Offline

    djrazr

    Console is constantly throwing:

    19:35:04 [SEVERE] Could not pass event PLAYER_MOVE to AuthMe
    java.lang.NullPointerException
    at com.bukkit.fabe.AuthMe.PlayerCache.PlayerCache.isPlayerAuthenticated(PlayerCache.java:59)
    at com.bukkit.fabe.AuthMe.AuthMe.checkAuth(AuthMe.java:426)
    at com.bukkit.fabe.AuthMe.Listener.AuthMePlayerListener.onPlayerMove(AuthMePlayerListener.java:168)
    at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.java:192)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:255)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:124)
    at net.minecraft.server.Packet10Flying.a(SourceFile:126)
    at net.minecraft.server.NetworkManager.a(SourceFile:230)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:76)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:357)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
     
  17. Offline

    fabe

    Can't confirm that this bug is caused by AuthMe. AuthMe restores the inventory after /login that Minecraft saved on logout.
    Please give me more details, like what bukkit version, what playername, and what config you are using.
     
  18. Offline

    djrazr

    git-Bukkit-0.0.0-544-g6c6c30a-b556jnks
    Usernames on the server where clandragon djrazr and raikiriissen.
    Sorry but i dont quite know when this happens... il look at that..

    MySQL:
    Custom:
    ColumnUsername: username
    TableName: authme
    ColumnPassword: password
    Connection:
    Port: 3306
    Host: bamcraft.de
    Database: minecraft
    Password:
    Username:
    DataController:
    CacheEnabled: true
    Misc:
    Datasource: mysql
    ForceRegistration: true
    KickOnWrongPassword: true
    AllowUnregistered:
    Chat: false
    WalkAroundSpawn:
    Enabled: true
    Radius: 20
    AlertInterval: 2500
    PlayerNameRestriction:
    PlayerNameMaxLength: 20
    PlayerNameMinLength: 3
    PlayerNameRegex: '[a-zA-Z0-9_?]*'
    LoginSessions:
    Enabled: false
    MaximalTimePeriod: 300
    IPCheckEnabled: true
    Commands:
    Users:
    ChangePasswordEnabled: true
    RegisterEnabled: true
    UnregisterEnabled: true
    LoginEnabled: true
    Ops:
    ReloadAuthsEnabled: true
    ResetAuthEnabled: true
     
  19. Offline

    UnderdogMac

    hum it would be awesome if i could reload the config file without restart the server, like permissions does.

    anyway, your plugin saved my server :) thanks man
     
  20. Offline

    djrazr

    I am using a plugin fpr Joomla called ExtDB where i can take my AuthMe Username+PW as login data..
    To get this properly to work i also need to set a name, and prename and a email adress to a field in the table authme... Would you add this fields as option to your wonderful plugin!? That would complete my community's feature, and extend ur plugin upon a higher level of possibilities ..
     
  21. Offline

    bakon balázs

    oom.
    can you make two ideas? : >
    1. when you are logged in, another people can't login from another location? or this is not possible?
    2. when any player not log in kick them after x second? :)

    thx.
     
  22. Offline

    Penorzilla

    BTW I just saw someone post about how rapidshare sucks which is why I offered that. I came across an error that doesn't seem to affect much but I hate when errors spam my console.

    Code:
    20:26:19 [SEVERE] Could not pass event ENTITY_DAMAGED to AuthMe
    java.lang.NullPointerException
        at com.bukkit.fabe.AuthMe.PlayerCache.PlayerCache.isPlayerAuthenticated(PlayerCache.java:59)
        at com.bukkit.fabe.AuthMe.AuthMe.checkAuth(AuthMe.java:426)
        at com.bukkit.fabe.AuthMe.Listener.AuthMeEntityListener.onEntityDamage(AuthMeEntityListener.java:30)
        at org.bukkit.plugin.java.JavaPluginLoader$38.execute(JavaPluginLoader.java:356)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:255)
        at net.minecraft.server.EntityArrow.f_(EntityArrow.java:169)
        at net.minecraft.server.World.a(World.java:1017)
        at net.minecraft.server.WorldServer.a(WorldServer.java:53)
        at net.minecraft.server.World.f(World.java:999)
        at net.minecraft.server.World.d(World.java:976)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:354)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    
    I believe I shot someone with an arrow with PVP on. Or maybe it was an NPC from the plugin Citizens.
     
  23. Offline

    dragonhib

     
  24. Offline

    bakon balázs

    "1. when you are logged in, another people can't login from another location? or this is not possible?"

    ok i solved this problem with another plugin :)
    but the two thingsis actually.

    kick the player after x second when not logged in ;)
     
  25. Offline

    fabe

    I will add it to my todo list.
    I thought about that there will be questions about unfilled colums before AuthMe's MySQL support got released. AuthMe can already fill in fields which were defined before. Of course you can't set the real prename or email of the player, but with Phpmyadmin you can set default values for prenames or e-mail adresses, which should be set when a user registers. I'm not planing to add extra parameters for the /register command, maybe e-mail, but not more. I think a player is not interested in writing a whole biography on registration.
    Added this two things on my todo list.
    I will try to fix that on weekend, since this is no serious problem.
     
  26. Offline

    djrazr

    Email would be enought :p
     
  27. Offline

    swedish2011

    Code:
    16:44:32 [ALLVARLIG] Could not pass event PLAYER_MOVE to AuthMe
    java.lang.NullPointerException
            at com.bukkit.fabe.AuthMe.PlayerCache.PlayerCache.isPlayerAuthenticated(
    PlayerCache.java:59)
            at com.bukkit.fabe.AuthMe.AuthMe.checkAuth(AuthMe.java:426)
            at com.bukkit.fabe.AuthMe.Listener.AuthMePlayerListener.onPlayerMove(Aut
    hMePlayerListener.java:168)
            at org.bukkit.plugin.java.JavaPluginLoader$7.execute(JavaPluginLoader.ja
    va:192)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:59)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:255)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:124)
            at net.minecraft.server.Packet10Flying.a(SourceFile:126)
            at net.minecraft.server.NetworkManager.a(SourceFile:230)
            at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:76)
            at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:357)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    :/
     
  28. Offline

    fabe

    When you get this error? Was there any error before this one? You will get such errors, when the playercache couldn't be set, when the player joined. Is it possible that your using a plugin that emulates players (NPCs)?
     
  29. Offline

    swedish2011

    fabe@

    I have NPC, PlayerLock , and more

    CB 556
     
  30. Offline

    fabe

    Bug confirmed: Incompatibilty with plugins, that create NPCs like Citizens. This is because these plugins emulate a player, and AuthMe can't check, if this player is a human or a computer. So if a NPC tries to move, a lot of errors will get spammed in console. The error messages are not serious and will not put the functionality of AuthMe at risk. The only problem is, that the NPC can't move, because he is not allowed to do so.
     
  31. Offline

    swedish2011

    how do you do then? :/
     

Share This Page