Clients/Client2018/content/scripts/CoreScripts/Modules/PlayerPermissionsModule.lua

43 lines
1.2 KiB
Lua

local PlayerPermissionsModule = {}
local function HasRankInGroupFunctionFactory(groupId, requiredRank)
local hasRankCache = {}
assert(type(requiredRank) == "number", "requiredRank must be a number")
return function(player)
if player and player.UserId > 0 then
if hasRankCache[player.UserId] == nil then
local hasRank = false
pcall(function()
hasRank = player:GetRankInGroup(groupId) >= requiredRank
end)
hasRankCache[player.UserId] = hasRank
end
return hasRankCache[player.UserId]
end
return false
end
end
local function IsInGroupFunctionFactory(groupId)
local inGroupCache = {}
return function(player)
if player and player.UserId > 0 then
if inGroupCache[player.UserId] == nil then
local inGroup = false
pcall(function()
inGroup = player:IsInGroup(groupId)
end)
inGroupCache[player.UserId] = inGroup
end
return inGroupCache[player.UserId]
end
return false
end
end
PlayerPermissionsModule.IsPlayerAdminAsync = IsInGroupFunctionFactory(1200769)
PlayerPermissionsModule.IsPlayerInternAsync = HasRankInGroupFunctionFactory(2868472, 100)
PlayerPermissionsModule.IsPlayerStarAsync = IsInGroupFunctionFactory(4199740)
return PlayerPermissionsModule