THEJean_Kevin

OpenComputer OnlineDetector

Mar 22nd, 2018
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.44 KB | None | 0 0
  1. local internet   = require("internet")
  2. local component  = require("component")
  3. local rs         = component.redstone
  4. local sides      = require("sides")
  5. local event      = require("event")
  6. local fs         = require("filesystem")
  7. local term       = require("term")
  8. local computer   = require("computer")
  9. local shell      = require("shell")
  10. local apiUrl     = "https://api.mineaurion.com/v1/serveurs/"
  11. --Function
  12. local function getStringFromResponce(responce)
  13.   local ret = ""
  14.   local resp = responce()
  15.   while(resp~=nil) do
  16.     ret = ret..tostring(resp)
  17.     resp = responce()
  18.   end
  19.   return ret
  20. end
  21.  
  22. local function getHTTPData(url)
  23.   local ret = nil
  24.   local request, responce = pcall(internet.request, url)
  25.   if(request) then
  26.     ret = getStringFromResponce(responce)
  27.   end
  28.   return ret
  29. end
  30.  
  31. local function has_value(tab,val)
  32.   for index,value in ipairs(tab) do
  33.     if value == val then
  34.       return true
  35.     end
  36.   end
  37.   return false
  38. end
  39.  
  40. --Debut prog
  41. if fs.exists('/lib/json.lua') == false then
  42.   shell.execute('wget -fq "https://pastebin.com/raw/4UWzY19u" "/lib/json.lua"')
  43. end
  44. local json = require("json")
  45.  
  46. if fs.exists('/home/player') == false then
  47.   print("Entrez votre pseudo")
  48.   name = term.read()
  49.   print("Entrez l'adresse du serveur ex: infinity.mineaurion.com")
  50.   serveur = term.read()
  51.  
  52.   local file = io.open("/home/player","w")
  53.   file:write(name)
  54.   file:write(serveur)
  55.   file:close()
  56.  
  57.   local shrc = io.open("/home/.shrc","a")
  58.   shrc:write("/home/detecteur.lua")
  59.   shrc:close()
  60.   computer.shutdown(true)
  61. else
  62.   local file = io.open("/home/player","r")
  63.   name     = file:read()
  64.   serveur  = file:read()
  65.   print("Detecte le joueur : " .. name)
  66.   print("Sur le serveur : " .. serveur)
  67. end
  68. --Reset redstone
  69. rs.setOutput(sides.front,0)
  70. rs.setOutput(sides.top,0)
  71. rs.setOutput(sides.left,0)
  72. rs.setOutput(sides.right,0)
  73. rs.setOutput(sides.bottom,0)
  74.  
  75. --Boucle
  76. while true do
  77.   apiJson = json.decode(getHTTPData(apiUrl .. serveur))
  78.   if apiJson.joueurs ~= false then
  79.     if has_value(apiJson["joueurs"], name) then
  80.       rs.setOutput(sides.front,15)
  81.       --rs.setOutput(sides.top,15)
  82.       rs.setOutput(sides.left,15)
  83.       rs.setOutput(sides.right,15)
  84.       rs.setOutput(sides.bottom,15)
  85.     else
  86.       rs.setOutput(sides.front,0)
  87.       --rs.setOutput(sides.top,0)
  88.       rs.setOutput(sides.left,0)
  89.       rs.setOutput(sides.right,0)
  90.       rs.setOutput(sides.bottom,0)
  91.     end
  92.   end
  93.   os.sleep(10)
  94. end
Advertisement
Add Comment
Please, Sign In to add comment