Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local w,h = term.getSize()
- local sides = {"top","bottom","left","right","front","back"}
- local Version = "Block talk v.1"
- local name = "nil"
- local CustomCursor = "-"
- local ChatMessages = { }
- local function printCentered(str,ypos)
- term.setCursorPos(w/2-#str/2,ypos)
- term.write(str)
- end
- local function printRight(str,ypos)
- term.setCursorPos(w-#str,ypos)
- term.write(str)
- end
- local function discover()
- for i = 1,#sides do
- if peripheral.isPresent(sides[i]) then
- if peripheral.getType(sides[i]) == "modem" then
- rednet.open(sides[i])
- end
- end
- end
- end
- local function setName()
- term.clear()
- printCentered("-Welcome to "..Version.."-",1)
- printCentered(string.rep("-",w),2)
- printCentered("Enter your new name: ",h/2)
- name = read()
- if name == "" then
- setName()
- end
- end
- setName()
- discover()
- while true do
- term.clear()
- printCentered("-Welcome to "..Version.."-",1)
- printCentered(string.rep("-",w),2)
- printCentered(string.rep("-",w),h-1)
- printCentered("Press enter to send a message",h)
- local x = 1
- local y = 3
- term.setCursorPos(x,y)
- for i = 1,#ChatMessages do
- print(ChatMessages[i])
- end
- if #ChatMessages == h-4 then
- table.remove(ChatMessages,1)
- end
- e = {os.pullEvent()}
- if e[1] == "rednet_message" then
- table.insert(ChatMessages,e[3])
- elseif e[1] == "key" and e[2] == 28 then
- term.setCursorPos(1,h)
- term.clearLine()
- term.setCursorPos(1,h)
- local MakeMessage = read()
- if MakeMessage == "" then
- --doesn't send
- else
- rednet.broadcast(name..CustomCursor..MakeMessage)
- end
- elseif e[1] == "key" and e[2] == 29 or e[2] == 157 then
- local slc = 1
- local selected = false
- while not selected do
- printCentered(string.rep(" ",w),h)
- if slc == 1 then
- printCentered("[exit] change name cancel",h)
- elseif slc == 2 then
- printCentered(" exit [change name] cancel",h)
- elseif slc == 3 then
- printCentered(" exit change name [cancel]",h)
- end
- sel = {os.pullEvent()}
- if sel[1] == "key" then
- if sel[2] == keys.right and slc < 3 then
- slc = slc + 1
- elseif sel[2] == keys.left and slc > 1 then
- slc = slc - 1
- elseif sel[2] == keys.enter then
- selected = true
- end
- end
- end
- if slc == 1 then
- term.clear()
- printCentered("Thank you for using Block talk",1)
- printCentered("by Awesomesause200",2)
- break
- elseif slc == 2 then
- setName()
- elseif slc == 3 then
- --Replays loop before control was pressed
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment