run_command: fix crashes

...oops, should have tested that last commit
This commit is contained in:
Starbeamrainbowlabs 2024-09-13 02:58:24 +01:00
parent 0561e02845
commit 48af3e3127
No known key found for this signature in database
GPG Key ID: 1BE5172E637709C2

@ -17,7 +17,7 @@ local human_size = wea_c.format.human_size
-- @param tbl_event table Internal event table used when calling `worldeditadditions_core.emit(event_name, tbl_event)`. -- @param tbl_event table Internal event table used when calling `worldeditadditions_core.emit(event_name, tbl_event)`.
-- @returns nil -- @returns nil
local function run_command_stage2(player_name, func, parse_result, tbl_event) local function run_command_stage2(player_name, func, parse_result, tbl_event)
wea_c.emit("pre-execute", tbl_event) wea_c:emit("pre-execute", tbl_event)
local success, result_message = func(player_name, wea_c.table.unpack(parse_result)) local success, result_message = func(player_name, wea_c.table.unpack(parse_result))
if result_message then if result_message then
-- TODO: If we were unsuccessful, then colour the message red -- TODO: If we were unsuccessful, then colour the message red
@ -26,7 +26,7 @@ local function run_command_stage2(player_name, func, parse_result, tbl_event)
tbl_event.success = success tbl_event.success = success
tbl_event.result = result_message tbl_event.result = result_message
wea_c.emit("post-execute", tbl_event) wea_c:emit("post-execute", tbl_event)
end end
--- Command execution pipeline: before `paramtext` parsing but after validation. --- Command execution pipeline: before `paramtext` parsing but after validation.
@ -105,7 +105,7 @@ local function run_command(cmdname, options, player_name, paramtext)
player_name = player_name player_name = player_name
} }
wea_c.emit("pre-parse", tbl_event) wea_c:emit("pre-parse", tbl_event)
local parse_result = { options.parse(paramtext) } local parse_result = { options.parse(paramtext) }
local success = table.remove(parse_result, 1) local success = table.remove(parse_result, 1)
@ -115,14 +115,14 @@ local function run_command(cmdname, options, player_name, paramtext)
end end
tbl_event.paramargs = parse_result tbl_event.paramargs = parse_result
weac.emit("post-parse", tbl_event) wea_c:emit("post-parse", tbl_event)
if options.nodes_needed then if options.nodes_needed then
local potential_changes = options.nodes_needed(player_name, wea_c.table.unpack(parse_result)) local potential_changes = options.nodes_needed(player_name, wea_c.table.unpack(parse_result))
tbl_event.potential_changes = potential_changes tbl_event.potential_changes = potential_changes
wea_c.emit("post-nodesneeded", tbl_event) wea_c:emit("post-nodesneeded", tbl_event)
if type(potential_changes) ~= "number" then if type(potential_changes) ~= "number" then
worldedit.player_notify(player_name, "Error: The command '"..cmdname.."' returned a "..type(potential_changes).." instead of a number when asked how many nodes might be changed. Abort. This is a bug.") worldedit.player_notify(player_name, "Error: The command '"..cmdname.."' returned a "..type(potential_changes).." instead of a number when asked how many nodes might be changed. Abort. This is a bug.")