essentials-cd2025/ui/color_menu.lua
SkyBuilder1717 ed7f81216c Optimization
2025-01-03 22:58:17 +03:00

47 lines
1.7 KiB
Lua

local FORMNAME = "essentials:color_menu"
local function convertColor(table)
local hex = string.format("#%02X%02X%02X", table.r, table.g, table.b)
return hex
end
core.register_on_chat_message(function(name, message)
local prop = core.get_player_by_name(name):get_properties()
--core.chat_send_player(name, dump(prop.nametag_color))
core.chat_send_all(core.format_chat_message(core.colorize(convertColor(prop.nametag_color), name), message))
return true
end)
function essentials.show_color_menu(name)
local formspec = "formspec_version[6]"..
"size[10,8]"..
"button[2.9,6.5;4.4,1.2;done;"..S("Accept").."]"..
"image_button_exit[8.8,0.2;1,1;essentials_close_btn.png;close;]"..
"field[1.5,4.4;7.2,1.1;color;"..S("Color")..";]"..
"label[1.7,5.9;"..core.formspec_escape(S("Or hex color or common color (red, blue, etc.)")).."]"..
"label[2.7,1.6;"..core.formspec_escape(S("Select color for your nickname")).."]"
core.show_formspec(name, FORMNAME, formspec)
end
core.register_on_player_receive_fields(function(player, formname, fields)
if formname ~= FORMNAME then
return
end
local name = player:get_player_name()
core.sound_play("clicked", {to_player = name})
if fields.done then
if core.is_singleplayer() then
core.chat_send_player(name, core.colorize("red", S("Cannot coloring nickname in single mode!")))
core.sound_play("error")
return
end
player:set_properties({
nametag_color = fields.color
})
player:get_meta():set_string("essentials_color", fields.color)
core.sound_play("clicked", name)
core.close_formspec(name, formname)
end
end)