2021-06-30 15:36:04 +00:00
function worldeditadditions_core . chatcommand_handler ( cmd_name , name , param )
2021-11-07 13:35:40 +00:00
local def = assert ( worldedit.registered_commands [ cmd_name ] , " Error: Failed to locate worldedit command definition for command ' " .. name .. " ' (this is probably a bug). " )
2021-06-30 15:36:04 +00:00
if def.require_pos == 2 then
local pos1 , pos2 = worldedit.pos1 [ name ] , worldedit.pos2 [ name ]
if pos1 == nil or pos2 == nil then
worldedit.player_notify ( name , " no region selected " )
return
end
elseif def.require_pos == 1 then
local pos1 = worldedit.pos1 [ name ]
if pos1 == nil then
worldedit.player_notify ( name , " no position 1 selected " )
return
end
end
local parsed = { def.parse ( param ) }
local success = table.remove ( parsed , 1 )
if not success then
worldedit.player_notify ( name , parsed [ 1 ] or " invalid usage " )
return
end
if def.nodes_needed then
local count = def.nodes_needed ( name , unpack ( parsed ) )
safe_region ( name , count , function ( )
local success , msg = def.func ( name , unpack ( parsed ) )
if msg then
minetest.chat_send_player ( name , msg )
end
end )
else
-- no "safe region" check
local success , msg = def.func ( name , unpack ( parsed ) )
if msg then
minetest.chat_send_player ( name , msg )
end
end
end