64 lines
2.0 KiB
Lua

--local bc = better_commands
---Formats a name according to team data
---@param name string
---@param player_only boolean?
---@param objective string?
---@return string
function better_commands.format_name(name, player_only, objective)
local display_name = better_commands.get_display_name(name, objective)
if player_only then
if not better_commands.players[name] then
return display_name
end
end
local team = better_commands.teams.players[name]
if not team then
return display_name
else
local team_data = better_commands.teams.teams[team]
local name_format = (team_data.name_format or "%s")
display_name = name_format:gsub("%%s", display_name)
local color = better_commands.team_colors[team_data.color or "white"]
return minetest.colorize(color, display_name)
end
end
function better_commands.format_team_name(name)
local team_data = better_commands.teams.teams[name]
if not team_data then
minetest.log("error", "Team "..name.." does not exist.")
return name
end
local color = better_commands.team_colors[team_data.color or "white"]
local result = minetest.colorize(color, team_data.display_name or name)
return result
end
better_commands.team_colors = {
dark_red = "#aa0000",
red = "#ff5555",
gold = "#ffaa00",
yellow = "#ffff55",
dark_green = "#00aa00",
green = "#55ff55",
aqua = "#55ffff",
dark_aqua = "#00aaaa",
dark_blue = "#0000aa",
blue = "#5555ff",
light_purple = "#ff55ff",
dark_purple = "#aa00aa",
white = "#ffffff",
gray = "#aaaaaa",
dark_gray = "#555555",
black = "#000000"
}
local old = minetest.format_chat_message
---@diagnostic disable-next-line: duplicate-set-field
minetest.format_chat_message = function(name, message)
name = better_commands.format_name(name)
local result = old(name, message)
return result
end