Security fix.

• Make it more clear when players use newlines in a message.
 • Stop overriding .list_players.
This commit is contained in:
luk3yx 2018-11-15 09:01:12 +13:00
parent cac278c217
commit a824bbb8f3
1 changed files with 7 additions and 16 deletions

View File

@ -218,9 +218,15 @@ chat_channels.display_without_colours = function(msg)
end
end
local strip_newlines = function(msg)
local msg, c = msg:gsub('\n', '\n --- ')
return msg
end
minetest.register_on_receiving_chat_messages(function(msg)
local m = minetest.strip_colors(msg)
if strip_colours then msg = m end
msg = strip_newlines(msg)
if m == 'Message sent.' or m:match('^The player .* is not online.$')
or m:match('^Your PM has been sent to') then
if messages_sent > 0 then
@ -305,7 +311,7 @@ minetest.register_on_receiving_chat_messages(function(msg)
end
end
return chat_channels.display_without_colours(msg)
return chat_channels.display_without_colours(m)
end)
minetest.register_chatcommand('add_to_channel', {
@ -494,18 +500,3 @@ if true then
minetest.register_chatcommand('strip_colors', def)
end
-- Override .list_players to make it display all players, not just players
-- visible to the client.
minetest.override_chatcommand('list_players', {
func = function()
local p = {localplayer}
for player, _ in pairs(connected_players) do
if player ~= localplayer and _ then
table.insert(p, player)
end
end
table.sort(p)
return true, "Online players: " .. table.concat(p, ', ')
end
})