return true\r
end\r
\r
+-- This has the same behaviour as the player invoking the chat command\r
+local function execute_worldedit_command(command_name, player_name, params)\r
+ local chatcmd = minetest.registered_chatcommands["/" .. command_name]\r
+ assert(chatcmd, "unknown command: " .. command_name)\r
+ local _, msg = chatcmd.func(player_name, params)\r
+ if msg then\r
+ worldedit.player_notify(player_name, msg)\r
+ end\r
+end\r
+\r
worldedit.register_gui_function("worldedit_gui_about", {\r
name = "About",\r
privs = {interact=true},\r
on_select = function(name)\r
- minetest.chatcommands["/about"].func(name, "")\r
+ execute_worldedit_command("about", name, "")\r
end,\r
})\r
\r
name = "Toggle Inspect",\r
privs = we_privs("inspect"),\r
on_select = function(name)\r
- minetest.chatcommands["/inspect"].func(name, worldedit.inspect[name] and "disable" or "enable")\r
+ execute_worldedit_command("inspect", name,\r
+ worldedit.inspect[name] and "disable" or "enable")\r
end,\r
})\r
\r
\r
worldedit.register_gui_handler("worldedit_gui_region", function(name, fields)\r
if fields.worldedit_gui_p_get then\r
- minetest.chatcommands["/p"].func(name, "get")\r
+ execute_worldedit_command("p", name, "get")\r
return true\r
elseif fields.worldedit_gui_p_set1 then\r
- minetest.chatcommands["/p"].func(name, "set1")\r
+ execute_worldedit_command("p", name, "set1")\r
return true\r
elseif fields.worldedit_gui_p_set2 then\r
- minetest.chatcommands["/p"].func(name, "set2")\r
+ execute_worldedit_command("p", name, "set2")\r
return true\r
elseif fields.worldedit_gui_pos1 then\r
- minetest.chatcommands["/pos1"].func(name, "")\r
+ execute_worldedit_command("pos1", name, "")\r
worldedit.show_page(name, "worldedit_gui_region")\r
return true\r
elseif fields.worldedit_gui_pos2 then\r
- minetest.chatcommands["/pos2"].func(name, "")\r
+ execute_worldedit_command("pos2", name, "")\r
worldedit.show_page(name, "worldedit_gui_region")\r
return true\r
elseif fields.worldedit_gui_reset then\r
- minetest.chatcommands["/reset"].func(name, "")\r
+ execute_worldedit_command("reset", name, "")\r
worldedit.show_page(name, "worldedit_gui_region")\r
return true\r
elseif fields.worldedit_gui_mark then\r
- minetest.chatcommands["/mark"].func(name, "")\r
+ execute_worldedit_command("mark", name, "")\r
worldedit.show_page(name, "worldedit_gui_region")\r
return true\r
elseif fields.worldedit_gui_unmark then\r
- minetest.chatcommands["/unmark"].func(name, "")\r
+ execute_worldedit_command("unmark", name, "")\r
worldedit.show_page(name, "worldedit_gui_region")\r
return true\r
elseif fields.worldedit_gui_volume then\r
- minetest.chatcommands["/volume"].func(name, "")\r
+ execute_worldedit_command("volume", name, "")\r
worldedit.show_page(name, "worldedit_gui_region")\r
return true\r
elseif fields.worldedit_gui_fixedpos_pos1_submit then\r
- minetest.chatcommands["/fixedpos"].func(name, string.format("set1 %s %s %s",\r
+ execute_worldedit_command("fixedpos", name, ("set1 %s %s %s"):format(\r
tostring(fields.worldedit_gui_fixedpos_pos1x),\r
tostring(fields.worldedit_gui_fixedpos_pos1y),\r
tostring(fields.worldedit_gui_fixedpos_pos1z)))\r
worldedit.show_page(name, "worldedit_gui_region")\r
return true\r
elseif fields.worldedit_gui_fixedpos_pos2_submit then\r
- minetest.chatcommands["/fixedpos"].func(name, string.format("set2 %s %s %s",\r
+ execute_worldedit_command("fixedpos", name, ("set2 %s %s %s"):format(\r
tostring(fields.worldedit_gui_fixedpos_pos2x),\r
tostring(fields.worldedit_gui_fixedpos_pos2y),\r
tostring(fields.worldedit_gui_fixedpos_pos2z)))\r
\r
local n = worldedit.normalize_nodename(gui_nodename1[name])\r
if n then\r
- minetest.chatcommands["/set"].func(name, n)\r
+ execute_worldedit_command("set", name, n)\r
end\r
return true\r
end\r
local n1 = worldedit.normalize_nodename(gui_nodename1[name])\r
local n2 = worldedit.normalize_nodename(gui_nodename2[name])\r
if n1 and n2 then\r
- minetest.chatcommands["/"..submit].func(name, string.format("%s %s", n1, n2))\r
+ execute_worldedit_command(submit, name, n1 .. " " .. n2)\r
end\r
return true\r
end\r
end\r
local n = worldedit.normalize_nodename(gui_nodename1[name])\r
if n then\r
- minetest.chatcommands["/"..submit].func(name, string.format("%s %s", gui_distance2[name], n))\r
+ execute_worldedit_command(submit, name,\r
+ gui_distance2[name] .. " " .. n)\r
end\r
return true\r
end\r
local n = worldedit.normalize_nodename(gui_nodename1[name])\r
if n then\r
local args = string.format("%s %s %s %s %s", axis_values[gui_axis1[name]], gui_distance1[name], gui_distance2[name], gui_distance3[name], n)\r
- minetest.chatcommands["/"..submit].func(name, args)\r
+ execute_worldedit_command(submit, name, args)\r
end\r
return true\r
end\r
end\r
local n = worldedit.normalize_nodename(gui_nodename1[name])\r
if n then\r
- minetest.chatcommands["/"..submit].func(name, string.format("%s %s %s", axis_values[gui_axis1[name]], gui_distance1[name], n))\r
+ execute_worldedit_command(submit, name,\r
+ axis_values[gui_axis1[name]] .. " " .. gui_distance1[name] ..\r
+ " " .. n)\r
end\r
return true\r
end\r
\r
local n = worldedit.normalize_nodename(gui_nodename1[name])\r
if n then\r
- minetest.chatcommands["/spiral"].func(name, string.format("%s %s %s %s", gui_distance1[name], gui_distance2[name], gui_distance3[name], n))\r
+ execute_worldedit_command("spiral", name,\r
+ string.format("%s %s %s %s", gui_distance1[name],\r
+ gui_distance2[name], gui_distance3[name], n))\r
end\r
return true\r
end\r
if fields.worldedit_gui_copy_move_move then\r
submit = "move"\r
end\r
- minetest.chatcommands["/"..submit].func(name, string.format("%s %s", axis_values[gui_axis1[name]], gui_distance1[name]))\r
+ execute_worldedit_command(submit, name,\r
+ axis_values[gui_axis1[name]] .. " " .. gui_distance1[name])\r
return true\r
end\r
return ret\r
copy_changes(name, fields, cg)\r
worldedit.show_page(name, "worldedit_gui_stack")\r
\r
- minetest.chatcommands["/stack"].func(name, string.format("%s %s", axis_values[gui_axis1[name]], gui_count1[name]))\r
+ execute_worldedit_command("stack", name,\r
+ axis_values[gui_axis1[name]] .. " " .. gui_count1[name])\r
return true\r
end\r
return ret\r
copy_changes(name, fields, cg)\r
worldedit.show_page(name, "worldedit_gui_stretch")\r
\r
- minetest.chatcommands["/stretch"].func(name, string.format("%s %s %s", gui_count1[name], gui_count2[name], gui_count3[name]))\r
+ execute_worldedit_command("stretch", name, string.format("%s %s %s",\r
+ gui_count1[name], gui_count2[name], gui_count3[name]))\r
return true\r
end\r
return ret\r
if fields.worldedit_gui_transpose_submit then\r
copy_changes(name, fields, cg)\r
\r
- minetest.chatcommands["/transpose"].func(name, string.format("%s %s", axis_values[gui_axis1[name]], axis_values[gui_axis2[name]]))\r
+ execute_worldedit_command("transpose", name,\r
+ axis_values[gui_axis1[name]] .. " " .. axis_values[gui_axis2[name]])\r
return true\r
end\r
return ret\r
copy_changes(name, fields, cg)\r
worldedit.show_page(name, "worldedit_gui_flip")\r
\r
- minetest.chatcommands["/flip"].func(name, axis_values[gui_axis1[name]])\r
+ execute_worldedit_command("flip", name, axis_values[gui_axis1[name]])\r
return true\r
end\r
return ret\r
copy_changes(name, fields, cg)\r
worldedit.show_page(name, "worldedit_gui_rotate")\r
\r
- minetest.chatcommands["/rotate"].func(name, string.format("%s %s", axis_values[gui_axis1[name]], angle_values[gui_angle[name]]))\r
+ execute_worldedit_command("rotate", name,\r
+ axis_values[gui_axis1[name]] .. angle_values[gui_angle[name]])\r
return true\r
end\r
return ret\r
copy_changes(name, fields, cg)\r
worldedit.show_page(name, "worldedit_gui_orient")\r
\r
- minetest.chatcommands["/orient"].func(name, tostring(angle_values[gui_angle[name]]))\r
+ execute_worldedit_command("orient", name,\r
+ tostring(angle_values[gui_angle[name]]))\r
return true\r
end\r
return ret\r
name = "Fix Lighting",\r
privs = we_privs("fixlight"),\r
on_select = function(name)\r
- minetest.chatcommands["/fixlight"].func(name, "")\r
+ execute_worldedit_command("fixlight", name, "")\r
end,\r
})\r
\r
name = "Hide Region",\r
privs = we_privs("hide"),\r
on_select = function(name)\r
- minetest.chatcommands["/hide"].func(name, "")\r
+ execute_worldedit_command("hide", name, "")\r
end,\r
})\r
\r
\r
local n = worldedit.normalize_nodename(gui_nodename1[name])\r
if n then\r
- minetest.chatcommands["/suppress"].func(name, n)\r
+ execute_worldedit_command("suppress", name, n)\r
end\r
return true\r
end\r
\r
local n = worldedit.normalize_nodename(gui_nodename1[name])\r
if n then\r
- minetest.chatcommands["/highlight"].func(name, n)\r
+ execute_worldedit_command("highlight", name, n)\r
end\r
return true\r
end\r
name = "Restore Region",\r
privs = we_privs("restore"),\r
on_select = function(name)\r
- minetest.chatcommands["/restore"].func(name, "")\r
+ execute_worldedit_command("restore", name, "")\r
end,\r
})\r
\r
worldedit.show_page(name, "worldedit_gui_save_load")\r
\r
if fields.worldedit_gui_save_load_submit_save then\r
- minetest.chatcommands["/save"].func(name, gui_filename[name])\r
+ execute_worldedit_command("save", name, gui_filename[name])\r
elseif fields.worldedit_gui_save_load_submit_allocate then\r
- minetest.chatcommands["/allocate"].func(name, gui_filename[name])\r
+ execute_worldedit_command("allocate", name, gui_filename[name])\r
else --fields.worldedit_gui_save_load_submit_load\r
- minetest.chatcommands["/load"].func(name, gui_filename[name])\r
+ execute_worldedit_command("load", name, gui_filename[name])\r
end\r
return true\r
end\r
local n = worldedit.normalize_nodename(gui_nodename1[name])\r
if n then\r
local args = string.format("%s %s %s %s", gui_distance1[name], gui_distance2[name], gui_distance3[name], n)\r
- minetest.chatcommands["/"..submit].func(name, args)\r
+ execute_worldedit_command(submit, name, args)\r
end\r
return true\r
end\r
name = "Clear Objects",\r
privs = we_privs("clearobjects"),\r
on_select = function(name)\r
- minetest.chatcommands["/clearobjects"].func(name, "")\r
+ execute_worldedit_command("clearobjects", name, "")\r
end,\r
})\r