From 1abd6b4165804b51dcc9f683f5e6cb3672b3b74d Mon Sep 17 00:00:00 2001 From: MayaTheShy Date: Mon, 16 Mar 2026 22:09:04 -0400 Subject: [PATCH] Add error handling for network order and craft message transmissions --- inventoryManager.lua | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/inventoryManager.lua b/inventoryManager.lua index 6645009..ad0db89 100644 --- a/inventoryManager.lua +++ b/inventoryManager.lua @@ -3256,15 +3256,25 @@ local function main() while true do local event, side, channel, replyChannel, message, distance = os.pullEvent("modem_message") if channel == ORDER_CHANNEL and type(message) == "table" then + local handlerOk, handlerErr = pcall(function() if message.type == "order" and message.itemName and message.amount then print(string.format("[NET] Order: %s x%d", message.itemName, message.amount)) - local success = orderItem(message.itemName, message.amount, message.dropperName) - networkModem.transmit(replyChannel, ORDER_CHANNEL, { - type = "order_result", - success = success, - message = statusMessage, - color = statusColor, - }) + local pok, success = pcall(orderItem, message.itemName, message.amount, message.dropperName) + if not pok then + print("[NET] orderItem crashed: " .. tostring(success)) + success = false + statusMessage = "Order error" + statusColor = colors.red + statusTimer = 5 + end + pcall(function() + networkModem.transmit(replyChannel, ORDER_CHANNEL, { + type = "order_result", + success = success, + message = statusMessage, + color = statusColor, + }) + end) pcall(broadcastState) elseif message.type == "scan" then print("[NET] Scan request from client") @@ -3316,15 +3326,21 @@ local function main() err = tostring(ok) ok = false end - networkModem.transmit(replyChannel, ORDER_CHANNEL, { - type = "craft_result", - success = ok, - error = err, - }) + pcall(function() + networkModem.transmit(replyChannel, ORDER_CHANNEL, { + type = "craft_result", + success = ok, + error = err, + }) + end) smelterNeedsRedraw = true needsRedraw = true pcall(broadcastState) end + end) -- end pcall handler + if not handlerOk then + print("[NET] Handler error: " .. tostring(handlerErr)) + end end end end