X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=builtin%2Fgame%2Fmisc.lua;h=d7164812aaa4c5046bcb1c0fa6f23b8e2171aab0;hb=0b0075e6ad0b3110cabdfc92cedb0a24d2b5ec42;hp=de41cfc91161a44a10fdbbb69710db342a38bc79;hpb=a60aa8e226584b97d0be0d26688b302dfddf7125;p=dragonfireclient.git diff --git a/builtin/game/misc.lua b/builtin/game/misc.lua index de41cfc91..d7164812a 100644 --- a/builtin/game/misc.lua +++ b/builtin/game/misc.lua @@ -48,11 +48,13 @@ function core.after(after, func, ...) } end -function core.check_player_privs(player_or_name, ...) - local name = player_or_name - -- Check if we have been provided with a Player object. - if type(name) ~= "string" then +function core.check_player_privs(name, ...) + local arg_type = type(name) + if (arg_type == "userdata" or arg_type == "table") and + name.get_player_name then -- If it quacks like a Player... name = name:get_player_name() + elseif arg_type ~= "string" then + error("Invalid core.check_player_privs argument type: " .. arg_type, 2) end local requested_privs = {...} @@ -85,11 +87,19 @@ end local player_list = {} core.register_on_joinplayer(function(player) - player_list[player:get_player_name()] = player + local player_name = player:get_player_name() + player_list[player_name] = player + core.chat_send_all("*** " .. player_name .. " joined the game.") end) -core.register_on_leaveplayer(function(player) - player_list[player:get_player_name()] = nil +core.register_on_leaveplayer(function(player, timed_out) + local player_name = player:get_player_name() + player_list[player_name] = nil + local announcement = "*** " .. player_name .. " left the game." + if timed_out then + announcement = announcement .. " (timed out)" + end + core.chat_send_all(announcement) end) function core.get_connected_players() @@ -197,3 +207,35 @@ function core.http_add_fetch(httpenv) return httpenv end + +if minetest.setting_getbool("disable_escape_sequences") then + + function core.get_color_escape_sequence(color) + return "" + end + + function core.get_background_escape_sequence(color) + return "" + end + + function core.colorize(color, message) + return message + end + +else + + local ESCAPE_CHAR = string.char(0x1b) + function core.get_color_escape_sequence(color) + return ESCAPE_CHAR .. "(c@" .. color .. ")" + end + + function core.get_background_escape_sequence(color) + return ESCAPE_CHAR .. "(b@" .. color .. ")" + end + + function core.colorize(color, message) + return core.get_color_escape_sequence(color) .. message .. core.get_color_escape_sequence("#ffffff") + end + +end +