Advertisement
Guest User

Untitled

a guest
Aug 27th, 2014
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local username="";
  2.  
  3. local curPos="1"
  4. local channel="0"
  5. local x,y=term.getSize()
  6. local xzentral=x/2
  7. local yzentral=y/2
  8.  
  9. function joinChannel()
  10. term.clear()
  11. term.setCursorPos(xzentral-4,yzentral)
  12. term.setBackgroundColor(colors.white)
  13. term.setTextColor(colors.black)
  14. textutils.slowWrite("Join channel: ")
  15. channel=read()
  16.  
  17. if channel=="" then term.setCursorPos(12,10) term.clearLine() print("Error: Please enter a Channelname ! ") term.setBackgroundColor(colors.black)
  18. term.setTextColor(colors.white)os.sleep(1) joinChannel() else
  19. term.setBackgroundColor(colors.black)
  20. term.setTextColor(colors.white)
  21. term.setCursorPos(xzentral-4,yzentral)
  22. term.clearLine()
  23. term.setBackgroundColor(colors.white)
  24. term.setTextColor(colors.black)
  25. term.setCursorPos(xzentral-4,yzentral)
  26. textutils.slowWrite("Joining channel...")
  27. os.sleep(1)
  28. rednet.broadcast("*** "..username.." joined the chat ***",channel)
  29. term.setBackgroundColor(colors.black)
  30. term.setTextColor(colors.white)
  31.  
  32. return
  33.  
  34. end
  35. end
  36.  
  37.  
  38.  
  39.  
  40.  
  41. function menu()
  42. fs.delete("/chatfolder")
  43. term.clear()
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.     if curPos=="1" then
  51.  
  52.         term.clear()
  53.         term.setCursorPos(xzentral-4,yzentral-1)
  54.         term.setBackgroundColor(colors.white)
  55.         term.setTextColor(colors.black)
  56.         print("Join channel")
  57.         term.setCursorPos(xzentral-4,yzentral)
  58.         term.setBackgroundColor(colors.black)
  59.         term.setTextColor(colors.white)
  60.         print("Settings")
  61.         term.setCursorPos(xzentral-4,yzentral+1)
  62.         term.setBackgroundColor(colors.black)
  63.         term.setTextColor(colors.white)
  64.         print("Quit")
  65. local event, key=os.pullEvent("key")
  66.  
  67.         if key==208
  68.             then
  69.                
  70.                
  71.                 curPos="2" menu()
  72.    
  73.             elseif key==28
  74.                 then
  75.                     joinChannel()
  76.                     return
  77.                     else menu()
  78.         end
  79.     end
  80.    
  81.  
  82.     if curPos=="2" then
  83.         term.setBackgroundColor(colors.black)
  84.         term.clear()
  85.         term.setBackgroundColor(colors.black)
  86.         term.setCursorPos(xzentral-4,yzentral-1)
  87.         term.setBackgroundColor(colors.black)
  88.         term.setTextColor(colors.white)
  89.         print("Join channel")
  90.         term.setCursorPos(xzentral-4,yzentral)
  91.         term.setBackgroundColor(colors.white)
  92.         term.setTextColor(colors.black)
  93.         print("Settings")
  94.         term.setCursorPos(xzentral-4,yzentral+1)
  95.         term.setBackgroundColor(colors.black)
  96.         term.setTextColor(colors.white)
  97.         print("Quit")
  98.         term.setBackgroundColor(colors.black)
  99.     local event, key=os.pullEvent("key")
  100.         if key==200
  101.             then
  102.                 curPos="1" menu()
  103.        
  104.  
  105.             elseif key==208
  106.                 then
  107.                     term.setBackgroundColor(colors.black)
  108.                     curPos="3"
  109.                     menu()
  110.  
  111.                 elseif key==28
  112.                     then
  113.                         nickname()
  114.                         else menu() term.setBackgroundColor(colors.black)
  115.         end
  116.     end
  117.        
  118.  
  119.     if curPos=="3" then
  120.         term.clear()
  121.         term.setCursorPos(xzentral-4,yzentral-1)
  122.         term.setBackgroundColor(colors.black)
  123.         term.setTextColor(colors.white)
  124.         print("Join channel")
  125.         term.setCursorPos(xzentral-4,yzentral)
  126.         term.setBackgroundColor(colors.black)
  127.         term.setTextColor(colors.white)
  128.         print("Settings")
  129.         term.setCursorPos(xzentral-4,yzentral+1)
  130.         term.setBackgroundColor(colors.white)
  131.         term.setTextColor(colors.black)
  132.         print("Quit")
  133.  
  134. local event, key=os.pullEvent("key")
  135.             if key==200
  136.                 then
  137.                     curPos="2" menu()
  138.        
  139.                 elseif key==28
  140.                     then
  141.                         term.setBackgroundColor(colors.black) term.setTextColor(colors.white) term.clear() term.setCursorPos(xzentral-4,yzentral) textutils.slowPrint("Good Bye") term.setCursorPos(1,1) os.sleep(2) os.shutdown()  
  142.            
  143. else term.clear() term.setBackgroundColor(colors.black)  menu()
  144.             end
  145.     end
  146. end
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154. function close()
  155.  
  156.  
  157.  
  158.  
  159.  
  160. local event, button, xPos, yPos = os.pullEvent("mouse_click")
  161.  
  162. if xPos==50 and yPos==1 then term.clear()    menu()
  163.     else
  164.     end
  165.  
  166.  
  167.  
  168.  
  169. end
  170.  
  171.  
  172.  
  173. function nickname()
  174. term.clear()
  175. term.setCursorPos(14,10)
  176. write("Username:")
  177.  username=read();
  178. if username=="" then term.setCursorPos(12,10) term.clearLine() print("Error: Please enter a Username ! ") os.sleep(2) nickname() else
  179. term.clear()
  180. term.setCursorPos(12,9)
  181. print("-------------------------------")
  182. term.setCursorPos(12,11)
  183. print("-------------------------------")
  184. term.setCursorPos(16,10)
  185. textutils.slowPrint("Username:"..username.." saved")
  186.  
  187.  
  188. os.sleep(2)
  189. end
  190. end
  191.  
  192.  
  193. -------------------------------------------------------------------------------------------------------------------
  194. local chat="";
  195.  
  196.  
  197.  
  198. function writetoscreen(text)
  199. term.clear()
  200.  
  201. local h=fs.open("/chatfolder/chat"..channel,"a")
  202. h.writeLine(text);
  203. h.flush();
  204. h.close();
  205.  
  206. cursorold()
  207. local g=fs.open("/chatfolder/chat"..channel,"r");
  208.  
  209. print(g.readAll());
  210. g.close()
  211. end
  212.  
  213. function oldmessages()
  214.  
  215.  
  216.     cursorold()
  217. local l=fs.open("/chatfolder/chat"..channel,"r");
  218.  
  219. print(l.readAll());
  220. l.close()
  221.  
  222. end
  223.  
  224. function writetoscreen_local(text)
  225. term.clear()
  226.  
  227. local h=fs.open("/chatfolder/chat"..channel,"a")
  228. h.writeLine("["..username.."]"..":"..text);
  229. h.flush();
  230. h.close();
  231.  
  232. cursorold()
  233. local g=fs.open("/chatfolder/chat"..channel,"r");
  234.  
  235. print(g.readAll());
  236. g.close()
  237. end
  238.  
  239.  
  240. function cursornew()
  241. intx, inty= term.getSize();
  242. term.setCursorPos(1,inty)
  243. end
  244.  
  245.  
  246. function cursorold()
  247. term.setCursorPos(1,2)
  248. end
  249.  
  250.  
  251.  
  252.  
  253.  function getSide()
  254. for _,side in ipairs({"top", "bottom", "front", "left", "right", "back"}) do
  255.     if peripheral.isPresent(side) then if peripheral.getType(side)=="modem" then modemside=side if modemside="" then term.setTextColor(colors.red) term.setCursorPos(xzentral-4,yzentral)print("ERROR:Please attach a modem!") os.shutdown() else rednet.open(modemside)
  256.     end
  257. end
  258. end
  259. end
  260. end
  261.  
  262.  
  263.  
  264.  
  265. function send ()
  266. cursornew()
  267. term.clearLine()
  268. term.setCursorPos(1,inty-1)
  269. term.setCursorPos(1,1)
  270. term.setBackgroundColor(colors.white)
  271. term.setTextColor(colors.black)
  272. write("---You are chatting in channel "..channel.."---             ") term.setCursorPos(x-2,1) write("[X]")
  273. term.setBackgroundColor(colors.black)
  274. term.setTextColor(colors.white)
  275. term.setCursorPos(1,inty-1)
  276. print("---------------------------------------------------")
  277. cursornew()
  278. write("Text:")
  279. local msg=read();
  280. term.clearLine()
  281. cursornew()
  282. term.clear()
  283. if msg=="" then oldmessages() else
  284. chat=chat..msg
  285. cursorold()
  286. --write(chat)
  287. writetoscreen_local(msg)
  288. rednet.broadcast("["..username.."]"..":"..msg,channel)
  289. cursornew()
  290. term.clearLine()
  291. end
  292. end
  293.  
  294. function receive()
  295. id,message,protocol=rednet.receive(channel)
  296. cursorold()
  297. chat=chat..message
  298. --write(chat)
  299. writetoscreen(message)
  300. end
  301.  
  302. fs.delete("chat")
  303. getSide();
  304. nickname()
  305. menu()
  306.  
  307.  
  308. term.clear()
  309.  
  310.  
  311. while true do
  312.  
  313. parallel.waitForAny(send,receive,close)
  314. end
  315. ----------------------------------------------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement