Marlingaming

CC Tweaked Banking Server - banking_public2

Jan 28th, 2022 (edited)
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. local Contact = {}
  2. local Protocol = "1200"
  3.  
  4. function Balance(Account,t,Amount)
  5. local file = fs.open(fs.combine("accounts/",Account),"a")
  6. local Bal = file.readLine()
  7. if Bal + (Amount * t) >= 0 then
  8. file.setCursorPos(1,1)
  9. file.clear()
  10. Bal = Bal + (Amount * t)
  11. file.write(Bal)
  12. file.close()
  13. return("success!")
  14. else
  15. file.close()
  16. return("failed")
  17. end
  18. end
  19.  
  20. function Transfer(Account,Amount,Target)
  21. local TarChange = Amount * -1
  22. local Acc1 = fs.open(fs.combine("accounts/",Account),"a")
  23. local Acc2 = fs.open(fs.combine("accounts/",Target),"a")
  24. local BaseAcc = textutils.unserialize(Acc1.readAll())
  25. local TarAcc = textutils.unserialize(Acc2.readAll())
  26. if BaseAcc + Amount > 0 and TarAcc + TarChange > 0 then
  27. BaseAcc = BaseAcc + Amount
  28. TarAcc = TarAcc + TarChange
  29. Acc1.clear()
  30. Acc1.write(BaseAcc)
  31. Acc1.close()
  32. Acc2.clear()
  33. Acc2.write(TarAcc)
  34. Acc2.close()
  35. return("success!")
  36. else
  37. Acc1.close()
  38. Acc2.close()
  39. return("failed")
  40. end
  41. end
  42.  
  43. function Loop()
  44. local protocol, message, id
  45. repeat
  46. protocol, message, id = rednet.receive()
  47. until protocol == Protocol
  48. Details = {message}
  49. if Details[4] == "withdraw" then
  50. rednet.send(id,Balance(Details[1],-1,Details[5]),Protocol)
  51. elseif Details[4] == "deposit" then
  52. rednet.send(id,Balance(Details[1],1,Details[5]),Protocol)
  53. elseif Details[4] == "transfer" then
  54. rednet.sent(id,Transfer(Details[1],Details[5],Details[6]),Protocol)
  55. elseif Details[4] == "createAccount" then
  56. local D = fs.open(fs.combine("accounts/",Details[1]),"w")
  57. D.writeLine(0)
  58. D.close()
  59. elseif Details[4] == "details" then
  60. local file = fs.open(fs.combine("accounts",Details[1]),"r")
  61. rednet.send(id,textutils.unserialize(file.readLine()),Protocol)
  62. elseif Details[4] == "Login_Request" then
  63. local R = true
  64. if fs.exists(fs.combine("accounts",Details[1])) then
  65. R = true
  66. else
  67. R = false
  68. end
  69. rednet.send(id,R,Protocol)
  70. end
  71. Loop()
  72. end
  73. if fs.exists("accounts") then
  74.  
  75. else
  76. fs.makeDir("accounts")
  77. end
  78. rednet.open("back")
  79. rednet.host("1200","banking_public2_server_1")
  80.  
  81. Loop()
Add Comment
Please, Sign In to add comment