From 51e13ae58881233a837dafb1ef33eb141c172e8d Mon Sep 17 00:00:00 2001
From: SmallJoker <mk939@ymail.com>
Date: Thu, 28 Jul 2016 14:32:32 +0200
Subject: [PATCH] Builtin: Disallow registering users with the same name

Prevents duplicate names: 'NickName', 'nickname', 'NICKNAME'.
Skips already registered users, so they can connect as usual.
---
 builtin/game/auth.lua | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/builtin/game/auth.lua b/builtin/game/auth.lua
index deb811b14..46fe3d342 100644
--- a/builtin/game/auth.lua
+++ b/builtin/game/auth.lua
@@ -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)
-- 
GitLab