Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- IRC server by PaymentOption for Cannon OS --
- VERSION = "Alpha 0.0.1"
- -----------------------------------------------
- rednet.open("top"); rednet.open("bottom")
- rednet.open("front"); rednet.open("back")
- rednet.open("right"); rednet.open("left")
- -- VARS --
- tUsers = {} -- Each user will have their computer ID and a set username
- nOP = 0 -- This will be the user with Operator priveleges
- sServerName = "testServer"
- tConversation = {} -- This is where we will store each line of the conversation: {user, message}
- ----------
- -- Connection related functions --
- function connectUser( _nSender)
- rednet.send( _nSender, "a;sodifu39798d0f3") -- This will be our request for their username: a;sodifu39798d0f3
- sender, message = rednet.receive(0.2)
- if sender == _nSender then
- tUsers[#tUsers+1] = {name = message, id = _nSender}
- rednet.send( _nSender, "ifjdslfije") -- This will be our connection confirmation message: ifjdslfije
- sleep(0.1); rednet.send( _nSender, tostring( sServerName ) ) -- Give the user the designated server name
- print("User: "..sender.." Connected")
- else print("User: ".._nSender.." not Connected") end
- if #tUsers == 1 then nOP = tUsers[1].id; tUsers[1].name = "@"..tUsers[1].name end
- end
- ----------------------------------
- -- Converstaion related functions --
- function logMessage( _nSender, _sMessage)
- if _sMessage == "dslifj" then
- for i=1, #tUsers do
- if tUsers[i].id == _nSender then table.remove( tUsers, i); print("User: ".._nSender.." Disconnected")
- return true end
- end
- end
- if _nSender == nOP then
- if string.find( _sMessage, "!kick" ) then
- local nKickUser = tonumber(string.sub( _sMessage, string.len("!kick "), string.len( _sMessage )))
- for i=1, #tUsers do -- This will be our kicked notificatio message: dlskjfiejdlijfklsdj
- if tUsers[i].id == nKickUser then table.remove( tUsers, i); rednet.send( nKickUser, "dlskjfiejdlijfklsdj") end
- end
- end
- end
- tConversation[#tConversation+1] = {user = tonumber(_nSender), message = tostring(_sMessage)}
- local senderIndex = 0 -- We'll store the index number of the user who sent the message here for sending references
- if #tUsers > 0 then
- for i=1, #tUsers do
- if tUsers[i].id == _nSender then senderIndex = i end
- end
- end
- if #tUsers > 0 then
- for i=1, #tUsers do
- for i = 1, #tUsers do
- if _sMessage == tUsers[i].name or _sMessage == "@"..tUsers[i].name then return false end
- end
- rednet.send(tUsers[i].id, tostring(tUsers[senderIndex].name).."> ".._sMessage)
- end
- end
- end
- ------------------------------------
- term.clear(); term.setCursorPos(1,1)
- while true do
- sender, message = rednet.receive()
- if message == "dlsk;fje3ijoidsjfl" then -- This will be our connection request message: dlsk;fje3ijoidsjfl
- connectUser( sender )
- end
- if sender == nOP and string.find( message, "!kick " ) then
- local sTemp = string.sub( message, string.len("!kick "), string.len(message))
- local sKickUser = string.sub(sTemp, 2, string.len(sTemp))
- for i=1, #tUsers do -- This will be our kicked notificatio message: dlskjfiejdlijfklsdj
- if tUsers[i].name == sKickUser then rednet.send( tUsers[i].id, "dlskjfiejdlijfklsdj"); table.remove( tUsers, i) end
- end
- elseif #tUsers > 0 then
- for i=1, #tUsers do
- if tUsers[i].id == sender then logMessage( sender, message ) end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement