Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --//Массив необходимых папок и файлов (false - создается только папка)
- local data_load = { {"uS4F7euL","/Lib/","LCR"},
- {false,"/Logs/",false},
- {false,"/Temp/",false}
- }
- --//Создание папок и загрузка необходимых файлов с pastebin.com
- local function loadFiles(data_load)
- if not http then
- error("Set enable API_http in ComputerCraft.cfg")
- end
- for i=1, #data_load do
- if not fs.exists(data_load[i][2]) then
- fs.makeDir(data_load[i][2])
- end
- if data_load[i][1] then
- if not fs.exists(data_load[i][2]..data_load[i][3])then
- local response = http.get("http://pastebin.com/raw.php?i="..textutils.urlEncode(data_load[i][1]))
- if response then
- local sResponse = response.readAll()
- response.close()
- local file = fs.open(data_load[i][2]..data_load[i][3], "w")
- file.write( sResponse )
- file.close()
- end
- end
- end
- end
- end
- loadFiles(data_load) -- скачивание необходимых библиотек, файлов и создание директорий
- os.loadAPI("Lib/LCR") -- загрузка библиотеки для шифрования
- local my_channel = 3000 -- Ваш радиоканал, на который получите ответ от сервера (1 - 65535)
- local server_channel = 25666 -- Wi-Fi радиоканал игрового почтового сервера
- modem = peripheral.wrap("top") -- укажите сторону модема
- modem.open(my_channel)
- local state = 'empty'
- --// Функция отправки зашифрованного сообщения на почтовый сервер
- -- Необходим аккаунт на игровом сервере, который можно получить в любом почтовом отделении
- -- У Вас есть лимит сообщений. Каждый час работы сервера у Вас становиться на одно сообщение больше!
- -- Лимит сообщений при накоплении - 100 шт.
- local function sendMailCrypt(mailto, subject, text, nick, pass)
- local key = LCR.getkey(pass)
- local open_text = "mailto="..mailto.."&subject="..subject.."&content="..text
- local crypt_text = LCR.crypt(open_text,key)
- local msg = textutils.serialize({nick, crypt_text})
- if modem.isOpen(my_channel) then
- modem.transmit(server_channel, my_channel, msg)
- msg = {os.pullEvent("modem_message")}
- state = msg[5]
- else
- error('Modem is not open')
- end
- end
- local function send()
- sendMailCrypt(mailto, subject, text, nick, pass)
- end
- local function timer()
- sleep(20) --время сброса попытки отправки, когда сервер не отвечает или перестал отвечать, сек
- state = 'empty'
- end
- --//Вот пример данных для отправки на указанный почтовый адрес с помощью SMTP.
- --ВНИМАНИЕ! ПАРОЛЬ ИГРОВОЙ! ЕГО МОЖНО ПОЛУЧИТЬ(ВОССТАНОВИТЬ) В ПОЧТОВОМ ОТДЕЛЕНИИ В ИГРЕ!
- --ПАРОЛЬ ХРАНИТЕ В ТАЙНЕ.
- nick = 'alexcc' -- Ваш ник в Игре
- pass = '123ABC' -- пароль в игре, которы Вы получили в почтовом отделении при клике по блоку детектора в личку на игровую почту
- subject = 'Grief-Attack' -- тема письма
- text = 'Player-Kakashka89-penetrated-in-to-my-house.Coordinates:23-465-78' --текст письма
- debag = true -- измените на false, если не хотите видеть отладочной информаци от сервера
- --//Пример использования функции отправки сообщения из игры Майнкрафт
- -- на реальный почтовый адрес!
- function mailSend(n, debag)
- for i = 1, n do
- parallel.waitForAny(send,timer)
- if state == 'Your email was sent!' then
- if debag then
- print('Attempt to send: '..i..'\nINFO: Your email was sent!') end
- return true
- elseif state == 'empty' then
- if debag then
- print('Attempt to send: '..i..'\nINFO: Server not response!') end
- else
- if debag then
- print('Attempt to send: '..i..'\nINFO: ',state) end
- end
- end
- return false
- end
- mailSend(10, debag) --количество попыток отправки письма, вернет TRUE при положительном ответе от сервера
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement