From 72d86446d015479eb32d60765315f4a221afb4eb Mon Sep 17 00:00:00 2001 From: Rivulet Date: Sun, 5 Apr 2026 00:58:39 +0000 Subject: [PATCH] Add remotedbserver.lua --- remotedbserver.lua | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 remotedbserver.lua diff --git a/remotedbserver.lua b/remotedbserver.lua new file mode 100644 index 0000000..f275912 --- /dev/null +++ b/remotedbserver.lua @@ -0,0 +1,36 @@ +if not fs.exists("data.db") then + local file = fs.open("data.db", "w") + file.write("{}") + file.close() +end +local file = fs.open("data.db","r+") +local eplib = require("entrypointlib") +if not file then error("failed to open db file") end + +local function readTable() + file.seek("set") + return textutils.unserialise(file.readAll() or "{}") or {} +end + +local function writeTable(t) + file.seek("set") + file.write(textutils.serialise(t)) + file.flush() +end + +local function receive() + while true do + sleep(0) + local _,msg,id = os.pullEvent("network_packet") + if msg.proto == "getTable" then + eplib.send({proto = "resp", table = readTable()}, id) + print("sent table to "..tostring(id)) + elseif msg.proto == "setTable" then + writeTable(msg.table) + print("updated table from "..tostring(id)) + eplib.send({proto="OK"},id) + end + end +end + +parallel.waitForAny(eplib.loop,receive)