forked from VoxeLibre/VoxeLibre
Add `mcl_player_csm` mod to check if a player have the official CSM enabled
This commit is contained in:
parent
2b46dd60c5
commit
3ec2d17641
|
@ -0,0 +1,37 @@
|
||||||
|
mcl_player_csm = {}
|
||||||
|
|
||||||
|
---@type table<string, boolean>
|
||||||
|
local activated = {}
|
||||||
|
|
||||||
|
---Return whatever player with specified name have official CSM enabled
|
||||||
|
---@param name string
|
||||||
|
---@return boolean? # `nil` if player not found, boolean overwise
|
||||||
|
function mcl_player_csm.is_enabled(name)
|
||||||
|
return activated[name]
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.mod_channel_join("mcl_player_csm:activate")
|
||||||
|
|
||||||
|
minetest.register_on_modchannel_message(function(channel_name, sender, message)
|
||||||
|
if channel_name == "mcl_player_csm:activate" and message == "activated" then
|
||||||
|
activated[sender] = true
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_on_joinplayer(function(player, last_login)
|
||||||
|
activated[player:get_player_name()] = false
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_on_leaveplayer(function(player, timed_out)
|
||||||
|
activated[player:get_player_name()] = nil
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_chatcommand("have_csm", {
|
||||||
|
description = "Show whatever player have official CSM enabled",
|
||||||
|
params = "[<name>]",
|
||||||
|
privs = {debug = true},
|
||||||
|
func = function(name, param)
|
||||||
|
local pname = param ~= "" and param or name
|
||||||
|
return true, "Player [" .. pname .. "]: " .. tostring(activated[pname])
|
||||||
|
end
|
||||||
|
})
|
|
@ -0,0 +1,5 @@
|
||||||
|
name = mcl_player_csm
|
||||||
|
description =
|
||||||
|
depends =
|
||||||
|
optional_depends =
|
||||||
|
author = AFCM
|
Loading…
Reference in New Issue