Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- modem = peripheral.find("modem")
- if not modem then
- print("No modem")
- end
- modem.open(1024)
- function getMoney(user, key)
- if user == nil or key == nil then
- return "Failed."
- end
- if fs.exists("account/"..user) then
- account = fs.open("account/"..user, "r")
- line = account.readLine()
- line2 = account.readLine()
- account.close()
- else
- return "Failed"
- end
- if key == line then
- return line2
- else
- return "Failed"
- end
- end
- function transfer(give, take, gkey, amountf)
- if give == nil or take == nil or gkey == nil or amountf == nil then
- return "Failed."
- end
- if not fs.exists("account/"..give) or not fs.exists("account/"..take) then
- return "Failed."
- end
- giverf = fs.open("account/"..give, "r")
- givekey = giverf.readLine()
- giveramount = giverf.readLine()
- giverf.close()
- takef = fs.open("account/"..take, "r")
- takekey = takef.readLine()
- takeramount = takef.readLine()
- takef.close()
- if amountf > giveramount then
- return "Not enough money."
- end
- if gkey == givekey then
- newamountg = giveramount - amountf
- newamountf = takeramount + amountf
- giverf = fs.open("account/"..give, "w")
- giverf.writeLine(givekey)
- giverf.writeLine(newamountg)
- giverf.close()
- takef = fs.open("account/"..take, "w")
- takef.writeLine(takekey)
- takef.writeLine(newamountf)
- takef.close()
- return "Completed!"
- else
- return "Failed."
- end
- end
- function makeKey()
- a = math.random(0, 9)
- b = math.random(0, 9)
- c = math.random(0, 9)
- d = math.random(0, 9)
- e = math.random(0, 9)
- f = math.random(0, 9)
- g = math.random(0, 9)
- h = math.random(0, 9)
- i = math.random(0, 9)
- j = math.random(0, 9)
- newkey = a..b..c..d..e..f..g..h..i..j
- return newkey
- end
- function newUser(user, key)
- d = fs.exists("account/"..user)
- if d == false then
- file = fs.open("account/"..user, "w")
- file.writeLine(key)
- file.writeLine(0)
- file.close()
- return "Completed"
- else
- return "UE"
- end
- end
- function receive()
- event = {os.pullEvent("modem_message")}
- return event[5]
- end
- function broadcast(message_trans)
- modem.transmit(1024, 1024, message_trans)
- end
- while true do
- mes = receive()
- request = textutils.unserialise(mes)
- if request["type"] == "getmoney" then
- money = getMoney(request.user, request.key)
- broadcast(money)
- elseif request.type == "newuser" then
- newkey = makeKey()
- result = newUser(request.target, newkey)
- newac = {}
- newac["result"] = result
- newac["key"] = newkey
- broadcast(textutils.serialize(newac))
- elseif request["type"] == "transfer" then
- result = transfer(request.user, request.target, request.key, request.amount)
- broadcast(result)
- end
- end
Add Comment
Please, Sign In to add comment