aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builtin/common/misc_helpers.lua44
-rw-r--r--builtin/settingtypes.txt5
-rw-r--r--src/server.cpp15
3 files changed, 22 insertions, 42 deletions
diff --git a/builtin/common/misc_helpers.lua b/builtin/common/misc_helpers.lua
index 68481f7c8..0bdd4b02a 100644
--- a/builtin/common/misc_helpers.lua
+++ b/builtin/common/misc_helpers.lua
@@ -642,44 +642,26 @@ end
local ESCAPE_CHAR = string.char(0x1b)
--- Client-side mods don't have access to settings
-if core.settings and core.settings:get_bool("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
-
- 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.get_color_escape_sequence(color)
+ return ESCAPE_CHAR .. "(c@" .. color .. ")"
+end
- function core.colorize(color, message)
- local lines = tostring(message):split("\n", true)
- local color_code = core.get_color_escape_sequence(color)
+function core.get_background_escape_sequence(color)
+ return ESCAPE_CHAR .. "(b@" .. color .. ")"
+end
- for i, line in ipairs(lines) do
- lines[i] = color_code .. line
- end
+function core.colorize(color, message)
+ local lines = tostring(message):split("\n", true)
+ local color_code = core.get_color_escape_sequence(color)
- return table.concat(lines, "\n") .. core.get_color_escape_sequence("#ffffff")
+ for i, line in ipairs(lines) do
+ lines[i] = color_code .. line
end
+ return table.concat(lines, "\n") .. core.get_color_escape_sequence("#ffffff")
end
+
function core.strip_foreground_colors(str)
return (str:gsub(ESCAPE_CHAR .. "%(c@[^)]+%)", ""))
end
diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt
index ba3339d32..5182cb3f7 100644
--- a/builtin/settingtypes.txt
+++ b/builtin/settingtypes.txt
@@ -721,11 +721,6 @@ server_announce (Announce server) bool false
# If you want to announce your ipv6 address, use serverlist_url = v6.servers.minetest.net.
serverlist_url (Serverlist URL) string servers.minetest.net
-# Disable escape sequences, e.g. chat coloring.
-# Use this if you want to run a server with pre-0.4.14 clients and you want to disable
-# the escape sequences generated by mods.
-disable_escape_sequences (Disable escape sequences) bool false
-
[*Network]
# Network port to listen (UDP).
diff --git a/src/server.cpp b/src/server.cpp
index 1e8e6a5d2..e9ccc3d79 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -1643,15 +1643,18 @@ void Server::SendInventory(PlayerSAO* playerSAO)
void Server::SendChatMessage(u16 peer_id, const std::wstring &message)
{
DSTACK(FUNCTION_NAME);
+ if (peer_id != PEER_ID_INEXISTENT) {
+ NetworkPacket pkt(TOCLIENT_CHAT_MESSAGE, 0, peer_id);
- NetworkPacket pkt(TOCLIENT_CHAT_MESSAGE, 0, peer_id);
- pkt << message;
+ if (m_clients.getProtocolVersion(peer_id) < 27)
+ pkt << unescape_enriched(message);
+ else
+ pkt << message;
- if (peer_id != PEER_ID_INEXISTENT) {
Send(&pkt);
- }
- else {
- m_clients.sendToAll(&pkt);
+ } else {
+ for (u16 id : m_clients.getClientIDs())
+ SendChatMessage(id, message);
}
}