Better CTF format compatiblity

master
SmallJoker 2018-07-05 10:38:38 +02:00
parent 98ca33c561
commit f67056c4a4
2 changed files with 12 additions and 4 deletions

View File

@ -17,7 +17,12 @@ core.register_on_receiving_chat_message(function(line)
local prefix
local chat_line = false
local name, message = line:match("^%<(%S+)%> (.*)")
local name, color_end, message = line:match("^%<(%S+)%>%s*(" .. c_pattern .. ")%s*(.*)")
if not message then
name, message = line:match("^%<(%S+)%> (.*)")
end
if message then
-- To keep the <Name> notation
chat_line = true
@ -71,5 +76,5 @@ core.register_on_receiving_chat_message(function(line)
end
return minetest.display_chat_message(prefix .. (color or "")
.. name_wrap .. " " .. minetest.strip_colors(message))
.. name_wrap .. (color_end or "") .. " " .. message)
end)

View File

@ -27,10 +27,13 @@ local test_table = {
"<singleplayer> buzz baz",
"\x1b(c@#abcdef)[Admin] <singleplayer> foo bar\x1b(c@#ffffff)",
"\x1b(c@#FF0000)<singleplayer>\x1b(c@#ffffff) not modified",
"\x1b(c@#FF4444)<singleplayer> \x1b(c@#ffffff)CTF format"
"\x1b(c@#FF4444)<singleplayer> \x1b(c@#ffffff)CTF format",
"\x1b(c@#F00)<singleplayer> \x1b(c@#FFF)\x1b(c@#0F0)Somebody\x1b(c@#FFF) once told me"
}
local time = os.clock()
for i, v in pairs(test_table) do
print("In: " .. v)
callback(v)
end
local end_time = (os.clock() - time) * 1000^2 / #test_table
print("==> " .. math.floor(end_time + 0.5) .. " μs per chat message")