summaryrefslogtreecommitdiff
path: root/src/server.cpp
diff options
context:
space:
mode:
authorred-001 <red-001@outlook.ie>2017-06-09 20:39:25 +0100
committerSmallJoker <mk939@ymail.com>2018-06-03 17:31:59 +0200
commitc399f5a5419efdafec766268af008ed24418fcd4 (patch)
tree2142dbcc7f56f33a783a3fbb4a28a6b3ed685847 /src/server.cpp
parentf736226c1a289c52cb59e5639ce4a39ad6451ac6 (diff)
downloadminetest-c399f5a5419efdafec766268af008ed24418fcd4.tar.gz
minetest-c399f5a5419efdafec766268af008ed24418fcd4.tar.bz2
minetest-c399f5a5419efdafec766268af008ed24418fcd4.zip
Fix sending color codes to clients that don't support them. (#5950)
Also remove `disable_escape_sequences` since it's not needed anymore.
Diffstat (limited to 'src/server.cpp')
-rw-r--r--src/server.cpp15
1 files changed, 9 insertions, 6 deletions
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);
}
}