73 lines
		
	
	
		
			No EOL
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			No EOL
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
local QBCore = exports['qb-core']:GetCoreObject()
 | 
						|
local isLoggedIn = LocalPlayer.state.isLoggedIn
 | 
						|
local checkUser = true
 | 
						|
local prevPos, time = nil, nil
 | 
						|
local timeMinutes = {
 | 
						|
    ['900'] = 'minutes',
 | 
						|
    ['600'] = 'minutes',
 | 
						|
    ['300'] = 'minutes',
 | 
						|
    ['150'] = 'minutes',
 | 
						|
    ['60'] = 'minutes',
 | 
						|
    ['30'] = 'seconds',
 | 
						|
    ['20'] = 'seconds',
 | 
						|
    ['10'] = 'seconds',
 | 
						|
}
 | 
						|
 | 
						|
local function updatePermissionLevel()
 | 
						|
    QBCore.Functions.TriggerCallback('qb-afkkick:server:GetPermissions', function(userGroups)
 | 
						|
        for k in pairs(userGroups) do
 | 
						|
            if Config.AFK.ignoredGroups[k] then
 | 
						|
                checkUser = false
 | 
						|
                break
 | 
						|
            end
 | 
						|
            checkUser = true
 | 
						|
        end
 | 
						|
    end)
 | 
						|
end
 | 
						|
 | 
						|
RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function()
 | 
						|
    updatePermissionLevel()
 | 
						|
    isLoggedIn = true
 | 
						|
end)
 | 
						|
 | 
						|
RegisterNetEvent('QBCore:Client:OnPlayerUnload', function()
 | 
						|
    isLoggedIn = false
 | 
						|
end)
 | 
						|
 | 
						|
RegisterNetEvent('QBCore:Client:OnPermissionUpdate', function()
 | 
						|
    updatePermissionLevel()
 | 
						|
end)
 | 
						|
 | 
						|
CreateThread(function()
 | 
						|
    while true do
 | 
						|
        Wait(10000)
 | 
						|
        local ped = PlayerPedId()
 | 
						|
        if isLoggedIn == true or Config.AFK.kickInCharMenu == true then
 | 
						|
            if checkUser then
 | 
						|
                local currPos = GetEntityCoords(ped, true)
 | 
						|
                if prevPos then
 | 
						|
                    if currPos == prevPos then
 | 
						|
                        if time then
 | 
						|
                            if time > 0 then
 | 
						|
                                local _type = timeMinutes[tostring(time)]
 | 
						|
                                if _type == 'minutes' then
 | 
						|
                                    QBCore.Functions.Notify(Lang:t('afk.will_kick') .. math.ceil(time / 60) .. Lang:t('afk.time_minutes'), 'error', 10000)
 | 
						|
                                elseif _type == 'seconds' then
 | 
						|
                                    QBCore.Functions.Notify(Lang:t('afk.will_kick') .. time .. Lang:t('afk.time_seconds'), 'error', 10000)
 | 
						|
                                end
 | 
						|
                                time -= 10
 | 
						|
                            else
 | 
						|
                                TriggerServerEvent('KickForAFK')
 | 
						|
                            end
 | 
						|
                        else
 | 
						|
                            time = Config.AFK.secondsUntilKick
 | 
						|
                        end
 | 
						|
                    else
 | 
						|
                        time = Config.AFK.secondsUntilKick
 | 
						|
                    end
 | 
						|
                end
 | 
						|
                prevPos = currPos
 | 
						|
            end
 | 
						|
        end
 | 
						|
    end
 | 
						|
end) |