This repository has been archived on 2025-02-16. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
cctweaked_banking/client.lua
2025-01-29 19:38:28 +01:00

204 lines
6.8 KiB
Lua

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