Skip to content

Instantly share code, notes, and snippets.

@Quader
Created November 13, 2014 20:24
Show Gist options
  • Save Quader/7f751952fbc85447f7e5 to your computer and use it in GitHub Desktop.
Save Quader/7f751952fbc85447f7e5 to your computer and use it in GitHub Desktop.
local myid = os.computerID()
local doorList = { 11,13 }
local passwordForDoor = { "notch","minecraft" }
mon=peripheral.wrap("top")
print("Access Terminal")
os.loadAPI("json")
os.loadAPI("peripherals")
local deviceSide = peripherals.getDeviceSide("modem")
rednet.open(string.lower(deviceSide))
print("Computer id for Access Terminal is "..tostring(myid))
function findIndexForId(id)
for i,v in ipairs(doorList) do
if id == v then
return i
end
end
return 0
end
function setPasswordForLock(id,password)
local i = findIndexForId(id)
if i == 0 then
return false
end
passwordForDoor[i] = password
print("in setPasswordForLock"..id..password)
return true
end
function checkPasswordForLock(password, player)
fileStr = http.get("https://quadercc.cloudant.com/cc/b4c17ee1b81a2799bd30e95ceb2cbb4e")
jsonObj = json.decode(fileStr.readAll())
for key, value in pairs(jsonObj) do
if key == "player" then
local playerObj = value
for key,value in pairs(playerObj) do
if value["name"] == player and value["password"] == password then
return 1
end
end
return 0
end
end
if i == 0 then
return -1
end
if passwordForDoor[i] == password then
return 1
else
return 0
end
end
local isValid = 0
while true do
local timeString = textutils.formatTime(os.time(),false)
local senderId, response = rednet.receive()
local responseTable = json.decode(response)
isValid = checkPasswordForLock(responseTable["password"], responseTable["name"])
print(tostring(isValid))
if isValid == -1 then
print("server "..senderId.." sent us a request but is not in our list")
elseif isValid == 1 then
rednet.send(senderId, "Valid")
else
rednet.send(senderId, "Not Valid")
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment