forked from mff/name_restrictions
		
	Compare commits
	
		
			5 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 2f4569266e | |||
| 
						 | 
					227445d5c7 | ||
| 
						 | 
					3160d7a624 | ||
| c58a4d5e49 | |||
| 97592b5eec | 
							
								
								
									
										38
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								init.lua
									
									
									
									
									
								
							@@ -7,22 +7,22 @@
 | 
			
		||||
-- For legitimate player names that are caught by the filters.
 | 
			
		||||
 | 
			
		||||
local exemptions = {}
 | 
			
		||||
local temp = minetest.setting_get("name_restrictions.exemptions")
 | 
			
		||||
local temp = minetest.settings:get("name_restrictions.exemptions")
 | 
			
		||||
temp = temp and temp:split() or {}
 | 
			
		||||
for _, allowed_name in pairs(temp) do
 | 
			
		||||
	exemptions[allowed_name] = true
 | 
			
		||||
end
 | 
			
		||||
temp = nil
 | 
			
		||||
-- Exempt server owner
 | 
			
		||||
exemptions[minetest.setting_get("name")] = true
 | 
			
		||||
exemptions[minetest.settings:get("name")] = true
 | 
			
		||||
exemptions["singleplayer"] = true
 | 
			
		||||
 | 
			
		||||
local disallowed_names
 | 
			
		||||
 | 
			
		||||
local function load_forbidden_names()
 | 
			
		||||
	disallowed_names = {}
 | 
			
		||||
	local path = minetest.setting_get("name_restrictions.forbidden_names_list_path") or
 | 
			
		||||
		minetest.get_worldpath("name_restrictions") .. "/forbidden_names.txt"
 | 
			
		||||
	local path = minetest.settings:get("name_restrictions.forbidden_names_list_path") or
 | 
			
		||||
		minetest.get_worldpath() .. "/forbidden_names.txt"
 | 
			
		||||
	local file = io.open(path, 'r')
 | 
			
		||||
	if file then
 | 
			
		||||
		local count = 0
 | 
			
		||||
@@ -53,8 +53,8 @@ end
 | 
			
		||||
local disallowed
 | 
			
		||||
 | 
			
		||||
local function load_disallowed()
 | 
			
		||||
	local path = minetest.setting_get("name_restrictions.forbidden_name_patterns_list_path") or
 | 
			
		||||
		minetest.get_worldpath("name_restrictions") .. "/forbidden_names_patterns.txt"
 | 
			
		||||
	local path = minetest.settings:get("name_restrictions.forbidden_name_patterns_list_path") or
 | 
			
		||||
		minetest.get_worldpath() .. "/forbidden_names_patterns.txt"
 | 
			
		||||
	local file = io.open(path, 'r')
 | 
			
		||||
	if file then
 | 
			
		||||
		local content = file:read('*all')
 | 
			
		||||
@@ -127,11 +127,12 @@ minetest.register_chatcommand("choosecase", {
 | 
			
		||||
	func = function(name, params)
 | 
			
		||||
		local lname = params:lower()
 | 
			
		||||
		local worldpath = minetest.get_worldpath()
 | 
			
		||||
		local enumerate, e1, e2, e3 = minetest.get_auth_handler().enumerate_auths
 | 
			
		||||
		if enumerate then e1 = enumerate() else e1, e2, e3 = pairs(minetest.auth_table) end
 | 
			
		||||
		local auth_handler = minetest.get_auth_handler()
 | 
			
		||||
		local enumerate, e1, e2, e3 = auth_handler.enumerate_auths
 | 
			
		||||
		if enumerate then e1 = enumerate() else e1, e2, e3 = auth_handler.iterate() end
 | 
			
		||||
		for iname, data in e1, e2, e3 do
 | 
			
		||||
			if iname:lower() == lname and iname ~= params then
 | 
			
		||||
				local delete = minetest.get_auth_handler().delete_auth
 | 
			
		||||
				local delete = auth_handler.delete_auth
 | 
			
		||||
				if delete then
 | 
			
		||||
					delete(iname)
 | 
			
		||||
				else
 | 
			
		||||
@@ -189,8 +190,9 @@ all_chars = all_chars .. "]"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
minetest.register_on_prejoinplayer(function(name, ip)
 | 
			
		||||
	--MFF crabman (fix new player disallow old player with similaire name)
 | 
			
		||||
	local exists = minetest.get_auth_handler().get_auth(name)
 | 
			
		||||
	--MFF crabman & sys4 (fix new player disallow old player with similaire name)
 | 
			
		||||
	local auth_handler = minetest.get_auth_handler()
 | 
			
		||||
	local exists = auth_handler.get_auth(name)
 | 
			
		||||
	if exists then return end
 | 
			
		||||
 | 
			
		||||
	local lname = name:lower()
 | 
			
		||||
@@ -203,8 +205,8 @@ minetest.register_on_prejoinplayer(function(name, ip)
 | 
			
		||||
		return "Sorry. This name is forbidden."
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	local enumerate, e1, e2, e3 = minetest.get_auth_handler().enumerate_auths
 | 
			
		||||
	if enumerate then e1 = enumerate() else e1, e2, e3 = pairs(minetest.auth_table) end
 | 
			
		||||
	local enumerate, e1, e2, e3 = auth_handler.enumerate_auths
 | 
			
		||||
	if enumerate then e1 = enumerate() else e1, e2, e3 = auth_handler.iterate() end
 | 
			
		||||
	for iname, data in e1, e2, e3 do
 | 
			
		||||
		if iname:lower() == lname and iname ~= name then
 | 
			
		||||
			return "Sorry, someone else is already using this"
 | 
			
		||||
@@ -220,8 +222,8 @@ minetest.register_on_prejoinplayer(function(name, ip)
 | 
			
		||||
	local re = name:gsub(all_chars, char_map)
 | 
			
		||||
	re = "^[_-]*" .. re .. "[_-]*$"
 | 
			
		||||
 | 
			
		||||
	local enumerate, e1, e2, e3 = minetest.get_auth_handler().enumerate_auths
 | 
			
		||||
	if enumerate then e1 = enumerate() else e1, e2, e3 = pairs(minetest.auth_table) end
 | 
			
		||||
	local enumerate, e1, e2, e3 = auth_handler.enumerate_auths
 | 
			
		||||
	if enumerate then e1 = enumerate() else e1, e2, e3 = auth_handler.iterate() end
 | 
			
		||||
	for authName, _ in e1, e2, e3 do
 | 
			
		||||
		if authName ~= name and authName:match(re) then
 | 
			
		||||
			return "Your name is too similar to another player's name."
 | 
			
		||||
@@ -235,8 +237,8 @@ end)
 | 
			
		||||
-- Name length --
 | 
			
		||||
-----------------
 | 
			
		||||
 | 
			
		||||
local min_name_len = tonumber(minetest.setting_get("name_restrictions.minimum_name_length")) or 2
 | 
			
		||||
local max_name_len = tonumber(minetest.setting_get("name_restrictions.maximum_name_length")) or 17
 | 
			
		||||
local min_name_len = tonumber(minetest.settings:get("name_restrictions.minimum_name_length")) or 2
 | 
			
		||||
local max_name_len = tonumber(minetest.settings:get("name_restrictions.maximum_name_length")) or 17
 | 
			
		||||
 | 
			
		||||
minetest.register_on_prejoinplayer(function(name, ip)
 | 
			
		||||
	if exemptions[name] then return end
 | 
			
		||||
@@ -307,7 +309,7 @@ end
 | 
			
		||||
--   0.5 = Strict checking.
 | 
			
		||||
--   1   = Normal checking.
 | 
			
		||||
--   2   = Relaxed checking.
 | 
			
		||||
local pronounceability = tonumber(minetest.setting_get("name_restrictions.pronounceability"))
 | 
			
		||||
local pronounceability = tonumber(minetest.settings:get("name_restrictions.pronounceability"))
 | 
			
		||||
if pronounceability then
 | 
			
		||||
	minetest.register_on_prejoinplayer(function(name, ip)
 | 
			
		||||
		if exemptions[name] then return end
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user