Advertisement
Marum

Mermegold V4 Mermeapp

Mar 25th, 2025 (edited)
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.75 KB | None | 0 0
  1. -- Mobile app
  2.  
  3. os.loadAPI("bankapi.lua")
  4.  
  5. local modemSide = "back"
  6.  
  7. local modem = peripheral.find("modem")
  8.  
  9. if (modem == nil) then
  10. while (true) do
  11. shell.run("equip")
  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("This app needs an Ender Modem. This app will auto-equip an Ender Modem from your inventory.")
  19. print("")
  20. print("Retrying in")
  21. for i=1, 5 do
  22. term.write(6-i.."...")
  23. sleep(1)
  24. end
  25. print("Attempting auto-equip")
  26. sleep(1)
  27. else
  28. os.reboot()
  29. end
  30. end
  31. end
  32.  
  33. peripheral.find("modem", rednet.open)
  34. local serverData = bankapi.getServerData()
  35. local lang = serverData.lang
  36.  
  37. local currentAccount = 0
  38.  
  39. local localization = {
  40. en={
  41. welcome="Welcome!",
  42. unregistered={"Please register","this device with","a Mermegold","employee"},
  43. login = "Log In",
  44. info = "What is Mermegold",
  45. info_screen = {
  46. "Welcome to Mermegold!",
  47. "",
  48. "With your Mermegold card",
  49. "you won't need to have",
  50. "money on you ever again. ",
  51. "You will be able to make",
  52. "remote transactions and",
  53. "have a full movement log.",
  54. "",
  55. "You can also install",
  56. "automated store clerks at",
  57. "your shops with catalogues",
  58. "and automatic checkout.",
  59. "",
  60. "Payments will end up in",
  61. "your account. No more",
  62. "shuffling through chests",
  63. "to collect your payments!"
  64. },
  65. create_account = "How to make an account",
  66. create_account_screen = {
  67. "","","","","","","",
  68. "To make an account,",
  69. "contact your local",
  70. "Mermegold employee and",
  71. "arrange a meeting.",
  72. "You will open an account",
  73. "together at the bank."
  74. },
  75. check_balance = "Balance",
  76. perform_transaction = "Transaction",
  77. history = "Log",
  78. logout = "Exit",
  79. transaction_instructions = {"Recipient account", "Amount to send", "Description"}
  80. },
  81. es={
  82. welcome="Bienvenido!",
  83. unregistered={"Por favor registre","el dispositivo","con un empleado","de Mermegold"},
  84. login = "Ingresar",
  85. info = "Que es Mermegold",
  86. create_account = "Como crear una cuenta",
  87. info_screen = {
  88. "Bienvenido a Mermegold!",
  89. "",
  90. "Con tu tarjeta mermegold,",
  91. "no tendras que llevar",
  92. "dinero encima nunca mas.",
  93. "Podras hacer transacciones",
  94. "remotas y tendras un",
  95. "historial completo.",
  96. "",
  97. "Podras poner maquinas en",
  98. "tu local con catalogos",
  99. "que calculen el total de",
  100. "forma automatica, y todos",
  101. "los pagos iran a tu",
  102. "cuenta. No mas revolver",
  103. "cofres para recolectar",
  104. "pagos!"
  105. },
  106. create_account_screen = {
  107. "",
  108. "",
  109. "Para hacerse una cuenta,",
  110. "contactese con un empleado",
  111. "de Mermegold y arregle una",
  112. "cita. Abriran juntos la",
  113. "cuenta en el banco."
  114. },
  115. check_balance = "Balance",
  116. perform_transaction = "Transaccion",
  117. history = "Historial",
  118. logout = "Exit",
  119. transaction_instructions = {"Cuenta a recibir los fondos", "Monto a enviar", "Descripcion"}
  120. },
  121. de={
  122. welcome="Willkommen!",
  123. unregistered={"Bitte melde","dieses Geraet mit","einem Mermegold","Mitarbeiter an"},
  124. login = "Anmelden",
  125. info = "Was ist Mermegold",
  126. info_screen = {
  127. "Willkommen bei Mermegold!",
  128. "",
  129. "Mit ihrer Mermegold Karte",
  130. "brauchst du nie wieder",
  131. "geld dabei zu haben. ",
  132. "Du wirst in der Lage sein",
  133. "Transaktionen ferngesteuert mit",
  134. "vollstaendigen Log zu erledigen.",
  135. "",
  136. "Außerdem koennen Sie",
  137. "automatisierte shop clerks",
  138. "mit katalogen und automatischem",
  139. "checkout an ihren shops installieren.",
  140. "",
  141. "Zahlungen werden automatisch in",
  142. "Ihrem Konto landen ",
  143. "ohne das sie mueselig durch",
  144. "Kisten suchen muessen"
  145. },
  146. create_account = "Wie erstelle ich ein Konto?",
  147. create_account_screen = {
  148. "", "", "", "", "", "", "",
  149. "Um ein Konto zu eröffnen,",
  150. "wenden Sie sich an eine*n",
  151. "Mermegold-Mitarbeiter*in",
  152. "und vereinbaren Sie einen Termin.",
  153. "Das Konto wird gemeinsam",
  154. "in der Bank eröffnet."
  155. }
  156.  
  157. check_balance = "Kontostandt",
  158. perform_transaction = "Transaktion",
  159. history = "Log",
  160. logout = "Abmelden",
  161. transaction_instructions = {"Empfaenger Konto", "Zu Sendender Betrag", "Beschreibung"}
  162. },
  163. }
  164.  
  165.  
  166. if (fs.exists("mermegold.txt")) then
  167. local f = fs.open("mermegold.txt", "r")
  168. if (f ~= nil) then
  169. local value = f.readLine()
  170. if (value ~= nil) then
  171. local tempClientData = bankapi.getClientData()
  172. if (tempClientData[value] ~= nil) then
  173. currentAccount = value
  174. end
  175. end
  176. end
  177. end
  178.  
  179. while true do
  180. while true do
  181. local tempClientData = bankapi.getClientData()
  182. local command
  183. if (tempClientData[currentAccount] == nil) then -- Guest screen
  184. command = bankapi.optionMenu(localization[lang].welcome, {
  185. [1] = {
  186. ["option"] = "login",
  187. ["text"] = localization[lang].login},
  188. [2] = {
  189. ["option"] = "info",
  190. ["text"] = localization[lang].info},
  191. [3] = {
  192. ["option"] = "createaccount",
  193. ["text"] = localization[lang].create_account},
  194. })
  195.  
  196. if (command == "login") then
  197. local accept = bankapi.confirmScreen(localization[lang].unregistered)
  198. if (accept) then
  199. os.reboot()
  200. end
  201. elseif (command == "info") then
  202. bankapi.textScreen(localization[lang].info_screen)
  203. elseif (command == "createaccount") then
  204. bankapi.textScreen(localization[lang].create_account_screen)
  205. end
  206. else
  207. local line = string.rep(string.char(140), 3)
  208. command = bankapi.optionMenu(line.." "..tempClientData[currentAccount].name.." "..line, {
  209. [1] = {
  210. ["option"] = "balance",
  211. ["text"] = localization[lang].check_balance},
  212. [2] = {
  213. ["option"] = "transaction",
  214. ["text"] = localization[lang].perform_transaction},
  215. [3] = {
  216. ["option"] = "log",
  217. ["text"] = localization[lang].history},
  218. [4] = {
  219. ["option"] = "quit",
  220. ["text"] = localization[lang].logout},
  221. }, 2, 24)
  222.  
  223. if (command == "balance") then
  224. bankapi.showBalance(currentAccount)
  225.  
  226. elseif (command == "log") then
  227. bankapi.transactionLogScreen(currentAccount)
  228.  
  229. elseif (command == "transaction") then
  230. local tempClientData = bankapi.getClientData()
  231. local steps = localization[lang].transaction_instructions
  232. local to = bankapi.selectAccountScreen(steps, 1, currentAccount)
  233. if (to == nil) then break end
  234. local amount = bankapi.inputNumberScreen(steps, 2, tempClientData[currentAccount].balance)
  235. if (amount == nil) then break end
  236. local description = bankapi.inputTextScreen(steps, 3, 100)
  237. if (description == nil) then break end
  238.  
  239. local success, message = bankapi.transaction(currentAccount, to, amount, description)
  240. bankapi.responseScreen(success, message)
  241.  
  242. elseif (command == "quit") then
  243. os.shutdown()
  244. end
  245. end
  246. end
  247. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement