1
0
Fork 0
forked from Simnation/Main
Main/resources/[qb]/qb-smallresources/client/afk.lua

73 lines
2.4 KiB
Lua
Raw Normal View History

2025-06-07 08:51:21 +02:00
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)