summaryrefslogtreecommitdiff
path: root/builtin
diff options
context:
space:
mode:
authorANAND <ClobberXD@gmail.com>2019-08-08 21:34:46 +0530
committerrubenwardy <rw@rubenwardy.com>2019-08-08 17:04:46 +0100
commitd1c27c7e8037e9f438741ee5f7d3b6bda22d22a0 (patch)
treefa04794d876ec4c912add9fcca36eff4a18df016 /builtin
parentcc610c74a742511e04dce91b24d09c860ca7fa1b (diff)
downloadminetest-d1c27c7e8037e9f438741ee5f7d3b6bda22d22a0.tar.gz
minetest-d1c27c7e8037e9f438741ee5f7d3b6bda22d22a0.tar.bz2
minetest-d1c27c7e8037e9f438741ee5f7d3b6bda22d22a0.zip
Allow customizing chat message format (#8529)
Diffstat (limited to 'builtin')
-rw-r--r--builtin/game/chat.lua (renamed from builtin/game/chatcommands.lua)27
-rw-r--r--builtin/game/init.lua40
-rw-r--r--builtin/settingtypes.txt4
3 files changed, 50 insertions, 21 deletions
diff --git a/builtin/game/chatcommands.lua b/builtin/game/chat.lua
index b2a49863e..84559b064 100644
--- a/builtin/game/chatcommands.lua
+++ b/builtin/game/chat.lua
@@ -1,4 +1,29 @@
--- Minetest: builtin/game/chatcommands.lua
+-- Minetest: builtin/game/chat.lua
+
+--
+-- Chat message formatter
+--
+
+-- Implemented in Lua to allow redefinition
+function core.format_chat_message(name, message)
+ local str = core.settings:get("chat_message_format")
+ local error_str = "Invalid chat message format - missing %s"
+ local i
+
+ str, i = str:gsub("@name", name, 1)
+ if i == 0 then
+ error(error_str:format("@name"), 2)
+ end
+
+ str, i = str:gsub("@message", message, 1)
+ if i == 0 then
+ error(error_str:format("@message"), 2)
+ end
+
+ str = str:gsub("@timestamp", os.date("%H:%M:%S", os.time()), 1)
+
+ return str
+end
--
-- Chat command handler
diff --git a/builtin/game/init.lua b/builtin/game/init.lua
index 04f0732e5..271e49be3 100644
--- a/builtin/game/init.lua
+++ b/builtin/game/init.lua
@@ -1,37 +1,37 @@
local scriptpath = core.get_builtin_path()
-local commonpath = scriptpath.."common"..DIR_DELIM
-local gamepath = scriptpath.."game"..DIR_DELIM
+local commonpath = scriptpath .. "common" .. DIR_DELIM
+local gamepath = scriptpath .. "game".. DIR_DELIM
-- Shared between builtin files, but
-- not exposed to outer context
local builtin_shared = {}
-dofile(commonpath.."vector.lua")
+dofile(commonpath .. "vector.lua")
-dofile(gamepath.."constants.lua")
-assert(loadfile(gamepath.."item.lua"))(builtin_shared)
-dofile(gamepath.."register.lua")
+dofile(gamepath .. "constants.lua")
+assert(loadfile(gamepath .. "item.lua"))(builtin_shared)
+dofile(gamepath .. "register.lua")
if core.settings:get_bool("profiler.load") then
- profiler = dofile(scriptpath.."profiler"..DIR_DELIM.."init.lua")
+ profiler = dofile(scriptpath .. "profiler" .. DIR_DELIM .. "init.lua")
end
dofile(commonpath .. "after.lua")
-dofile(gamepath.."item_entity.lua")
-dofile(gamepath.."deprecated.lua")
-dofile(gamepath.."misc.lua")
-dofile(gamepath.."privileges.lua")
-dofile(gamepath.."auth.lua")
+dofile(gamepath .. "item_entity.lua")
+dofile(gamepath .. "deprecated.lua")
+dofile(gamepath .. "misc.lua")
+dofile(gamepath .. "privileges.lua")
+dofile(gamepath .. "auth.lua")
dofile(commonpath .. "chatcommands.lua")
-dofile(gamepath.."chatcommands.lua")
+dofile(gamepath .. "chat.lua")
dofile(commonpath .. "information_formspecs.lua")
-dofile(gamepath.."static_spawn.lua")
-dofile(gamepath.."detached_inventory.lua")
-assert(loadfile(gamepath.."falling.lua"))(builtin_shared)
-dofile(gamepath.."features.lua")
-dofile(gamepath.."voxelarea.lua")
-dofile(gamepath.."forceloading.lua")
-dofile(gamepath.."statbars.lua")
+dofile(gamepath .. "static_spawn.lua")
+dofile(gamepath .. "detached_inventory.lua")
+assert(loadfile(gamepath .. "falling.lua"))(builtin_shared)
+dofile(gamepath .. "features.lua")
+dofile(gamepath .. "voxelarea.lua")
+dofile(gamepath .. "forceloading.lua")
+dofile(gamepath .. "statbars.lua")
profiler = nil
diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt
index 931fe26da..21da565ca 100644
--- a/builtin/settingtypes.txt
+++ b/builtin/settingtypes.txt
@@ -1058,6 +1058,10 @@ disable_anticheat (Disable anticheat) bool false
# This option is only read when server starts.
enable_rollback_recording (Rollback recording) bool false
+# Format of player chat messages. The following strings are valid placeholders:
+# @name, @message, @timestamp (optional)
+chat_message_format (Chat message format) string <@name> @message
+
# A message to be displayed to all clients when the server shuts down.
kick_msg_shutdown (Shutdown message) string Server shutting down.