Advertisement
asdsdsadsdgfd

chat

Jul 19th, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.19 KB | None | 0 0
  1. os.loadAPI("/kernel/kerbase")
  2. local settings = "/kernel/.set"
  3. local username1244 = string.sub(kerbase.getLine(settings, 9), string.find(kerbase.getLine(settings, 9), ":")+1)
  4. local running = false
  5.  
  6. shell.run("clear")
  7. --rednet.open("top")
  8. rednet.open("back")
  9. --rednet.open("side")
  10. u = true
  11. while u do
  12. write("Enter a Username: ")
  13. user = username1244
  14. shell.run("clear")
  15. write('Hold CTRL+T for 3 seconds to leave')
  16. running = true
  17. if user:find("|") then
  18. u = true
  19. print("Name Cannot Have '|'")
  20. else
  21. u = false
  22. end
  23. end
  24. rednet.broadcast(user.."| Has Joined The Chat")
  25. local function writeMes()
  26. w, h = term.getSize()
  27. term.setCursorPos(1, h-2)
  28. term.clearLine()
  29. term.setCursorPos(1, h-1)
  30. term.clearLine()
  31. write("Chat: ")
  32. mes = read()
  33. if term.isColor() then
  34.  
  35. if mes:find("&") then
  36.     color = mes:match("&([0-9]+)") or 1
  37.     term.setTextColor(tonumber(color))  
  38.     message = mes:gsub("&([0-9]+)", "")
  39.     cur = cur + 1
  40.     if cur > h-3 then
  41.         cur = 1
  42.         shell.run("clear")
  43.     end
  44.     term.setCursorPos(1, cur)
  45.     print(user..": "..message)
  46.     message = user.."|"..mes
  47.     rednet.broadcast(message)
  48.     term.setTextColor(1)
  49.     printed = false
  50. end
  51. end
  52. if printed == true then
  53. cur = cur + 1
  54. if cur > h-3 then
  55. cur = 1
  56. shell.run("clear")
  57. end
  58. term.setCursorPos(1, cur)
  59. print(user..": "..mes)
  60. mes = user.."|"..mes
  61. rednet.broadcast(mes)
  62. term.setTextColor(1)
  63. end
  64. printed = true
  65. end
  66.  
  67. cur = 0
  68. local function readMes()
  69. id, mes, distance = rednet.receive()
  70. -- split mes
  71. a,b = string.find(mes, "|")
  72. name = mes:sub(1, a-1)
  73. message = mes:sub(b+1, #mes)
  74. if message == "^KICKALL" then
  75. shell.run("clear")
  76. error("You Have Been Kicked From Chat!")
  77.  
  78. end
  79. -- set message color
  80. --[[if term.isColor() then
  81.   if message:find("&") then
  82.   color = message:match("&([0-9]+)")
  83.   term.setTextColor(tonumber(color))
  84.   message = message:gsub("&([0-9]+)", "")
  85.  
  86.   end
  87. end]]--
  88.  
  89. cur = cur + 1
  90. if cur > h-3 then
  91. shell.run("clear")
  92. cur = 1
  93. end
  94. term.setCursorPos(1, cur)
  95. print(name..": "..message)
  96. term.setTextColor(1)
  97. end
  98.  
  99.  
  100. while true do
  101.   local event = os.pullEventRaw()
  102.   if event == "terminate" then
  103.     shell.run("startup")
  104.     return
  105.   end
  106.     if running then
  107.         parallel.waitForAny(writeMes, readMes)
  108.     end
  109. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement