55 lines
1.6 KiB
Lua
55 lines
1.6 KiB
Lua
local S = essentials.translate
|
|
local FORMNAME = "essentials:report_admin"
|
|
|
|
function essentials.show_report_menu(name)
|
|
local ids = ""
|
|
for i, player in ipairs(core.get_connected_players()) do
|
|
local n = player:get_player_name()
|
|
if i == 1 then
|
|
ids = ids..n
|
|
else
|
|
ids = ids..","..n
|
|
end
|
|
end
|
|
|
|
local formspec = "formspec_version[6]"..
|
|
"size[10.5,10.2]"..
|
|
"dropdown[3.1,2.4;6.4,0.6;reporting;"..ids..";1;false]"..
|
|
"label[3.9,0.4;"..S("Report the player").."]"..
|
|
"label[0.8,2.7;"..S("Player:").."]"..
|
|
"textarea[0.8,3.7;8.7,5.3;description;"..S("Description to report")..";]"..
|
|
"button[0.8,9.2;8.7,0.8;send;"..S("Send report").."]"..
|
|
"field[0.8,1.3;8.7,0.8;broked_rule;"..S("Broken rule")..";]"
|
|
|
|
core.show_formspec(name, FORMNAME, formspec)
|
|
end
|
|
|
|
core.register_on_player_receive_fields(function(player, formname, fields)
|
|
local name = player:get_player_name()
|
|
if formname ~= FORMNAME then
|
|
return
|
|
end
|
|
essentials.player_sound("clicked", name)
|
|
|
|
if fields.send then
|
|
local reporting = fields.reporting
|
|
local broked_rule = fields.broked_rule
|
|
local description = fields.description
|
|
|
|
if broked_rule == "" or description == "" then
|
|
essentials.player_sound("error", name)
|
|
return
|
|
end
|
|
|
|
if reporting == name then
|
|
essentials.player_sound("error", name)
|
|
core.chat_send_player(name, core.colorize("red", S("Cannot report yourself.")))
|
|
return
|
|
end
|
|
|
|
essentials.add_report(broked_rule, name, reporting, description)
|
|
core.chat_send_player(name, S("@1 has been reported!", reporting))
|
|
essentials.player_sound("done", name)
|
|
core.close_formspec(name, FORMNAME)
|
|
end
|
|
end) |