Advertisement
chopstyix

db

Feb 7th, 2022 (edited)
878
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.95 KB | None | 0 0
  1. local lib = require("lib")
  2. local pd = peripheral.find("playerDetector")
  3. local filename = "db.txt"
  4.  
  5. local debug = 0
  6. local username = "Bob"
  7.  
  8. function getPlayerName()
  9.   local _player = pd.getPlayersInRange(5)
  10.   -- Get the name of the player in index one of table 'player'
  11.   return _player[1]
  12. end
  13.  
  14.  
  15. function findPlayer(_player)
  16.   local _file = fs.open(filename,"r")
  17.   local _data = textutils.unserialize(_file.readAll())
  18.   for k,v in pairs(_data) do
  19.     print(k,v)
  20.     if _player == k then print("Found",_player) return true,k,v end
  21.   end
  22.   _file.close()
  23.   return false
  24. end
  25.  
  26. function updatePlayer(_player)
  27.   local _DBfile = fs.open(filename,"r")
  28.   local database = textutils.unserialize(_DBfile.readAll())
  29.   _DBfile.close()
  30.   local _file = fs.open(filename,"w")
  31.   database[_player] = lib.getCurrentDate()
  32.   local _tbl = textutils.serialize(database)
  33.   _file.writeLine(_tbl)
  34.   _file.close()
  35. end
  36.  
  37. -- function updatePlayerDate(_player)
  38.   -- local _DBfile = fs.open(filename,"r")
  39.   -- local database = textutils.unserialize(_DBfile.readAll())
  40.   -- _DBfile.close()
  41.   -- database[_player] = lib.getCurrentDate()
  42.  
  43.  
  44. -- Main Code Begins
  45. print("Waiting for redstone signal")
  46. local event = os.pullEvent("redstone") -- Wait for redstone signal
  47. print("Detected Signal")
  48. sleep(2)
  49. local player
  50.  
  51. if debug == 1 then
  52.   player = username
  53. else
  54.   player = getPlayerName()
  55. end
  56. print("Detected player:",player)
  57. -- Find player in db
  58. if findPlayer(player) then
  59.   local success,k,v = findPlayer(player)
  60.   if v < lib.getCurrentDate() then
  61.     print("Player is able to play, updating date")
  62.     updatePlayer(player)
  63.     -- Update player in db
  64.   else
  65.     print("You've already played today!")
  66.   end
  67.   --print(k,v)
  68. else
  69.   print("Player not found! Adding player to 'db'...")
  70.   updatePlayer(player)
  71.   -- Player is able to play
  72. end
  73. -- If player is found in db, update 'last date played'
  74.  
  75. -- If player is not found in db, add player to db
  76. -- Main Code Ends
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement