diff --git a/spectator_mode/init.lua b/spectator_mode/init.lua index 09d15bb..39ecefa 100644 --- a/spectator_mode/init.lua +++ b/spectator_mode/init.lua @@ -122,13 +122,17 @@ minetest.register_on_leaveplayer(function(player) end end) -minetest.register_on_joinplayer(function(player) - if not minetest.check_player_privs(player:get_player_name(), { spectate = true }) then - return +local function join_player(player) + local old_join_part = irc.send_join_part + if minetest.check_player_privs(player:get_player_name(), { spectate = true }) and irc.send_join_part == true then + hide_player(player) + irc.send_join_part = false + + minetest.after(0, function() irc.send_join_part = old_join_part end) end +end - hide_player(player) -end) +table.insert(minetest.registered_on_joinplayers, 1, join_player) local old_can_show = hpbar.can_show function hpbar.can_show(player, ...) @@ -161,6 +165,17 @@ function ctf_teams.allocate_player(player, on_join, ...) end end +local old_privs_func = minetest.registered_chatcommands["privs"].func +minetest.registered_chatcommands["privs"].func = function(player, param) + if not player then return end + + if param and minetest.check_player_privs(param, {spectator = true}) and not minetest.check_player_privs(player, {ban = true}) then + minetest.chat_send_player(player, "Privileges of " .. param .. ": vote, interact, shout") + else + return old_privs_func(player, param) + end +end + -- /whereis chat-command minetest.register_chatcommand("whereis", { params = "", diff --git a/spectator_mode/mod.conf b/spectator_mode/mod.conf index 248ab66..2e6eb13 100644 --- a/spectator_mode/mod.conf +++ b/spectator_mode/mod.conf @@ -1,2 +1,2 @@ name = spectator_mode -depends = hpbar, ctf_modebase, ctf_teams, ctf_core +depends = hpbar, ctf_modebase, ctf_teams, ctf_core, irc