Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[-------------------------------------------------------------------------
- Initialize
- ---------------------------------------------------------------------------]]
- hook.Add( "Initialize", "BanJob:Hook:Initialize", function()
- if not file.IsDir( "ban_jobs", "DATA" ) then
- file.CreateDir( "ban_jobs" )
- end
- end)
- --[[-------------------------------------------------------------------------
- Functions
- ---------------------------------------------------------------------------]]
- function GetBanJobTime( pPlayer, intJob )
- if not pPlayer:IsPlayer() then return end
- if not file.Exists( "ban_jobs/" .. pPlayer:SteamID64() .. ".txt", "DATA" ) then
- file.Write( "ban_jobs/" .. pPlayer:SteamID64() .. ".txt", "[]" )
- end
- local tblBans = util.JSONToTable( file.Read( "ban_jobs/" .. pPlayer:SteamID64() .. ".txt", "DATA" ) ) or {}
- if tblBans[intJob] != nil then
- if os.time() < tonumber( tblBans[intJob] ) then
- return tonumber( tblBans[intJob] )
- else
- return 0
- end
- else
- return 0
- end
- end
- function IsBannedJob( pPlayer, intJob )
- if not pPlayer:IsPlayer() then return end
- if not file.Exists( "ban_jobs/" .. pPlayer:SteamID64() .. ".txt", "DATA" ) then
- file.Write( "ban_jobs/" .. pPlayer:SteamID64() .. ".txt", "[]" )
- end
- local tblBans = util.JSONToTable( file.Read( "ban_jobs/" .. pPlayer:SteamID64() .. ".txt", "DATA" ) ) or {}
- if tblBans[intJob] != nil then
- if os.time() < tonumber( tblBans[intJob] ) then
- return true
- else
- return false
- end
- else
- return false
- end
- end
- function BanJob( pVictim, intJob, intTime )
- if not pVictim:IsPlayer() then return end
- if not isnumber( intTime ) then return end
- if intTime < 1 then return end
- if not file.Exists( "ban_jobs/" .. pVictim:SteamID64() .. ".txt", "DATA" ) then
- file.Write( "ban_jobs/" .. pVictim:SteamID64() .. ".txt", "[]" )
- end
- local tblBans = util.JSONToTable( file.Read( "ban_jobs/" .. pVictim:SteamID64() .. ".txt", "DATA" ) ) or {}
- tblBans[intJob] = math.floor( os.time() + intTime )
- file.Write( "ban_jobs/" .. pVictim:SteamID64() .. ".txt", util.TableToJSON( tblBans ) )
- end
- -- BanJob( Entity( 1 ), 5, 50 )
- --[[-------------------------------------------------------------------------
- Time to Str (from internet)
- ---------------------------------------------------------------------------]]
- local function timeToStr( time )
- local tmp = time
- local s = tmp % 60
- tmp = math.floor( tmp / 60 )
- local m = tmp % 60
- tmp = math.floor( tmp / 60 )
- local h = tmp % 24
- tmp = math.floor( tmp / 24 )
- local d = tmp % 7
- local w = math.floor( tmp / 7 )
- return string.format( "%02is %ij %02ih %02im %02is", w, d, h, m, s )
- end
- --[[-------------------------------------------------------------------------
- Revoke access
- ---------------------------------------------------------------------------]]
- hook.Add( "playerCanChangeTeam", "BanJob:Hook:playerCanChangeTeam", function( pPlayer, intTeam )
- if IsBannedJob( pPlayer, intTeam ) then
- local dateTime = timeToStr( GetBanJobTime( pPlayer, intTeam ) - os.time() )
- DarkRP.notify( pPlayer, 1, 5, "Vous êtes banni de ce métier : " .. dateTime )
- return false
- end
- end)
- --[[-------------------------------------------------------------------------
- Ban System
- ---------------------------------------------------------------------------]]
- hook.Add( "PlayerDeath", "BanJob:Hook:PlayerDeath", function( pPlayer )
- -- if OnePiece_BanJob.Times[team.GetName( pPlayer:Team() ) ] != nil then
- -- local intTime = OnePiece_BanJob.Times[team.GetName( pPlayer:Team() ) ] or 0
- -- BanJob( pPlayer, pPlayer:Team(), intTime )
- -- pPlayer:changeTeam( GAMEMODE.DefaultTeam, true, true )
- -- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement