View difference between Paste ID: L2WP21ik and Z5UQsBGd
SHOW: | | - or go back to the newest paste.
1
local tArgs = { ... }
2
local passwordread
3
4
local function clear()
5
term.clear()
6
term.setCursorPos(1, 1)
7
end
8
9
function findModem()
10
  for _, v in pairs( rs.getSides() ) do
11
        if peripheral.isPresent( v ) and peripheral.getType( v ) == "modem" then
12
          rednet.open(v)
13
        end
14
  end
15
end
16
17
if #tArgs < 1 then
18
clear()
19
term.setTextColor(colors.white)
20
print("Usage: ")
21
print("email create")
22
print("email send")
23
print("email download")
24
print("email delete")
25
print("email admin")
26
print("email update")
27
term.setTextColor(colors.white)
28
return
29
end
30
31
local Args = shell.resolve( tArgs[1] )
32
if Args == "create" then
33
term.clear()
34
term.setCursorPos(1, 1)
35
term.setTextColor(colors.lightBlue)
36
print("ComputerCraft Email Setup")
37
write("New Username: ")
38
UserName = read().."@Cc.com"
39
print()
40
write("New Password: ")
41
pass1 = read("*")
42
print()
43
write("Repeat Password: ")
44
pass2 = read("*")
45
if pass1 == pass2 then
46
if fs.exists("/disk/"..UserName) then
47
clear()
48
term.setTextColor(colors.red)
49
print("The email address "..UserName.." is in use!")
50
term.setTextColor(colors.white)
51
return
52
end
53
w = fs.open("/disk/"..UserName, "w")
54
w.writeLine(pass1)
55
w.writeLine(os.getComputerID())
56
w.close()
57
print()
58
clear()
59
term.setTextColor(colors.green)
60
print("Successfully created "..UserName.."!")
61
term.setTextColor(colors.white)
62
os.sleep(3)
63
os.reboot()
64
else
65
clear()
66
term.setTextColor(colors.red)
67
print("The password did not match!")
68
term.setTextColor(colors.white)
69
return
70
end
71
elseif Args == "send" then
72
term.setTextColor(colors.yellow)
73
print("If you're stuck here press and hold CTRL + R to reboot your pc (this error can be caused by an network error).")
74
findModem()
75
rednet.broadcast("getid")
76
id, msg = rednet.receive()
77
clear()
78
term.setTextColor(colors.lightBlue)
79
print("ComputerCraft Email Sender")
80
print("Please login with your email account")
81
print()
82
write("Email Address: ")
83
mail = read()
84
print()
85
if not fs.exists("/disk/"..mail) then
86
clear()
87
term.setTextColor(colors.red)
88
print("Email Address is not valid!")
89
term.setTextColor(colors.white)
90
return
91
elseif mail == nil or mail == "" then
92
clear()
93
term.setTextColor(colors.red)
94
print("Email Address is not valid!")
95
term.setTextColor(colors.white)
96
return
97
end
98
write("Password: ")
99
pass = read("*")
100
print()
101
r = fs.open("/disk/"..mail, "r")
102
passwordread = r.readLine()
103
r.close()
104
if pass ~= passwordread then
105
clear()
106
term.setTextColor(colors.red)
107
print("The password is incorrect!")
108
term.setTextColor(colors.white)
109
return
110
end
111
clear()
112
write("Receiver Email Address: ")
113
sendmail = read()
114
print()
115
print("Message to "..sendmail.." (Type ^Z to end the message)")
116
local Message = {}
117
local lenght
118
local nownr
119
nownr = 1
120
local nr
121
nr = 1
122
while true do
123
messagesend = read()
124
if messagesend == "^Z" then
125
rednet.send(id, "receive")
126
os.sleep(.5)
127
rednet.send(id, sendmail)
128
os.sleep(.5)
129
rednet.send(id, "receive2")
130
os.sleep(0.2)
131
rednet.send(id, mail)
132
lenght = table.getn(Message)
133
while nownr ~= lenght + 1 do
134
os.sleep(0.1)
135
rednet.send(id, Message[nownr])
136
nownr = nownr + 1
137
end
138
rednet.send(id, "end8765432190")
139
clear()
140
term.setTextColor(colors.green)
141
print("The email has been sent to "..sendmail..".")
142
term.setTextColor(colors.white)
143
return
144
else
145
Message[nr] = messagesend
146
nr = nr + 1
147
end
148
end
149
elseif Args == "download" then
150
term.setTextColor(colors.yellow)
151
print("If you're stuck here press and hold CTRL + R to reboot your pc (this can be caused by an network error).")
152
findModem()
153
rednet.broadcast("getid")
154
id, msg = rednet.receive()
155
clear()
156
term.setTextColor(colors.lightBlue)
157
print("ComputerCraft Email Download")
158
print("Please login with your email account to download your mail")
159
print()
160
write("Email Address: ")
161
mail = read()
162
print()
163
if not fs.exists("/disk/"..mail) then
164
clear()
165
term.setTextColor(colors.red)
166
print("Email Address is not valid!")
167
term.setTextColor(colors.white)
168
return
169
elseif mail == nil or mail == "" then
170
clear()
171
term.setTextColor(colors.red)
172
print("Email Address is not valid!")
173
term.setTextColor(colors.white)
174
return
175
end
176
write("Password: ")
177
pass = read("*")
178
print()
179
r = fs.open("/disk/"..mail, "r")
180
passwordread = r.readLine()
181
r.close()
182
if pass ~= passwordread then
183
clear()
184
term.setTextColor(colors.red)
185
print("The password is incorrect!")
186
term.setTextColor(colors.white)
187
return
188
end
189
rednet.send(id, "receive")
190
os.sleep(0.5)
191
rednet.send(id, mail)
192
os.sleep(0.5)
193
rednet.send(id, "download")
194
o = fs.open("mail", "w")
195
id, mailmsg = rednet.receive()
196
o.writeLine(mailmsg)
197
o.close()
198
x = fs.open("/disk/startup", "w")
199
x.writeLine('fs.delete("/mail")')
200
x.writeLine('fs.delete("/disk/startup")')
201
x.close()
202
shell.run("edit mail")
203
term.setTextColor(colors.green)
204
print("The mail has been read!")
205
os.sleep(3)
206
os.reboot()
207
elseif Args == "delete" then
208
term.clear()
209
term.setCursorPos(1, 1)
210
term.setTextColor(colors.lightBlue)
211
print("ComputerCraft Email Remove")
212
print("Please login with your email account to delete it")
213
print()
214
write("Email Address: ")
215
mail = read()
216
print()
217
if not fs.exists("/disk/"..mail) then
218
clear()
219
term.setTextColor(colors.red)
220
print("Email Address is not valid!")
221
term.setTextColor(colors.white)
222
return
223
elseif mail == nil or mail == "" then
224
clear()
225
term.setTextColor(colors.red)
226
print("Email Address is not valid!")
227
term.setTextColor(colors.white)
228
return
229
end
230
write("Password: ")
231
pass = read("*")
232
print()
233
r = fs.open("/disk/"..mail, "r")
234
passwordread = r.readLine()
235
r.close()
236
if pass ~= passwordread then
237
clear()
238
term.setTextColor(colors.red)
239
print("The password is incorrect!")
240
term.setTextColor(colors.white)
241
return
242
end
243
if string.lower(mail) == "admin@cc.com" then
244
term.setTextColor(colors.red)
245
print("You cannot delete the admin account!")
246
term.setTextColor(colors.white)
247
return
248
end
249
clear()
250
term.setTextColor(colors.red)
251
print("Are you sure with the removal of the account "..mail.."? [Yes/No]")
252
answ = read()
253
if string.lower(answ) == "yes" then
254
clear()
255
term.setTextColor(colors.green)
256
print(mail.." has been removed!")
257
os.sleep(3)
258
writer = fs.open("/startup", "w")
259
writer.writeLine('fs.delete("/disk/'..mail..'")')
260
writer.writeLine('fs.delete("startup")')
261
writer.close()
262
os.reboot()
263
else
264
clear()
265
end
266
elseif Args == "admin" then
267
term.clear()
268
term.setCursorPos(1, 1)
269
term.setTextColor(colors.yellow)
270
print("ComputerCraft Email Admin")
271
print("Please login with your admin account")
272
print()
273
write("Email Address: ")
274
mail = read()
275
print()
276
if not fs.exists("/disk/"..mail) then
277
clear()
278
term.setTextColor(colors.red)
279
print("Email Address is not valid!")
280
term.setTextColor(colors.white)
281
return
282
elseif mail == nil or mail == "" then
283
clear()
284
term.setTextColor(colors.red)
285
print("Email Address is not valid!")
286
term.setTextColor(colors.white)
287
return
288
end
289
write("Password: ")
290
pass = read("*")
291
print()
292
r = fs.open("/disk/"..mail, "r")
293
passwordread = r.readLine()
294
typ = r.readLine()
295
r.close()
296
if pass ~= passwordread or typ ~= "admin" then
297
clear()
298
term.setTextColor(colors.red)
299
print("The password is incorrect or the type is invalid!")
300
term.setTextColor(colors.white)
301
return
302
end
303
clear()
304
term.setTextColor(colors.yellow)
305
print("ComputerCraft Email Admin")
306
while true do
307
term.setTextColor(colors.yellow)
308
write("> ")
309
term.setTextColor(colors.white)
310
cmd = read()
311
if cmd == "help" then
312
print("Available commands: ")
313
print("help")
314
print("delete")
315
print("list")
316
print("clear")
317
print("exit")
318
elseif cmd == "send" then
319
term.setTextColor(colors.red)
320
print("This command is available in non-admin mode!")
321
elseif cmd == "create" then
322
term.setTextColor(colors.red)
323
print("This command is available in non-admin mode!")
324
elseif cmd == "download" then
325
term.setTextColor(colors.red)
326
print("This command is available in non-admin mode!")
327
elseif cmd == "update" then
328
term.setTextColor(colors.red)
329
print("This command is available in non-admin mode!")
330
elseif cmd == "admin" then
331
term.setTextColor(colors.red)
332
print("Admin mode is already active!")
333
elseif cmd == "delete" then
334
clear()
335
term.setTextColor(colors.yellow)
336
print("Admin credentials")
337
print()
338
write("Email Address: ")
339
mail = read()
340
print()
341
if not fs.exists("/disk/"..mail) then
342
clear()
343
term.setTextColor(colors.red)
344
print("Email Address is not valid!")
345
term.setTextColor(colors.white)
346
return
347
elseif mail == nil or mail == "" then
348
clear()
349
term.setTextColor(colors.red)
350
print("Email Address is not valid!")
351
term.setTextColor(colors.white)
352
return
353
end
354
write("Password: ")
355
pass = read("*")
356
print()
357
r = fs.open("/disk/"..mail, "r")
358
passwordread = r.readLine()
359
typ = r.readLine()
360
r.close()
361
if pass ~= passwordread or typ ~= "admin" then
362
clear()
363
term.setTextColor(colors.red)
364
print("The password is incorrect or the type is invalid!")
365
term.setTextColor(colors.white)
366
return
367
end
368
clear()
369
term.setTextColor(colors.red)
370
print("ComputerCraft Admin Email Account Remover")
371
print("YOU WILL NOT BE ASKED FOR CONFIRMATION!")
372
print()
373
write("Email Address: ")
374
term.setTextColor(colors.white)
375
mailadr = read()
376
if string.lower(mailadr) == "admin@cc.com" then
377
term.setTextColor(colors.red)
378
print("This account cannot be deleted!")
379
elseif fs.exists("/disk/"..mailadr) then
380
fs.delete("/disk/"..mailadr)
381
term.setTextColor(colors.green)
382
print(mailadr.." has been deleted.")
383
else
384
term.setTextColor(colors.red)
385
print("This account doesn't exist!")
386
end
387
elseif cmd == "exit" then
388
os.reboot()
389
elseif cmd == "clear" then
390
clear()
391
elseif cmd == "list" then
392
term.setTextColor(colors.lime)
393
print("List of email accounts: ")
394
term.setTextColor(colors.blue)
395
for i = 1, table.getn(fs.list("/disk")) do
396
if fs.list("/disk")[i] ~= "email" and fs.list("/disk")[i] ~= "install" then
397
print(fs.list("/disk")[i])
398
end
399
end
400
else
401
term.setTextColor(colors.red)
402
print("No such command")
403
end
404
end
405
elseif Args == "update" then
406
clear()
407
term.setTextColor(colors.lightBlue)
408
print("ComputerCraft Email Updater")
409
print("Creating backup folder...")
410
os.sleep(.3)
411
fs.makeDir("/temp")
412
print("Moving program to backup folder...")
413
if fs.exists("/email") then
414
os.sleep(0.1)
415
fs.move("email", "/temp/email")
416
end
417
print("Downloading and installing new program...")
418
os.sleep(0.5)
419
shell.run("pastebin", "get Z5UQsBGd /email")
420
print("Finalizing...")
421
os.sleep(1.5)
422
if fs.exists("/email") then
423
fs.delete("/temp/email")
424
fs.delete("/temp")
425
term.setTextColor(colors.green)
426
print("Update Completed")
427
os.sleep(3)
428
clear()
429
shell.run("email", "firstuse")
430
else
431
term.setTextColor(colors.red)
432
print("Finalizing failed!")
433
term.setTextColor(colors.white)
434
fs.move("/temp/email", "email")
435
fs.delete("/temp")
436
end
437
elseif Args == "firstuse" then
438
term.setTextColor(colors.white)
439
print("All email commands")
440
print()
441
print("email create   -- creates a mail account")
442
print("email send     -- send a mail")
443
print("email download -- receive your mails")
444
print("email delete   -- delete your mail account")
445
print("email admin    -- admin only!")
446
print("email update   -- updates the program")
447
else
448
term.setTextColor(colors.red)
449
print("Usage: ")
450
print("email create")
451
print("email send")
452
print("email download")
453
print("email delete")
454
print("email admin")
455
print("email update")
456
term.setTextColor(colors.white)
457
return
458
end