47 lines
1.7 KiB
Lua
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) |