Advertisement
Ewgeniy

FBAPI

Nov 16th, 2021
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.96 KB | None | 0 0
  1. local FBAPI = {}
  2.  
  3. function FBAPI.rfidcheck()
  4.  
  5.   local component = require("component")
  6.  
  7.   if component.isAvailable("OSRFIDReader") then
  8.     return "OSRFIDReader"
  9.   elseif component.isAvailable("os_rfidreader") then
  10.     return "os_rfidreader"
  11.   else
  12.     return false
  13.   end
  14.  
  15. end
  16.  
  17. function FBAPI.redstonecheck()
  18.   local component = require("component")
  19.  
  20.   if component.isAvailable("redstone") then
  21.     return true
  22.   else
  23.     return false
  24.   end
  25.  
  26. end
  27.  
  28. function FBAPI.rfidread(password, range, side, settings)
  29.  
  30.   if password ~= "" and range and side then
  31.  
  32.     local component = require("component")
  33.  
  34.     if component.isAvailable("OSRFIDReader") then
  35.       local reader = component.OSRFIDReader
  36.       FBAPI.rfidwhile(reader, password, range, side, settings)
  37.     elseif component.isAvailable("os_rfidreader") then
  38.       local reader = component.os_rfidreader
  39.       FBAPI.rfidwhile(reader, password, range, side, settings)
  40.     else
  41.       return "block"
  42.     end
  43.  
  44.   else
  45.     return "settings"
  46.   end
  47.  
  48. end
  49.  
  50. function FBAPI.rfidwhile(reader, password, range, side, settings)
  51.  
  52.   local event = require("event")
  53.   local component = require("component")
  54.  
  55.   while true do
  56.     local eventType, _, _, key_code = event.pull(0)
  57.     if eventType == "key_down" and key_code == 28 then
  58.       if settings["redstone"] == true and component.isAvailable("redstone") then
  59.         component.redstone.setOutput(side, 0)
  60.       end
  61.       if settings["doorcontroller"] == true and component.isAvailable("os_doorcontroller") then
  62.         component.os_doorcontroller.close()
  63.       end
  64.       if settings["rolldoorcontroller"] == true and component.isAvailable("os_rolldoorcontroller") then
  65.         component.os_rolldoorcontroller.close()
  66.       end
  67.       break
  68.     else
  69.       local player = reader.scan()[1]
  70.       if player and player.data == password and player.range <= range then
  71.         if settings["redstone"] == true and component.isAvailable("redstone") then
  72.           component.redstone.setOutput(side, 15)
  73.         end
  74.         if settings["doorcontroller"] == true and component.isAvailable("os_doorcontroller") then
  75.           component.os_doorcontroller.open()
  76.         end
  77.         if settings["rolldoorcontroller"] == true and component.isAvailable("os_rolldoorcontroller") then
  78.           component.os_rolldoorcontroller.open()
  79.         end
  80.       else
  81.         if settings["redstone"] == true and component.isAvailable("redstone") then
  82.           component.redstone.setOutput(side, 0)
  83.         end
  84.         if settings["doorcontroller"] == true and component.isAvailable("os_doorcontroller") then
  85.           component.os_doorcontroller.close()
  86.         end
  87.         if settings["rolldoorcontroller"] == true and component.isAvailable("os_rolldoorcontroller") then
  88.           component.os_rolldoorcontroller.close()
  89.         end
  90.       end
  91.     end
  92.   end
  93.  
  94. end
  95.  
  96. function FBAPI.cardwrite(name, password, block)
  97.  
  98.   if name ~= "" and password ~= "" then
  99.  
  100.     local component = require("component")
  101.  
  102.     if component.isAvailable("OSCardWriter") then
  103.  
  104.       local writer = component.OSCardWriter
  105.       local success = writer.write(password, name, block)
  106.       return "success"
  107.  
  108.     elseif component.isAvailable("os_cardwriter") then
  109.  
  110.       local writer = component.os_cardwriter
  111.       local success = writer.write(password, name, block)
  112.       return "success"
  113.  
  114.     else
  115.       return "block"
  116.     end
  117.  
  118.   else
  119.     return "settings"
  120.   end
  121.  
  122. end
  123.  
  124. function FBAPI.magread(password, side, sec, settings)
  125.  
  126.   if password ~= "" and side and sec then
  127.  
  128.     local component = require("component")
  129.     local event = require("event")
  130.  
  131.     while true do
  132.       local output = { event.pull() }
  133.       if output[1] == "magData" then
  134.         if output[4] == password then
  135.  
  136.           if settings["redstone"] == true and component.isAvailable("redstone") then
  137.             component.redstone.setOutput(side, 15)
  138.           end
  139.           if settings["doorcontroller"] == true and component.isAvailable("os_doorcontroller") then
  140.             component.os_doorcontroller.toggle()
  141.           end
  142.           if settings["rolldoorcontroller"] == true and component.isAvailable("os_rolldoorcontroller") then
  143.             component.os_rolldoorcontroller.toggle()
  144.           end
  145.  
  146.           event.sleep(sec)
  147.  
  148.         else
  149.           event.sleep(sec)
  150.         end
  151.  
  152.           if settings["redstone"] == true and component.isAvailable("redstone") then
  153.             component.redstone.setOutput(side, 0)
  154.           end
  155.           if settings["doorcontroller"] == true and component.isAvailable("os_doorcontroller") then
  156.             component.os_doorcontroller.close()
  157.           end
  158.           if settings["rolldoorcontroller"] == true and component.isAvailable("os_rolldoorcontroller") then
  159.             component.os_rolldoorcontroller.close()
  160.           end
  161.  
  162.       elseif output[1] == "key_down" and output[4] == 28 then
  163.         break
  164.       end
  165.     end
  166.  
  167.   else
  168.     return "settings"
  169.   end
  170.  
  171. end
  172.  
  173. return FBAPI
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement