Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- while true do
- term.setBackgroundColor(colors.white)
- term.setTextColor(colors.black)
- term.clear()
- term.setCursorPos(1, 10)
- center("Chattr - by Chervilpaw")
- term.setCursorPos(3, 12)
- write("Username: ")
- term.setCursorPos(3, 14)
- write("Password: ")
- term.setCursorPos(13, 12)
- local username = read()
- term.setCursorPos(13, 14)
- local password = read("*")
- term.setCursorPos(3, 18)
- term.setTextColor(colors.red)
- local t = firewolf.query("login", {user=username, pass=password})
- if t == "valid" then
- term.setTextColor(colors.green)
- write("Success!")
- sleep(1)
- break
- elseif t == "invalid" then
- write("Wrong password/invalid username")
- sleep(1)
- elseif t == "noparm" then
- write("Forgot to enter username/password.")
- sleep(1)
- elseif t == false then
- write("Query errored.")
- sleep(2)
- else
- write("Unknown error.")
- sleep(1)
- end
- end
- local inputColor = colors.gray
- local chatColor = colors.black
- local rawChats = firewolf.query("chat", {user = username, pass = password, message = "I joined."})
- local updateChat = function()
- local previousX, previousY = term.getCursorPos()
- if rawChats then
- term.setTextColor(chatColor)
- local chat = textutils.unserialize(rawChats)
- if chat then
- local previousPosition = term.getCursorPos(1, 2)
- for k,v in pairs(chat) do
- term.setCursorPos(1, k)
- term.clearLine()
- if v.user then
- term.write("<"..tostring(v.user)..">: "..tostring(v))
- else
- term.write(v)
- end
- end
- else
- center("Invalid response from server! Retrying...")
- end
- else
- term.setCursorPos(1, 1)
- term.setTextColor(colors.red)
- center("Failed to connect to server! Retrying...")
- end
- term.setTextColor(inputColor)
- term.setCursorPos(previousX, previousY)
- end
- local chatUpdateLoop = function()
- while true do
- rawChats = firewolf.query("chat")
- updateChat()
- sleep(2)
- end
- end
- local readInput = function()
- while true do
- term.setTextColor(inputColor)
- term.setCursorPos(1, 18)
- term.write(string.rep("-", 51))
- term.setCursorPos(1, 19)
- term.clearLine()
- term.write("> ")
- local message = read()
- term.setCursorPos(1, 18)
- term.write(string.rep("-", 51))
- term.setCursorPos(1, 19)
- term.clearLine()
- updateChat()
- term.write("Sending...")
- if #message > 0 then
- updateChat()
- rawChats = firewolf.query("chat", {message = message, user = username, pass = password})
- updateChat()
- end
- end
- end
- term.clear()
- parallel.waitForAny(chatUpdateLoop, readInput)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement