Advertisement
Marum

Mermegold V4 Admin Terminal

Mar 25th, 2025 (edited)
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.94 KB | None | 0 0
  1. -- Admin Terminal
  2.  
  3. -----------------------Params
  4. local bankServerID
  5. local adminPassword
  6.  
  7. local text_error_noconnection = "Can't connect to server"
  8. --------------------------
  9. local modem = peripheral.find("modem")
  10.  
  11. while (modem == nil) do
  12. modem = peripheral.find("modem")
  13. if (modem == nil) then
  14. term.setBackgroundColor(colors.red)
  15. term.setTextColor(colors.white)
  16. term.clear()
  17. term.setCursorPos(1,1)
  18. print("Ender modem required. Please connect a modem to continue...")
  19. os.pullEvent("peripheral")
  20. end
  21. end
  22.  
  23. peripheral.find("modem", rednet.open)
  24.  
  25. os.loadAPI("bankapi.lua")
  26. local serverData = bankapi.getServerData()
  27. local lang = serverData.lang
  28. --------------------------
  29.  
  30. local localization = {
  31. en={
  32. create_account = "Create new account",
  33. perform_transaction = "Perform transaction",
  34. check_balance = "Check balance",
  35. delete_account = "Delete account",
  36. record = "Transaction Logs",
  37. assign_card = "Link account to card/phone",
  38. install_app = "Install application on phone",
  39. logout = "Exit",
  40. new_account_steps = {"Username", "Representative color"},
  41. transaction_steps = {"Sender account", "Recipient account", "Amount", "Transaction description"},
  42. delete_account_steps = {"Cuenta a eliminar"},
  43. check_log = {"Account to check"},
  44. account_to_link = {"Account to link"},
  45. linked_to = "Card linked to ",
  46. insert_card = "Please insert disk or phone into disk drive",
  47. installed = "Application installed!",
  48. insert_pocket = "Please insert phone into disk drive",
  49. confirm_deletion = "Are you sure you want to delete this account?"
  50. },
  51. es={
  52. create_account = "Crear nueva cuenta",
  53. perform_transaction = "Realizar transaccion",
  54. check_balance = "Consultar balance",
  55. delete_account = "Borrar cuenta",
  56. record = "Historial de transacciones",
  57. assign_card = "Vincular cuenta a tarjeta/movil",
  58. install_app = "Instalar aplicacion en movil",
  59. logout = "Salir",
  60. new_account_steps = {"Nombre del usuario", "Color representativo"},
  61. transaction_steps = {"Cuenta a proveer los fondos", "Cuenta a recibir los fondos", "Monto a enviar", "Descripcion de la transaccion"},
  62. delete_account_steps = {"Cuenta a eliminar"},
  63. check_log = {"Cuenta a consultar"},
  64. account_to_link = {"Cuenta a vincular"},
  65. linked_to = "Tarjeta asignada a ",
  66. insert_card = "Por favor inserte un disco o un movil en la disquetera",
  67. installed = "Aplicacion instalada!",
  68. insert_pocket = "Por favor inserte un movil en la disquetera",
  69. confirm_deletion = "Estas seguro que quieres borrar esta cuenta?"
  70. },
  71. de={
  72. create_account = "Neues Konto erstellen",
  73. perform_transaction = "Transaktion Durchfuehren",
  74. check_balance = "Kontostand ueberpruefen",
  75. delete_account = "Konto loeschen",
  76. record = "Transaktions Logs",
  77. assign_card = "Verbinde ein Konto mit eine/r/m Karte/Telefon",
  78. install_app = "Installiere die Anwendung auf dem Telefon",
  79. logout = "Ausloggen",
  80. new_account_steps = {"Nutzername", "Anzeige Farbe"},
  81. transaction_steps = {"Sender Konto", "Empfaenger Konto", "Betrag", "Transaktions Beschreibung"},
  82. delete_account_steps = {"Konto zum Loeschen"},
  83. check_log = {"Konto zum ueberpruefen"},
  84. account_to_link = {"Konto zum Verbinden"},
  85. linked_to = "Karte verbunden mit ",
  86. insert_card = "Bitte legen Sie eine Disk oder ein Telefon in das Laufwerk ein",
  87. installed = "Anwendung installiert!",
  88. insert_pocket = "Bitte lege ein Telefon in das Laufwerk ein",
  89. confirm_deletion = "Sind Sie sicher, dass Sie dieses Konto löschen möchten?"
  90. }
  91. }
  92.  
  93. -- Password protection
  94. local pass = ""
  95. repeat
  96. term.setBackgroundColor(colors.black)
  97. term.setTextColor(colors.yellow)
  98. term.clear()
  99. local scrW, scrH = term.getSize()
  100. local title = "Mermegold"
  101. term.setCursorPos(scrW/2-string.len(title)/2, scrH/2)
  102. term.write(title)
  103. term.setCursorPos(scrW/2-string.len(title)/2, scrH/2+1)
  104. pass = read("*")
  105. until (pass == serverData.terminalPassword)
  106.  
  107. while true do -- Second while to allow the use of breaks as continues
  108. while true do
  109.  
  110. local command = bankapi.optionMenu("Mermegold", {
  111. {option = "new",
  112. text = localization[lang].create_account},
  113. {option = "transaction",
  114. text = localization[lang].perform_transaction},
  115. {option = "balance",
  116. text = localization[lang].check_balance},
  117. {option = "delete",
  118. text = localization[lang].delete_account},
  119. {option = "log",
  120. text = localization[lang].record},
  121. {option = "assigncard",
  122. text = localization[lang].assign_card},
  123. {option = "installapp",
  124. text = localization[lang].install_app},
  125. {option = "logout",
  126. text = localization[lang].logout},
  127. }, 2, 36)
  128.  
  129. if (command == "new") then
  130. local steps = localization[lang].new_account_steps
  131. local name = bankapi.inputTextScreen(steps, 1, 25)
  132. if (name == nil) then break end
  133. local color = bankapi.selectColorScreen(steps, 2)
  134. if (color == nil) then break end
  135.  
  136. local success, message = bankapi.newAccount(name, 0, color)
  137. bankapi.responseScreen(success, message)
  138.  
  139. elseif (command == "transaction") then
  140. local tempClientData = bankapi.getClientData()
  141. local steps = localization[lang].transaction_steps
  142. local from = bankapi.selectAccountScreen(steps, 1, 0)
  143. if (from == nil) then break end
  144. local to = bankapi.selectAccountScreen(steps, 2, from)
  145. if (to == nil) then break end
  146. local amount = bankapi.inputNumberScreen(steps, 3, tempClientData[from].balance)
  147. if (amount == nil) then break end
  148. local description = bankapi.inputTextScreen(steps, 4, 100)
  149. if (description == nil) then break end
  150.  
  151. local success, message = bankapi.transaction(from, to, amount, description)
  152. bankapi.responseScreen(success, message)
  153.  
  154. elseif (command == "delete") then
  155. local steps = localization[lang].delete_account_steps
  156. local deletion = bankapi.selectAccountScreen(steps, 1, 0)
  157. if (deletion == nil) then break end
  158.  
  159. local tempClientData = bankapi.getClientData()
  160. local accept = bankapi.confirmScreen({localization[lang].confirm_deletion}, {
  161. name = tempClientData[deletion].name,
  162. key = deletion,
  163. balance = tempClientData[deletion].balance
  164. })
  165. if (not accept) then break end
  166.  
  167. local success, message = bankapi.deleteAccount(deletion)
  168. bankapi.responseScreen(success, message)
  169.  
  170. elseif (command == "log") then
  171. local tempClientData = bankapi.getClientData()
  172. local steps = localization[lang].check_log
  173. local account = bankapi.selectAccountScreen(steps, 1, 0)
  174. if (account == nil) then break end
  175. bankapi.transactionLogScreen(account)
  176.  
  177. elseif (command == "balance") then
  178.  
  179. local account = bankapi.selectAccountScreen(localization[lang].check_log, 1, 0)
  180. if (account == nil) then break end
  181. bankapi.showBalance(account)
  182.  
  183. elseif (command == "assigncard") then
  184. if (fs.exists("disk")) then
  185. local account = bankapi.selectAccountScreen(localization[lang].account_to_link, 1, 0)
  186. if (account == nil) then break end
  187. local tempClientData = bankapi.getClientData()
  188. local name = tempClientData[account].name
  189. local f = fs.open("disk/mermegold.txt", "w")
  190. f.write(account)
  191. f.close()
  192. local diskdrive = peripheral.find("drive")
  193. diskdrive.setDiskLabel("Mermegold | "..name)
  194. bankapi.successScreen(localization[lang].linked_to..name)
  195. else
  196. bankapi.errorScreen(localization[lang].insert_card)
  197. end
  198.  
  199. elseif (command == "installapp") then
  200. if (fs.exists("disk")) then
  201. term.setBackgroundColor(colors.black)
  202. term.setTextColor(colors.white)
  203. term.setCursorPos(1,1)
  204. term.clear()
  205. print("Installing Mermegold app in inserted phone...")
  206. shell.run("delete disk/startup.lua")
  207. shell.run("pastebin get GpTzmZts disk/startup.lua")
  208. shell.run("delete disk/bankapi.lua")
  209. shell.run("pastebin get wSKUaGG0 disk/bankapi.lua")
  210. shell.run("delete disk/mermeapp.lua")
  211. shell.run("pastebin get Nc59jRaa disk/mermeapp.lua")
  212. bankapi.successScreen(localization[lang].installed)
  213. else
  214. bankapi.errorScreen(localization[lang].insert_pocket)
  215. end
  216.  
  217. elseif (command == "logout") then
  218. os.reboot()
  219. end
  220. end
  221. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement