Compare commits

...

6 Commits

Author SHA1 Message Date
Sys Quatre 2f4569266e Merge branch 'master' of https://github.com/MinetestForFun/name_restrictions into nalc-1.2-dev 2019-12-22 14:29:41 +01:00
David Leal 227445d5c7
Replace deprecated functions with newer ones 2019-09-24 20:37:21 -05:00
David Leal 3160d7a624
Create mod.conf 2019-09-24 20:35:41 -05:00
Sys Quatre c58a4d5e49 Mise à jour des appels déprécié de minetest.settings:get 2019-04-08 01:26:37 +02:00
Sys Quatre 97592b5eec Corrige crash au démarrage.
* Les appels auth_handler ont été mis à jour pour être compatible
  Minetest 5.0.
2019-04-08 00:21:17 +02:00
sys4-fr c9df43a1f6 Ajoute message de chargement du mod dans le journal "action" 2019-01-05 21:33:55 +01:00
2 changed files with 23 additions and 18 deletions

View File

@ -7,22 +7,22 @@
-- For legitimate player names that are caught by the filters. -- For legitimate player names that are caught by the filters.
local exemptions = {} local exemptions = {}
local temp = minetest.setting_get("name_restrictions.exemptions") local temp = minetest.settings:get("name_restrictions.exemptions")
temp = temp and temp:split() or {} temp = temp and temp:split() or {}
for _, allowed_name in pairs(temp) do for _, allowed_name in pairs(temp) do
exemptions[allowed_name] = true exemptions[allowed_name] = true
end end
temp = nil temp = nil
-- Exempt server owner -- Exempt server owner
exemptions[minetest.setting_get("name")] = true exemptions[minetest.settings:get("name")] = true
exemptions["singleplayer"] = true exemptions["singleplayer"] = true
local disallowed_names local disallowed_names
local function load_forbidden_names() local function load_forbidden_names()
disallowed_names = {} disallowed_names = {}
local path = minetest.setting_get("name_restrictions.forbidden_names_list_path") or local path = minetest.settings:get("name_restrictions.forbidden_names_list_path") or
minetest.get_worldpath("name_restrictions") .. "/forbidden_names.txt" minetest.get_worldpath() .. "/forbidden_names.txt"
local file = io.open(path, 'r') local file = io.open(path, 'r')
if file then if file then
local count = 0 local count = 0
@ -53,8 +53,8 @@ end
local disallowed local disallowed
local function load_disallowed() local function load_disallowed()
local path = minetest.setting_get("name_restrictions.forbidden_name_patterns_list_path") or local path = minetest.settings:get("name_restrictions.forbidden_name_patterns_list_path") or
minetest.get_worldpath("name_restrictions") .. "/forbidden_names_patterns.txt" minetest.get_worldpath() .. "/forbidden_names_patterns.txt"
local file = io.open(path, 'r') local file = io.open(path, 'r')
if file then if file then
local content = file:read('*all') local content = file:read('*all')
@ -127,11 +127,12 @@ minetest.register_chatcommand("choosecase", {
func = function(name, params) func = function(name, params)
local lname = params:lower() local lname = params:lower()
local worldpath = minetest.get_worldpath() local worldpath = minetest.get_worldpath()
local enumerate, e1, e2, e3 = minetest.get_auth_handler().enumerate_auths local auth_handler = minetest.get_auth_handler()
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 for iname, data in e1, e2, e3 do
if iname:lower() == lname and iname ~= params then 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 if delete then
delete(iname) delete(iname)
else else
@ -189,8 +190,9 @@ all_chars = all_chars .. "]"
minetest.register_on_prejoinplayer(function(name, ip) minetest.register_on_prejoinplayer(function(name, ip)
--MFF crabman (fix new player disallow old player with similaire name) --MFF crabman & sys4 (fix new player disallow old player with similaire name)
local exists = minetest.get_auth_handler().get_auth(name) local auth_handler = minetest.get_auth_handler()
local exists = auth_handler.get_auth(name)
if exists then return end if exists then return end
local lname = name:lower() local lname = name:lower()
@ -203,8 +205,8 @@ minetest.register_on_prejoinplayer(function(name, ip)
return "Sorry. This name is forbidden." return "Sorry. This name is forbidden."
end end
local enumerate, e1, e2, e3 = minetest.get_auth_handler().enumerate_auths local enumerate, e1, e2, e3 = auth_handler.enumerate_auths
if enumerate then e1 = enumerate() else e1, e2, e3 = pairs(minetest.auth_table) end if enumerate then e1 = enumerate() else e1, e2, e3 = auth_handler.iterate() end
for iname, data in e1, e2, e3 do for iname, data in e1, e2, e3 do
if iname:lower() == lname and iname ~= name then if iname:lower() == lname and iname ~= name then
return "Sorry, someone else is already using this" 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) local re = name:gsub(all_chars, char_map)
re = "^[_-]*" .. re .. "[_-]*$" re = "^[_-]*" .. re .. "[_-]*$"
local enumerate, e1, e2, e3 = minetest.get_auth_handler().enumerate_auths local enumerate, e1, e2, e3 = auth_handler.enumerate_auths
if enumerate then e1 = enumerate() else e1, e2, e3 = pairs(minetest.auth_table) end if enumerate then e1 = enumerate() else e1, e2, e3 = auth_handler.iterate() end
for authName, _ in e1, e2, e3 do for authName, _ in e1, e2, e3 do
if authName ~= name and authName:match(re) then if authName ~= name and authName:match(re) then
return "Your name is too similar to another player's name." return "Your name is too similar to another player's name."
@ -235,8 +237,8 @@ end)
-- Name length -- -- Name length --
----------------- -----------------
local min_name_len = tonumber(minetest.setting_get("name_restrictions.minimum_name_length")) or 2 local min_name_len = tonumber(minetest.settings:get("name_restrictions.minimum_name_length")) or 2
local max_name_len = tonumber(minetest.setting_get("name_restrictions.maximum_name_length")) or 17 local max_name_len = tonumber(minetest.settings:get("name_restrictions.maximum_name_length")) or 17
minetest.register_on_prejoinplayer(function(name, ip) minetest.register_on_prejoinplayer(function(name, ip)
if exemptions[name] then return end if exemptions[name] then return end
@ -307,7 +309,7 @@ end
-- 0.5 = Strict checking. -- 0.5 = Strict checking.
-- 1 = Normal checking. -- 1 = Normal checking.
-- 2 = Relaxed 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 if pronounceability then
minetest.register_on_prejoinplayer(function(name, ip) minetest.register_on_prejoinplayer(function(name, ip)
if exemptions[name] then return end if exemptions[name] then return end
@ -319,3 +321,4 @@ if pronounceability then
end) end)
end end
minetest.log("action", "[name_restrictions] loaded.")

2
mod.conf Normal file
View File

@ -0,0 +1,2 @@
name = name_restrictions
description = Restricts some names that players can't use.