local oldPull = os.pullEvent
os.pullEvent = os.pullEventRaw
term.clear()
if not fs.exists("./sha256.lua") then
local sha = http.get("https://pastebin.com/raw/6UV4qfNF")
if sha == nil then
error("Failed to download sha256.lua",0)
end
local shaFile = fs.open("./sha256.lua","w")
shaFile.write(sha.readAll())
shaFile.close()
sha.close()
end
local sha256 = require("sha256")
local lockName = "Ammonia" -- Feel free to rename this if you'd like, just don't make it too long.
local tx,ty = term.getSize()
term.setCursorPos(tx-string.len(lockName),1)
term.setTextColor(colors.gray) -- If you want the text to not be visible, make it colors.black.
term.write(lockName)
term.setTextColor(colors.white)
if not fs.exists("/.amcreds") then
term.setCursorPos(1,1)
term.write("Please insert your password")
print()
local pass = read("\007")
print("Please repeat your password.")
local pass2 = read("\007")
while pass2 ~= pass do
print("Passwords do not match, please try again.")
pass2 = read("\007")
end
local hpass = string.char(unpack(sha256.digest(pass)))
local creds = fs.open("/.amcreds","w")
print(textutils.serialize(hpass))
creds.write(hpass)
creds.close()
os.reboot()
elseif fs.exists("/.amcreds") then
term.setCursorPos(1,1)
term.write("Welcome, please log in.")
print()
local creds = fs.open("/.amcreds","r")
local hpass = creds.readAll()
creds.close()
local pass = read("\007")
local hpass2 = string.char(unpack(sha256.digest(pass)))
while hpass2 ~= hpass do
print("Incorrect password, please try again.")
pass = read("\007")
hpass2 = string.char(unpack(sha256.digest(pass)))
end
end
term.clear()
term.setTextColor(colors.yellow)
term.setCursorPos(1,1)
term.write("CraftOS 1.8")
print()