Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.68 KB | None | 0 0
  1. --[[-------------------------------------------------------------------------
  2. Initialize
  3. ---------------------------------------------------------------------------]]
  4.  
  5. hook.Add( "Initialize", "BanJob:Hook:Initialize", function()
  6. if not file.IsDir( "ban_jobs", "DATA" ) then
  7. file.CreateDir( "ban_jobs" )
  8. end
  9. end)
  10.  
  11. --[[-------------------------------------------------------------------------
  12. Functions
  13. ---------------------------------------------------------------------------]]
  14.  
  15. function GetBanJobTime( pPlayer, intJob )
  16. if not pPlayer:IsPlayer() then return end
  17.  
  18. if not file.Exists( "ban_jobs/" .. pPlayer:SteamID64() .. ".txt", "DATA" ) then
  19. file.Write( "ban_jobs/" .. pPlayer:SteamID64() .. ".txt", "[]" )
  20. end
  21.  
  22. local tblBans = util.JSONToTable( file.Read( "ban_jobs/" .. pPlayer:SteamID64() .. ".txt", "DATA" ) ) or {}
  23.  
  24. if tblBans[intJob] != nil then
  25. if os.time() < tonumber( tblBans[intJob] ) then
  26. return tonumber( tblBans[intJob] )
  27. else
  28. return 0
  29. end
  30. else
  31. return 0
  32. end
  33. end
  34.  
  35. function IsBannedJob( pPlayer, intJob )
  36. if not pPlayer:IsPlayer() then return end
  37.  
  38. if not file.Exists( "ban_jobs/" .. pPlayer:SteamID64() .. ".txt", "DATA" ) then
  39. file.Write( "ban_jobs/" .. pPlayer:SteamID64() .. ".txt", "[]" )
  40. end
  41.  
  42. local tblBans = util.JSONToTable( file.Read( "ban_jobs/" .. pPlayer:SteamID64() .. ".txt", "DATA" ) ) or {}
  43.  
  44. if tblBans[intJob] != nil then
  45. if os.time() < tonumber( tblBans[intJob] ) then
  46. return true
  47. else
  48. return false
  49. end
  50. else
  51. return false
  52. end
  53. end
  54.  
  55. function BanJob( pVictim, intJob, intTime )
  56. if not pVictim:IsPlayer() then return end
  57. if not isnumber( intTime ) then return end
  58. if intTime < 1 then return end
  59.  
  60. if not file.Exists( "ban_jobs/" .. pVictim:SteamID64() .. ".txt", "DATA" ) then
  61. file.Write( "ban_jobs/" .. pVictim:SteamID64() .. ".txt", "[]" )
  62. end
  63.  
  64. local tblBans = util.JSONToTable( file.Read( "ban_jobs/" .. pVictim:SteamID64() .. ".txt", "DATA" ) ) or {}
  65.  
  66. tblBans[intJob] = math.floor( os.time() + intTime )
  67.  
  68. file.Write( "ban_jobs/" .. pVictim:SteamID64() .. ".txt", util.TableToJSON( tblBans ) )
  69. end
  70.  
  71. -- BanJob( Entity( 1 ), 5, 50 )
  72.  
  73. --[[-------------------------------------------------------------------------
  74. Time to Str (from internet)
  75. ---------------------------------------------------------------------------]]
  76.  
  77. local function timeToStr( time )
  78. local tmp = time
  79. local s = tmp % 60
  80. tmp = math.floor( tmp / 60 )
  81. local m = tmp % 60
  82. tmp = math.floor( tmp / 60 )
  83. local h = tmp % 24
  84. tmp = math.floor( tmp / 24 )
  85. local d = tmp % 7
  86. local w = math.floor( tmp / 7 )
  87.  
  88. return string.format( "%02is %ij %02ih %02im %02is", w, d, h, m, s )
  89. end
  90.  
  91. --[[-------------------------------------------------------------------------
  92. Revoke access
  93. ---------------------------------------------------------------------------]]
  94.  
  95. hook.Add( "playerCanChangeTeam", "BanJob:Hook:playerCanChangeTeam", function( pPlayer, intTeam )
  96. if IsBannedJob( pPlayer, intTeam ) then
  97. local dateTime = timeToStr( GetBanJobTime( pPlayer, intTeam ) - os.time() )
  98.  
  99. DarkRP.notify( pPlayer, 1, 5, "Vous êtes banni de ce métier : " .. dateTime )
  100. return false
  101. end
  102. end)
  103.  
  104. --[[-------------------------------------------------------------------------
  105. Ban System
  106. ---------------------------------------------------------------------------]]
  107.  
  108. hook.Add( "PlayerDeath", "BanJob:Hook:PlayerDeath", function( pPlayer )
  109. -- if OnePiece_BanJob.Times[team.GetName( pPlayer:Team() ) ] != nil then
  110. -- local intTime = OnePiece_BanJob.Times[team.GetName( pPlayer:Team() ) ] or 0
  111. -- BanJob( pPlayer, pPlayer:Team(), intTime )
  112. -- pPlayer:changeTeam( GAMEMODE.DefaultTeam, true, true )
  113. -- end
  114. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement