Builtin: Disallow registering users with the same name
authorSmallJoker <mk939@ymail.com>
Thu, 28 Jul 2016 12:32:32 +0000 (14:32 +0200)
committerparamat <mat.gregory@virginmedia.com>
Sun, 28 Aug 2016 23:58:39 +0000 (00:58 +0100)
Prevents duplicate names: 'NickName', 'nickname', 'NICKNAME'.
Skips already registered users, so they can connect as usual.

builtin/game/auth.lua

index deb811b1448133077e8af1e61020053ec3fcbf03..46fe3d342778c50e15dac1d681ac7929a543a45d 100644 (file)
@@ -199,3 +199,19 @@ core.register_on_joinplayer(function(player)
        record_login(player:get_player_name())
 end)
 
+core.register_on_prejoinplayer(function(name, ip)
+       local auth = core.auth_table
+       if auth[name] ~= nil then
+               return
+       end
+
+       local name_lower = name:lower()
+       for k in pairs(auth) do
+               if k:lower() == name_lower then
+                       return string.format("\nCannot create new player called '%s'. "..
+                                       "Another account called '%s' is already registered. "..
+                                       "Please check the spelling if it's your account "..
+                                       "or use a different nickname.", name, k)
+               end
+       end
+end)