X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=builtin%2Fclient%2Fchatcommands.lua;h=0e8d4dd030cbbc3e4df9269162f0f74c6ceb5eae;hb=edd8c3c664ad005eb32e1968ce80091851ffb817;hp=bb5b905d89bd440815de61ec87f55305d82986a7;hpb=e8d872332040c16714ff6410d1f859adcec4766e;p=dragonfireclient.git diff --git a/builtin/client/chatcommands.lua b/builtin/client/chatcommands.lua index bb5b905d8..0e8d4dd03 100644 --- a/builtin/client/chatcommands.lua +++ b/builtin/client/chatcommands.lua @@ -1,10 +1,14 @@ -- Minetest: builtin/client/chatcommands.lua -core.register_on_sending_chat_messages(function(message) +core.register_on_sending_chat_message(function(message) + if message:sub(1,2) == ".." then + return false + end + local first_char = message:sub(1,1) if first_char == "/" or first_char == "." then - core.display_chat_message("issued command: " .. message) + core.display_chat_message(core.gettext("issued command: ") .. message) end if first_char ~= "." then @@ -12,40 +16,60 @@ core.register_on_sending_chat_messages(function(message) end local cmd, param = string.match(message, "^%.([^ ]+) *(.*)") - if not param then - param = "" - end + param = param or "" if not cmd then - core.display_chat_message("-!- Empty command") + core.display_chat_message(core.gettext("-!- Empty command")) + return true + end + + -- Run core.registered_on_chatcommand callbacks. + if core.run_callbacks(core.registered_on_chatcommand, 5, cmd, param) then return true end local cmd_def = core.registered_chatcommands[cmd] if cmd_def then core.set_last_run_mod(cmd_def.mod_origin) - local _, message = cmd_def.func(param) - if message then - core.display_chat_message(message) + local _, result = cmd_def.func(param) + if result then + core.display_chat_message(result) end else - core.display_chat_message("-!- Invalid command: " .. cmd) + core.display_chat_message(core.gettext("-!- Invalid command: ") .. cmd) end return true end) core.register_chatcommand("list_players", { - description = "List online players", + description = core.gettext("List online players"), func = function(param) - local players = table.concat(core.get_player_names(), ", ") - core.display_chat_message("Online players: " .. players) + local player_names = core.get_player_names() + if not player_names then + return false, core.gettext("This command is disabled by server.") + end + + local players = table.concat(player_names, ", ") + return true, core.gettext("Online players: ") .. players end }) core.register_chatcommand("disconnect", { - description = "Exit to main menu", + description = core.gettext("Exit to main menu"), func = function(param) core.disconnect() end, }) + +core.register_chatcommand("clear_chat_queue", { + description = core.gettext("Clear the out chat queue"), + func = function(param) + core.clear_out_chat_queue() + return true, core.gettext("The out chat queue is now empty") + end, +}) + +function core.run_server_chatcommand(cmd, param) + core.send_chat_message("/" .. cmd .. " " .. param) +end