Fix crash with nil messages

This commit is contained in:
Herr Katze
2026-02-01 16:32:03 -08:00
parent 94683e34bf
commit b9db35ec9c
3 changed files with 53 additions and 35 deletions

View File

@@ -24,6 +24,11 @@ local function interactWithCard(userUUID, mode, money)
sleep(30)
--shell.run("reboot")
end
if not message then
print("WTF!? I got a rednet message with no data!?")
print("Rebooting...")
sleep(5)
end
if message.type == "account_data" and message.cardId == cardUUID then
local money = message.balance
local playerUUID = message.uuid

View File

@@ -3,12 +3,12 @@
rednet.open("back")
local function interactWithCard(userUUID, mode, money)
if mode == "updateBalance" then
rednet.broadcast({
uuid = userUUID,
amount = money,
type = "set"
}, "machineBalanceModifier")
if mode == "updateBalance" then
rednet.broadcast({
uuid = userUUID,
amount = money,
type = "set"
}, "machineBalanceModifier")
end
if mode == "getBalance" then
@@ -25,6 +25,11 @@ local function interactWithCard(userUUID, mode, money)
sleep(30)
--shell.run("reboot")
end
if not message then
print("WTF!? I got a rednet message with no data!?")
print("Rebooting...")
sleep(5)
end
if message.type == "account_data" and message.cardId == cardUUID then
local money = message.balance
local playerUUID = message.uuid
@@ -37,6 +42,7 @@ local function interactWithCard(userUUID, mode, money)
end
sleep(0.25)
nfc = peripheral.wrap("bottom")
@@ -120,4 +126,4 @@ h.write(house)
h.close()
--print("If removing your card do it now")
sleep(2)
os.reboot()
os.reboot()

View File

@@ -1,40 +1,47 @@
--slot2
rednet.open("back")
local function interactWithCard(userUUID, mode, money)
if mode == "updateBalance" then
rednet.broadcast({
uuid = userUUID,
amount = money,
type = "set"
}, "machineBalanceModifier")
end
if mode == "updateBalance" then
rednet.broadcast({
uuid = userUUID,
amount = money,
type = "set"
}, "machineBalanceModifier")
end
if mode == "getBalance" then
local _, _, cardUUID = os.pullEvent("nfc_data")
rednet.broadcast({
card = cardUUID
}, "getAccountData")
if mode == "getBalance" then
local _, _, cardUUID = os.pullEvent("nfc_data")
rednet.broadcast({
card = cardUUID
}, "getAccountData")
while true do
local id, message = rednet.receive("server_response", 10)
if not id then
print("the server is down")
print("please ping @minecartchris")
sleep(30)
--shell.run("reboot")
end
if message.type == "account_data" and message.cardId == cardUUID then
local money = message.balance
local playerUUID = message.uuid
local username = message.username
return money, playerUUID, username
end
while true do
local id, message = rednet.receive("server_response", 10)
if not id then
print("the server is down")
print("please ping @minecartchris")
sleep(30)
--shell.run("reboot")
end
if not message then
print("WTF!? I got a rednet message with no data!?")
print("Rebooting...")
sleep(5)
end
if message.type == "account_data" and message.cardId == cardUUID then
local money = message.balance
local playerUUID = message.uuid
local username = message.username
return money, playerUUID, username
end
end
end
end
end
os.pullEvent= function(...)
while true do
local t = table.pack(os.pullEventRaw(...))
@@ -163,4 +170,4 @@ end
shell.execute("clear")
while true do
run()
end
end