Guest User

Untitled

a guest
Mar 31st, 2015
473
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --Credit to LDDestroyer for original: http://pastebin.com/W4GLNE39
  2.  
  3. names = peripheral.getNames()
  4. sides = {"right", "left", "top", "bottom", "front", "back"}
  5. for k,v in pairs(sides) do
  6.         if peripheral.getType(v)=="modem" then
  7.                 rednet.open(v)
  8.                 isOpen=true
  9.         end
  10. end
  11.  
  12. function getCompNames()
  13.         compNames = {}
  14.         compIDs = {}
  15.         names = peripheral.getNames()
  16.         for a = 1, #names do
  17.                 ifcomp = true
  18.                 for b = 1, #sides do
  19.                         if names[a] == sides[b] then
  20.                                 ifcomp = false
  21.                         end
  22.                 end
  23.                 if ifcomp == true then
  24.                         c = peripheral.wrap(names[a])
  25.                         table.insert(compNames, names[a])
  26.                         table.insert(compIDs, c.getID())
  27.                 end
  28.         end
  29. end
  30.  
  31. function checkForComps()
  32.         while true do
  33.                 oldCompNames = compNames
  34.                 getCompNames()
  35.                 sleep(0)
  36.                 if compNames ~= oldCompNames then
  37.                         printCompNames()
  38.                         turnCompsOff()
  39.                         oldnames = names
  40.                 end
  41.         end
  42. end
  43.  
  44. function printCompNames()
  45.         term.clear()
  46.         term.setCursorPos(1,1)
  47.         getCompNames()
  48.         print("Computers connected:")
  49.         for a = 1, #compNames do
  50.                 print(" " .. compNames[a] .. " (id:" .. compIDs[a] .. ")")
  51.         end
  52.         print("")
  53.         print("'R': reboot all")
  54.         print("'X': exit")
  55.         sleep(0.1)
  56. end
  57.  
  58. function turnCompsOff()
  59.         getCompNames()
  60.         for a = 1, #compNames do
  61.                 c = peripheral.wrap(compNames[a])
  62.                 c.turnOff()
  63.         end
  64.         sleep(0.1)
  65. end
  66.  
  67. function keyPress()
  68.         while true do
  69.                 local event, key = os.pullEvent("char")
  70.                 if key == "x" then
  71.                         return
  72.                 end
  73.         end
  74. end
  75.  
  76. printCompNames()
  77. parallel.waitForAny(checkForComps, keyPress)
  78.  
  79. normCurY = #compNames + 5
  80. term.setCursorPos(1,normCurY)
RAW Paste Data