remove all control characters from chat messages
This commit is contained in:
parent
ff26c1c27a
commit
cf33877a6e
@ -15,6 +15,11 @@ minetest.register_on_leaveplayer(function(player)
|
||||
end)
|
||||
|
||||
|
||||
local function chat_escape(text) -- remove all control characters to prevent malformed chat messages
|
||||
return string.gsub(text, "%c", "")
|
||||
end
|
||||
|
||||
|
||||
-- show a formspec to a player
|
||||
function chat_formspec.show_to_target(sendername, targetname, fs)
|
||||
if not targetname then
|
||||
@ -22,18 +27,18 @@ function chat_formspec.show_to_target(sendername, targetname, fs)
|
||||
end
|
||||
local target = minetest.get_player_by_name(targetname)
|
||||
if not target then
|
||||
minetest.chat_send_player(sendername, targetname .. " is not online")
|
||||
minetest.chat_send_player(sendername, chat_escape(targetname .. " is not online"))
|
||||
return
|
||||
end
|
||||
if target:get_hp() == 0 then
|
||||
minetest.chat_send_player(sendername, targetname .. " is dead. We cannot send them a formspec without removing their respawn-formspec. Please try again later")
|
||||
minetest.chat_send_player(sendername, chat_escape(targetname .. " is dead. We cannot send them a formspec without removing their respawn-formspec. Please try again later"))
|
||||
return
|
||||
end
|
||||
minetest.show_formspec(targetname, "chat_formspec:target_fs", fs)
|
||||
local context = get_context(targetname)
|
||||
context.sender = sendername
|
||||
context.fs = fs
|
||||
minetest.chat_send_player(sendername, "formspec send to " .. targetname)
|
||||
minetest.chat_send_player(sendername, chat_escape("formspec send to " .. targetname))
|
||||
end
|
||||
|
||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||
@ -47,7 +52,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||
chat_formspec.show_misc(name, "replant_help")
|
||||
elseif minetest.get_player_by_name(sendername) then
|
||||
local answer = fields.answer or ""
|
||||
minetest.chat_send_player(sendername, "chat formspec: " .. name .. " answered with \"" .. answer .. "\"")
|
||||
minetest.chat_send_player(sendername, chat_escape("chat formspec: " .. name ..
|
||||
" answered with \"" .. answer .. "\""))
|
||||
end
|
||||
if fields.quit then
|
||||
clear_context(name)
|
||||
|
Reference in New Issue
Block a user