local API = require("api") API.createWebsocket("ws://befator.befatorinc.de:5000/banking") local id = os.getComputerID() local autehnticated = false local lastusr = 0 local lastpass = 0 local wpass = 0 local wuser = 0 local awaiting_inbox = false local motd = "Befator Inc." print(id) -- Funktion zum Empfangen und Verarbeiten von Nachrichten local function receiveMessages() while true do local success, messageObj = API.getMessage() if success then -- Beispiel für die Verwendung if messageObj.id == id or messageObj.id == -1 and messageObj.action == "displayMessage" then if messageObj.value2 == "message_count" then os.queueEvent("inbox_message_received", messageObj.value1, messageObj.value2, messageObj.value3) end print(messageObj.value1) if messageObj.value2 == "auth.success" then autehnticated = true wuser = API.username wpass = API.password end end if messageObj.action == "reauth" and autehnticated == true then API.sendMessage({ ["action"] = "reauth_server", ["value1"] = wuser, ["value2"] = wpass, ["id"] = id }) end if messageObj.id == id or messageObj.id == -1 and messageObj.action == "inbox" then os.queueEvent("inbox_message_received", messageObj.value1, messageObj.value2, messageObj.value3) end if messageObj.action == "motd" then motd = messageObj.value1 end if messageObj.id == id or messageObj.id == -1 and messageObj.action == "pm_inbox" then os.queueEvent("pm_inbox_message_received", messageObj.value1, messageObj.value2, messageObj.value3) end -- messageObj.(value) = value else print("WebSocket-Verbindung unterbrochen") end end end local function userInteraction() API.sendGetMOTD() sleep(0.2) while true do term.clear() term.setCursorPos(1, 1) print(motd) print(" ") if autehnticated == true then print("Authenticated!") print("As " .. wuser) print(" ") elseif autehnticated == false then print("Not Authenticated!") print("") print("") end print("What would you like to do?: login, register, logout, pay, balance, inbox, read, pms, pmread, sendpm") local indes = read() if indes == "login" then print("Username:") local username = io.read() print("Password (VISIBLE!):") local password = io.read() API.setCredentials(username, password) API.login() lastusr = username lastpass = password end if indes == "register" then print("Username:") local username = io.read() print("Password (VISIBLE!):") local password = io.read() API.setCredentials(username, password) API.register() end if indes == "logout" then API.logout() lastpass = 0 lastusr = 0 wpass = 0 wuser = 0 autehnticated = false print("Logged out!") end if indes == "pay" and autehnticated == true then print("To Username:") local dest = io.read() print("Amount:") local amount = io.read() API.pay(dest, amount) end if indes == "balance" and autehnticated == true then API.sendGetBalance() end if indes == "inbox" and autehnticated == true then API.sendGetInboxPointer() print("Send Message") local event, value1, value2, value3 = os.pullEvent("inbox_message_received") print(value2 .. " " .. value3) local value1 = value2 local value2 = value3 print("Received Queue") print(value1) print(value2) if value1 == "message_count" then local count = tonumber(value2) term.clear() term.setCursorPos(1, 1) local i = 0 for i = 1, count do API.sendGetInboxMessage(i) local event, value1, value2 = os.pullEvent("inbox_message_received") print(value2 .. " " .. value1) print("--------------------") end end end if indes == "pms" and autehnticated == true then API.sendGetPmInboxPointer() print("Send Message") local event, value1, value2, value3 = os.pullEvent("pm_inbox_message_received") local value1 = value2 local value2 = value3 if value1 == "pm_message_count" then local count = tonumber(value2) term.clear() term.setCursorPos(1, 1) local i = 0 for i = 1, count do API.sendGetPmInboxMessage(i) local event, value1, value2 = os.pullEvent("pm_inbox_message_received") print(value2 .. " " .. value1) print("--------------------") end end end if indes == "pmread" and autehnticated == true then print("Please type the Message id you would like to mark as Read: ") local pointer = read() API.markPmRead(pointer) end if indes == "read" and autehnticated == true then print("Please type the Message id you would like to mark as Read: ") local pointer = read() API.markRead(pointer) end if indes == "sendpm" and autehnticated == true then print("Destination: ") local dest = read() print("Message: ") local message = read() API.sendPmMessage(dest, message) print("Send") end print("Press enter to Continue!") read() end end -- Hauptprogramm if API.ws then print("WebSocket-Verbindung hergestellt") -- Sende eine Nachricht im gewünschten Format ---local id = 1234 -- Beispiel-ID ---API.sendMessage({ --- ["action"] = "update", --- ["status"] = true, --- ["id"] = id, ---}) -- Empfange Nachrichten in einer Schleife parallel.waitForAny(receiveMessages, userInteraction) -- Schließe die Verbindung am Ende ws.close() else print("Fehler beim Herstellen der WebSocket-Verbindung") end