Add userlimit skip if sufficient score
This commit is contained in:
parent
15653f7648
commit
d66cabe446
4 changed files with 30 additions and 11 deletions
|
@ -104,14 +104,7 @@ function chatplus.save()
|
|||
end
|
||||
end
|
||||
|
||||
function chatplus.clean_players()
|
||||
if not chatplus.players then
|
||||
chatplus.players = {}
|
||||
return
|
||||
end
|
||||
|
||||
minetest.log("[Chatplus] Cleaning player lists")
|
||||
for key,value in pairs(chatplus.players) do
|
||||
local function clean_player(name, value)
|
||||
if value.messages then
|
||||
value.inbox = value.messages
|
||||
value.messages = nil
|
||||
|
@ -121,8 +114,19 @@ function chatplus.clean_players()
|
|||
(not value.inbox or #value.inbox==0) and
|
||||
(not value.ignore or #value.ignore==0)
|
||||
) then
|
||||
chatplus.players[key] = nil
|
||||
chatplus.players[name] = nil
|
||||
end
|
||||
end
|
||||
|
||||
function chatplus.clean_players()
|
||||
if not chatplus.players then
|
||||
chatplus.players = {}
|
||||
return
|
||||
end
|
||||
|
||||
minetest.log("[Chatplus] Cleaning player lists")
|
||||
for key,value in pairs(chatplus.players) do
|
||||
clean_player(key, value)
|
||||
end
|
||||
chatplus.save()
|
||||
end
|
||||
|
@ -151,6 +155,7 @@ function chatplus.poke(name,player)
|
|||
if player=="end" then
|
||||
chatplus.players[name].enabled = false
|
||||
chatplus.loggedin[name] = nil
|
||||
clean_player(name, chatplus.players[name])
|
||||
else
|
||||
if not chatplus.loggedin[name] then
|
||||
chatplus.loggedin[name] = {}
|
||||
|
|
|
@ -76,6 +76,10 @@ ctf.register_on_save(function()
|
|||
return nil
|
||||
end)
|
||||
|
||||
function ctf_stats.player_or_nil(name)
|
||||
return ctf_stats.players[name], ctf_stats.current.red[name] or ctf_stats.current.blue[name]
|
||||
end
|
||||
|
||||
-- Returns a tuple: `player_stats`, `match_player_stats`
|
||||
function ctf_stats.player(name)
|
||||
local player_stats = ctf_stats.players[name]
|
||||
|
|
2
mods/ctf_userlimit/depends.txt
Normal file
2
mods/ctf_userlimit/depends.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
ctf
|
||||
ctf_stats
|
8
mods/ctf_userlimit/init.lua
Normal file
8
mods/ctf_userlimit/init.lua
Normal file
|
@ -0,0 +1,8 @@
|
|||
minetest.register_can_bypass_userlimit(function(name, ip)
|
||||
local pstat, discard = ctf_stats.player_or_nil(name)
|
||||
local actual_max_users = tonumber(minetest.settings:get("max_users")) +
|
||||
tonumber(minetest.settings:get("max_extra_users") or "10")
|
||||
local req_score = tonumber(minetest.settings:get("userlimit_bypass_required_score") or "10000")
|
||||
|
||||
return pstat and pstat.score > req_score and #minetest.get_connected_players() < actual_max_users
|
||||
end)
|
Loading…
Reference in a new issue