修复添加数量限制出错问题
This commit is contained in:
@@ -56,18 +56,23 @@ local function parseItemRequirements(input)
|
|||||||
|
|
||||||
-- Split key-value pairs
|
-- Split key-value pairs
|
||||||
for pair in content:gmatch("[^,]+") do
|
for pair in content:gmatch("[^,]+") do
|
||||||
|
-- 支持JSON格式: "key":value
|
||||||
local key, value = pair:match("[\"']?(.-)[\"']?%s*:%s*(%d+)")
|
local key, value = pair:match("[\"']?(.-)[\"']?%s*:%s*(%d+)")
|
||||||
if key and value then
|
if key and value then
|
||||||
requirements[key] = tonumber(value)
|
requirements[key] = tonumber(value)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
-- Simple format: item:minCount
|
-- 只支持等号格式: item=count
|
||||||
for item in input:gmatch("%S+") do
|
for item in input:gmatch("%S+") do
|
||||||
local name, minCount = item:match("([^:]+):(%d+)")
|
-- 匹配等号格式: modid:itemid=count
|
||||||
|
local name, minCount = item:match("([^=]+)=(%d+)")
|
||||||
|
|
||||||
|
-- 如果匹配到等号格式
|
||||||
if name and minCount then
|
if name and minCount then
|
||||||
requirements[name] = tonumber(minCount)
|
requirements[name] = tonumber(minCount)
|
||||||
else
|
else
|
||||||
|
-- 没有等号,视为只有物品名
|
||||||
requirements[item] = 0 -- No minimum requirement
|
requirements[item] = 0 -- No minimum requirement
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -488,7 +493,7 @@ local function processCommand(cmd)
|
|||||||
local fluidsList = {}
|
local fluidsList = {}
|
||||||
for name, minAmount in pairs(task.fluids) do
|
for name, minAmount in pairs(task.fluids) do
|
||||||
if minAmount > 0 then
|
if minAmount > 0 then
|
||||||
table.insert(fluidsList, name..":"..minAmount.."mB")
|
table.insert(fluidsList, name.."="..minAmount.."mB")
|
||||||
else
|
else
|
||||||
table.insert(fluidsList, name)
|
table.insert(fluidsList, name)
|
||||||
end
|
end
|
||||||
@@ -502,7 +507,7 @@ local function processCommand(cmd)
|
|||||||
local itemsList = {}
|
local itemsList = {}
|
||||||
for name, minCount in pairs(task.items) do
|
for name, minCount in pairs(task.items) do
|
||||||
if minCount > 0 then
|
if minCount > 0 then
|
||||||
table.insert(itemsList, name..":"..minCount)
|
table.insert(itemsList, name.."="..minCount)
|
||||||
else
|
else
|
||||||
table.insert(itemsList, name)
|
table.insert(itemsList, name)
|
||||||
end
|
end
|
||||||
@@ -533,13 +538,11 @@ local function processCommand(cmd)
|
|||||||
print("Available commands:")
|
print("Available commands:")
|
||||||
print("add <source> <destination> [items] - Add item transfer task")
|
print("add <source> <destination> [items] - Add item transfer task")
|
||||||
print(" Items format:")
|
print(" Items format:")
|
||||||
print(" Simple: item1[:minCount] item2[:minCount] ...")
|
print(" Simple: item1[=minCount] item2[=minCount] ...")
|
||||||
print(" JSON-like: {\"item1\":minCount, \"item2\":minCount}")
|
|
||||||
print(" Set minCount to 0 to transfer all available items")
|
print(" Set minCount to 0 to transfer all available items")
|
||||||
print("addfluid <source> <destination> [fluids] - Add fluid transfer task")
|
print("addfluid <source> <destination> [fluids] - Add fluid transfer task")
|
||||||
print(" Fluids format:")
|
print(" Fluids format:")
|
||||||
print(" Simple: fluid1[:minAmount] fluid2[:minAmount] ...")
|
print(" Simple: fluid1[=minAmount] fluid2[:minAmount] ...")
|
||||||
print(" JSON-like: {\"fluid1\":minAmount, \"fluid2\":minAmount}")
|
|
||||||
print(" Set minAmount to 0 to transfer all available fluid")
|
print(" Set minAmount to 0 to transfer all available fluid")
|
||||||
print("list - List all tasks")
|
print("list - List all tasks")
|
||||||
print("remove <index> - Remove task")
|
print("remove <index> - Remove task")
|
||||||
|
|||||||
Reference in New Issue
Block a user