Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2020
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. ESX = nil
  2.  
  3. TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
  4.  
  5. AddEventHandler('esx:playerLoaded', function(source)
  6. local _source = source
  7. local xPlayer = ESX.GetPlayerFromId(_source)
  8.  
  9. MySQL.Async.fetchAll(
  10. 'SELECT * FROM users WHERE identifier = @identifier',
  11. {
  12. ['@identifier'] = xPlayer.identifier
  13. },
  14. function(result)
  15.  
  16. local data = {}
  17.  
  18. if result[1].status ~= nil then
  19. data = json.decode(result[1].status)
  20. end
  21.  
  22. xPlayer.set('status', data)
  23.  
  24. TriggerClientEvent('esx_status:load', _source, data)
  25.  
  26. end
  27. )
  28.  
  29. end)
  30.  
  31. AddEventHandler('esx:playerDropped', function(source)
  32. local _source = source
  33. local xPlayer = ESX.GetPlayerFromId(_source)
  34.  
  35. local data = {}
  36. local status = xPlayer.get('status')
  37.  
  38. MySQL.Async.execute(
  39. 'UPDATE users SET status = @status WHERE identifier = @identifier',
  40. {
  41. ['@status'] = json.encode(status),
  42. ['@identifier'] = xPlayer.identifier
  43. }
  44. )
  45.  
  46. end)
  47.  
  48. AddEventHandler('esx_status:getStatus', function(playerId, statusName, cb)
  49. local xPlayer = ESX.GetPlayerFromId(playerId)
  50. local status = xPlayer.get('status')
  51.  
  52. for i=1, #status, 1 do
  53. if status[i].name == statusName then
  54. cb(status[i])
  55. break
  56. end
  57. end
  58.  
  59. end)
  60.  
  61. RegisterServerEvent('esx_status:update')
  62. AddEventHandler('esx_status:update', function(status)
  63. local _source = source
  64. local xPlayer = ESX.GetPlayerFromId(_source)
  65.  
  66. if xPlayer then
  67. xPlayer.set('status', status)
  68. end
  69. end)
  70.  
  71. function SaveData()
  72. local xPlayers = ESX.GetPlayers()
  73.  
  74. for i=1, #xPlayers, 1 do
  75.  
  76. local xPlayer = ESX.GetPlayerFromId(xPlayers[i])
  77. local data = {}
  78. local status = xPlayer.get('status')
  79.  
  80. MySQL.Async.execute(
  81. 'UPDATE users SET status = @status WHERE identifier = @identifier',
  82. {
  83. ['@status'] = json.encode(status),
  84. ['@identifier'] = xPlayer.identifier
  85. }
  86. )
  87.  
  88. end
  89.  
  90. SetTimeout(10 * 60 * 1000, SaveData)
  91. end
  92.  
  93. SaveData()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement