Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[Settings]]--
- enderCeiver = "NQ3dvfFi"
- enderSender = "Ud31mJ72"
- --[[Variables & peripherals]]--
- local width, height = term.getSize()
- local list = {"Install enderSender", "Install enderCeiver", "Quit"}
- --[[Functions]]--
- local function round(number)
- return math.floor(number + 0.5)
- end
- local function spaces(number)
- for i = 1, number do
- write(" ")
- end
- end
- function menu(list, selector)
- local selector = selector or {"[", "]"}
- local longestItem = 0
- local width, height = term.getSize()
- for i, item in pairs(list) do
- if #item > longestItem then
- longestItem = #item
- end
- end
- local selected = 1
- local startX = round((width / 2) - (longestItem / 2)) - 2
- local startY = round((height / 2) - (#list / 2))
- for i, j in pairs(list) do
- if #j > longestItem then
- longestItem = #j
- end
- end
- local running = true
- while running do
- curX = startX
- curY = startY
- for i, item in pairs(list) do
- term.setCursorPos(curX, curY)
- if i == selected then
- write(selector[1].." "..item)
- spaces(longestItem - #item + 1)
- write(selector[2])
- else
- spaces(2)
- write(item)
- spaces(longestItem - #item + 2)
- end
- curY = curY + 1
- end
- event, key = os.pullEvent("key")
- if key == keys.up and selected > 1 then
- selected = selected - 1
- elseif key == keys.down and selected < #list then
- selected = selected + 1
- elseif key == keys.enter then
- return list[selected]
- elseif key == keys.q then
- return "quit"
- end
- end
- end
- local function modifyStartup(programName, redstoneSide, chestSide)
- if fs.exists("startup") then
- print("Backing up old startup file to /backupStartup...")
- fs.delete("backupStartup")
- fs.copy("startup", "backupStartup")
- end
- print('"Creating new startup file to run file "'..programName..'"')
- startup = fs.open("startup", "w")
- startup.writeLine("shell.run('"..programName.." "..redstoneSide.." "..chestSide.."')")
- startup.close()
- end
- function askSettings()
- print("Redstone side:")
- redstoneSide = read()
- print("Ender chest side:")
- chestSide = read()
- return redstoneSide, chestSide
- end
- --[[Main program]]--
- shell.run("clear")
- option = menu(list)
- shell.run("clear")
- if option == list[1] then
- if fs.exists("enderSender") then
- print("Deleting old enderSender file...")
- fs.delete("enderSender")
- end
- shell.run("pastebin get "..enderSender.." enderSender")
- modifyStartup("enderSender", askSettings())
- elseif option == list[2] then
- if fs.exists("enderCeiver") then
- print("Deleting old enderCeiver file...")
- fs.delete("enderCeiver")
- end
- shell.run("pastebin get "..enderCeiver.." enderCeiver")
- modifyStartup("enderCeiver", askSettings())
- end
- os.reboot()
Advertisement
Add Comment
Please, Sign In to add comment