diff --git a/additional_role/init.lua b/additional_role/init.lua index dfc9e49..b4fd40c 100644 --- a/additional_role/init.lua +++ b/additional_role/init.lua @@ -1,20 +1,36 @@ -- twi_mods/additional_role/init.lua -- Additional roles indicators -- Copyright (C) 2024 1F616EMO -- SPDX-License-Identifier: LGPL-3.0-or-later -local S = minetest.get_translator("additional_role") +local S = core.get_translator("additional_role") -minetest.register_privilege("role_helper", { +core.register_privilege("role_helper", { description = S("Marked as helper in the chatroom"), give_to_singleplayer = false, }) beerchat_roles.register_role({ name = S("Helper"), color = "#20F99F", func = function(name) - return minetest.check_player_privs(name, { role_helper = true }) + return core.check_player_privs(name, { role_helper = true }) end, sort = 8900, }) + +local auth +mail.register_recipient_handler(function(sender, name) + if name ~= "additional_role:helper" then return nil end + + auth = auth or core.get_auth_handler() + local list_dest = {} + for i_name in auth.iterate() do + local privs = core.get_player_privs(i_name) + if i_name ~= sender and (privs.server or privs.ban or privs.role_helper) then + list_dest[#list_dest+1] = i_name + end + end + + return true, list_dest +end) diff --git a/additional_role/mod.conf b/additional_role/mod.conf index 3645328..d676def 100644 --- a/additional_role/mod.conf +++ b/additional_role/mod.conf @@ -1,2 +1,2 @@ name = additional_role -depends = beerchat_roles \ No newline at end of file +depends = mail, beerchat_roles \ No newline at end of file