View difference between Paste ID: kY4wb919 and zebPZEQz
SHOW: | | - or go back to the newest paste.
1
local username="";
2
3-
local curPos="1"
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
50+
	if curPos=="1" then
51
52-
                term.clear()
52+
		term.clear()
53-
                term.setCursorPos(xzentral-4,yzentral-1)
53+
		term.setCursorPos(xzentral-4,yzentral-1)
54-
                term.setBackgroundColor(colors.white)
54+
		term.setBackgroundColor(colors.white)
55-
                term.setTextColor(colors.black)
55+
		term.setTextColor(colors.black)
56-
                print("Join channel")
56+
		print("Join channel")
57-
                term.setCursorPos(xzentral-4,yzentral)
57+
		term.setCursorPos(xzentral-4,yzentral)
58-
                term.setBackgroundColor(colors.black)
58+
		term.setBackgroundColor(colors.black)
59-
                term.setTextColor(colors.white)
59+
		term.setTextColor(colors.white)
60-
                print("Settings")
60+
		print("Settings")
61-
                term.setCursorPos(xzentral-4,yzentral+1)
61+
		term.setCursorPos(xzentral-4,yzentral+1)
62-
                term.setBackgroundColor(colors.black)
62+
		term.setBackgroundColor(colors.black)
63-
                term.setTextColor(colors.white)
63+
		term.setTextColor(colors.white)
64-
                print("Quit")
64+
		print("Quit")
65
local event, key=os.pullEvent("key")
66
67-
                if key==208
67+
		if key==208 
68-
                        then
68+
			then 
69-
                               
69+
				
70-
                               
70+
				
71-
                                curPos="2" menu()
71+
				curPos="2" menu()
72-
       
72+
	
73-
                        elseif key==28
73+
			elseif key==28 
74-
                                then
74+
				then 
75-
                                        joinChannel()
75+
					joinChannel()
76-
                                        return
76+
					return 
77-
                                        else menu()
77+
					else menu()
78-
                end
78+
		end 
79-
        end
79+
	end
80-
       
80+
	
81
82-
        if curPos=="2" then
82+
	if curPos=="2" then 
83-
                term.setBackgroundColor(colors.black)
83+
		term.setBackgroundColor(colors.black)
84-
                term.clear()
84+
		term.clear()
85-
                term.setBackgroundColor(colors.black)
85+
		term.setBackgroundColor(colors.black)
86-
                term.setCursorPos(xzentral-4,yzentral-1)
86+
		term.setCursorPos(xzentral-4,yzentral-1)
87-
                term.setBackgroundColor(colors.black)
87+
		term.setBackgroundColor(colors.black)
88-
                term.setTextColor(colors.white)
88+
		term.setTextColor(colors.white)
89-
                print("Join channel")
89+
		print("Join channel")
90-
                term.setCursorPos(xzentral-4,yzentral)
90+
		term.setCursorPos(xzentral-4,yzentral)
91-
                term.setBackgroundColor(colors.white)
91+
		term.setBackgroundColor(colors.white)
92-
                term.setTextColor(colors.black)
92+
		term.setTextColor(colors.black)
93-
                print("Settings")
93+
		print("Settings")
94-
                term.setCursorPos(xzentral-4,yzentral+1)
94+
		term.setCursorPos(xzentral-4,yzentral+1)
95-
                term.setBackgroundColor(colors.black)
95+
		term.setBackgroundColor(colors.black)
96-
                term.setTextColor(colors.white)
96+
		term.setTextColor(colors.white)
97-
                print("Quit")
97+
		print("Quit")
98-
                term.setBackgroundColor(colors.black)
98+
		term.setBackgroundColor(colors.black)
99-
        local event, key=os.pullEvent("key")
99+
	local event, key=os.pullEvent("key")
100-
                if key==200
100+
		if key==200 
101-
                        then
101+
			then 
102-
                                curPos="1" menu()
102+
				curPos="1" menu()
103-
               
103+
		
104
105-
                        elseif key==208
105+
			elseif key==208 
106-
                                then
106+
				then 
107-
                                        term.setBackgroundColor(colors.black)
107+
					term.setBackgroundColor(colors.black)
108-
                                        curPos="3"
108+
					curPos="3"
109-
                                        menu()
109+
					menu()
110
111-
                                elseif key==28
111+
				elseif key==28 
112-
                                        then
112+
					then 
113-
                                                nickname()
113+
						nickname()
114-
                                                else menu() term.setBackgroundColor(colors.black)
114+
						else menu() term.setBackgroundColor(colors.black)
115-
                end
115+
		end
116-
        end
116+
	end
117-
               
117+
		
118
 
119-
        if curPos=="3" then
119+
	if curPos=="3" then 
120-
                term.clear()
120+
		term.clear()
121-
                term.setCursorPos(xzentral-4,yzentral-1)
121+
		term.setCursorPos(xzentral-4,yzentral-1)
122-
                term.setBackgroundColor(colors.black)
122+
		term.setBackgroundColor(colors.black)
123-
                term.setTextColor(colors.white)
123+
		term.setTextColor(colors.white)
124-
                print("Join channel")
124+
		print("Join channel")
125-
                term.setCursorPos(xzentral-4,yzentral)
125+
		term.setCursorPos(xzentral-4,yzentral)
126-
                term.setBackgroundColor(colors.black)
126+
		term.setBackgroundColor(colors.black)
127-
                term.setTextColor(colors.white)
127+
		term.setTextColor(colors.white)
128-
                print("Settings")
128+
		print("Settings")
129-
                term.setCursorPos(xzentral-4,yzentral+1)
129+
		term.setCursorPos(xzentral-4,yzentral+1)
130-
                term.setBackgroundColor(colors.white)
130+
		term.setBackgroundColor(colors.white)
131-
                term.setTextColor(colors.black)
131+
		term.setTextColor(colors.black)
132-
                print("Quit")
132+
		print("Quit")
133
134
local event, key=os.pullEvent("key")
135-
                        if key==200
135+
			if key==200 
136-
                                then
136+
				then 
137-
                                        curPos="2" menu()
137+
					curPos="2" menu()
138-
               
138+
		
139-
                                elseif key==28
139+
				elseif key==28 
140-
                                        then
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()  
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-
                       
142+
			
143
else term.clear() term.setBackgroundColor(colors.black)  menu()
144-
                        end    
144+
			end	
145-
        end    
145+
	end	
146-
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
163+
	else
164-
        end
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()
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()                                                                                                                                            
253+
 function getSide()
254-
        for _,side in ipairs({"top", "bottom", "front", "left", "right", "back"}) do
254+
for _,side in ipairs({"top", "bottom", "front", "left", "right", "back"}) do
255-
                if peripheral.isPresent(side)
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-
                        then
256+
	end
257-
                                if peripheral.getType(side)=="modem"
257+
258-
                                        then
258+
259-
                                                modemside=side
259+
260-
                                                rednet.open(modemside)
260+
261-
                                end
261+
262-
                end
262+
263-
        end
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
----------------------------------------------------------------------------------------------------------------------------------------------