Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- mon=peripheral.wrap("left")
- list={}
- playerAdmins={}
- menu={[1]="Add item to board",[2]="Remove item from board"}
- mon.setTextScale(2)
- monitorsizex, monitorsizey = mon.getSize()
- local function saveList()
- if fs.exists("list.dat") then
- fs.delete("list.dat")
- end
- file = fs.open("list.dat", "w")
- file.write(textutils.serialize(list))
- file.close()
- end
- local function loadList()
- if fs.exists("list.dat") then
- file = fs.open("list.dat", "r")
- list = textutils.unserialize(file.readAll())
- file.close()
- end
- end
- local function addToList(info,player,forplayer)
- list[#list+1]={info,player,forplayer}
- saveList()
- end
- local function removeFromList(number, player)
- if isAdmin(player) or list[number].player=="" or string.upper(player)==string.upper(list[number].player) or string.upper(player)==string.upper(list[number].forplayer) then
- table.remove(list,number)
- end
- saveList()
- end
- local function isAdmin(name)
- if name=="" then return false end
- for i,j in pairs(playerAdmins) do
- if string.upper(player)==string.upper(j) then return true end
- end
- return false
- end
- local function printLine(line, text)
- mon.setCursorPos(1,line)
- mon.write(text)
- return line+1
- end
- local function splitString(text,length)
- return string.sub(text,1,length), string.sub(text,length+1)
- end
- local function printList()
- mon.clear()
- line=1
- for i,j in pairs(list) do
- forplayer=""
- if j.forplayer~="" then forplayer=j.forplayer..": " end
- fromplayer=""
- if j.player~="" then fromplayer=" - "..j.player end
- printtext="["..i.."] "..forplayer..j.info..fromplayer
- while string.length(printtext)>monitorsizex do --this just handles text wrapping
- printline, printtext = splitString(printtext,monitorsizex)
- line=printLine(printline,line)
- end
- printline(printtext,line)
- end
- end
- local function addItem()
- print("Add Item)
- print("Type \ at any point to cancel")
- print("Text to add:")
- input=""
- while input=="" do
- input=read()
- if input=="\" then return end
- end
- print("Receiving Player (Optional)")
- forplayer=read()
- if forplayer=="\" then return end
- print("Sending Player (Optional)")
- fromplayer=read()
- if fromplayer=="\" then return end
- addItemToList(input,fromplayer,forplayer)
- printList()
- end
- local function removeItem()
- print("Remove Item)
- print("Type \ at any point to cancel")
- print("Item to remove")
- input=0
- while input<1 or input>2 do
- input=read()
- if input=="\" then return end
- input=tonumber(input)
- end
- print("Your Name (Optional)")
- player=read()
- if player=="\" then return end
- removeFromList(input, player)
- printList()
- end
- local function printMenu()
- while true do
- term.clear()
- for i,j in pairs(menu) do
- print("["..i.."] "..j)
- end
- input=0
- while not (input>0 and input<=#menu) do --#loops until valid input
- input=tonumber(read())
- end
- if input==1 then
- addItem()
- else
- removeItem()
- end
- end
- end
- loadList()
- printList()
- printMenu()
Advertisement
Add Comment
Please, Sign In to add comment