Advertisement
Darking560

SecuritySensor

Jul 30th, 2015
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.17 KB | None | 0 0
  1. --Zone editable du programme--
  2.  
  3. local blacklist = {PseudoExemple=true}
  4. local whitelist = {}
  5.  
  6. --Ne pas toucher au programme apres cette ligne--
  7.  
  8.  
  9. local continuer = true
  10. local prevList = {}
  11. local default = "Darking"
  12.  
  13. function side()
  14.     local sensorSide
  15.    
  16.     for n,m in pairs(rs.getSides())  do
  17.         if peripheral.getType(m) == "openperipheral_sensor" then
  18.             sensorSide = m
  19.         end
  20.     end
  21.     if sensorSide ~= nil then
  22.         print("Found monitor as "..sensorSide)
  23.         return(sensorSide)
  24.     else
  25.         print("Cannot found Sensor")
  26.         continuer = false
  27.         return(nil)
  28.     end
  29. end
  30.  
  31. function mylog(text)
  32.     mydate = http.get("http://philipperydin.com/time2.php").readAll()
  33.     mytime = http.get("http://philipperydin.com/time.php").readAll()
  34.    
  35.     if not fs.isDir("log") then
  36.         fs.makeDir("log")
  37.     end
  38.    
  39.     file = fs.open("log/"..mydate,"a")
  40.     file.writeLine("["..mytime.."] "..text)
  41.     file.close()
  42. end
  43.  
  44. function compare(list1,list2)
  45.     for m,n in pairs(list1) do
  46.         local ok = false
  47.         for o,p in pairs(list2) do
  48.             if n.name == p.name then
  49.                 ok = true
  50.             end
  51.         end
  52.         if not ok then
  53.             if not whitelist[n.name] then
  54.                 print(n.name.." est entrer")
  55.                 mylog(n.name.." entre dans la zone de "..os.getComputerLabel())
  56.                 if blacklist[n.name] then
  57.                     rs.setOutput("bottom",true)
  58.                 end
  59.             end
  60.         end
  61.     end
  62.    
  63.     for m,n in pairs(list2) do
  64.         local ok = false
  65.         for o,p in pairs(list1) do
  66.             if n.name == p.name then
  67.                 ok = true
  68.             end
  69.         end
  70.         if not ok then
  71.             if not whitelist[n.name] then
  72.                 print(n.name.." est sorti")
  73.                 mylog(n.name.." sort de la zone de "..os.getComputerLabel())
  74.                 if blacklist[n.name] then
  75.                     rs.setOutput("bottom",false)
  76.                 end
  77.             end
  78.         end
  79.     end
  80.  
  81.  
  82. end
  83.  
  84.  
  85. side = side()
  86. if side ~= nil then
  87.     s = peripheral.wrap(side)
  88.     first = s.getPlayers()
  89.     default = first[1].name
  90. end
  91.    
  92. if os.getComputerLabel() == nil then
  93.     print("Error: No Computer's Label")
  94.     print("Pour Labeliser un computer la commande est :")
  95.     print("label set <nom>")
  96.     print("Par exemple \"label set "..default.."Base\"")
  97.     continuer = false
  98. end
  99.  
  100. while continuer do
  101.     --print("scanning...")
  102.     list = s.getPlayers()
  103.     compare(list,prevList)
  104.     prevList = list
  105.     sleep(2)
  106.     --read()
  107. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement