From 151afadf6cd2f16406af5eab4987f31adebc4e6a Mon Sep 17 00:00:00 2001 From: Starbeamrainbowlabs Date: Sun, 7 Feb 2021 02:59:19 +0000 Subject: [PATCH] //many: fix running commands that take no arguments --- worldeditadditions/utils/strings.lua | 5 +++++ worldeditadditions_commands/commands/meta/many.lua | 14 +++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/worldeditadditions/utils/strings.lua b/worldeditadditions/utils/strings.lua index 1caad5a..66acbf0 100644 --- a/worldeditadditions/utils/strings.lua +++ b/worldeditadditions/utils/strings.lua @@ -301,3 +301,8 @@ function worldeditadditions.makeseed(str) end return result end + +-- From http://lua-users.org/wiki/StringTrim +function worldeditadditions.trim(s) + return (s:gsub("^%s*(.-)%s*$", "%1")) +end diff --git a/worldeditadditions_commands/commands/meta/many.lua b/worldeditadditions_commands/commands/meta/many.lua index f50aa77..8dba870 100644 --- a/worldeditadditions_commands/commands/meta/many.lua +++ b/worldeditadditions_commands/commands/meta/many.lua @@ -26,11 +26,6 @@ local function explode(delim, str) end end --- From http://lua-users.org/wiki/StringTrim -local function trim(s) - return (s:gsub("^%s*(.-)%s*$", "%1")) -end - local function step(params) local start_time = worldeditadditions.get_ms_time() @@ -96,11 +91,16 @@ minetest.register_chatcommand("/many", { local times = {} local count, cmd_name, args = params_text:match("^(%d+)%s([^%s]+)%s(.+)$") - if not count then return false, "Error: Invalid syntax" end + if not count then + count, cmd_name = params_text:match("^(%d+)%s([^%s]+)$") + if not count then return false, "Error: Invalid syntax" end + end + if not args then args = "" end + args = worldeditadditions.trim(args) -- print("[many] count", count, "cmd_name", cmd_name, "args", args) count = tonumber(count) - cmd_name = trim(cmd_name):sub(2) -- Things start at 1, not 0 in Lua :-( + cmd_name = worldeditadditions.trim(cmd_name):sub(2) -- Things start at 1, not 0 in Lua :-( -- Check the command we're going to execute local cmd = minetest.chatcommands[cmd_name]