forked from Simnation/Main
73 lines
2.4 KiB
Lua
73 lines
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)
|