tweak(server/player): groups checks & admins from config

This commit is contained in:
Andyyy7666
2023-08-28 03:04:16 +02:00
parent 4868eb42a2
commit 0de7b9c682

View File

@@ -261,6 +261,11 @@ local function createCharacterTable(info)
local char = NDCore.players[self.source] local char = NDCore.players[self.source]
if char and char.id == self.id then return true end if char and char.id == self.id then return true end
if char then char.unload() end if char then char.unload() end
for identifierType, identifier in pairs(self.identifiers) do
if lib.table.contains(Config.admins, ("%s:%s"):format(identifierType, identifier)) then
self.addGroup("admin")
end
end
for name, _ in pairs(self.groups) do for name, _ in pairs(self.groups) do
lib.addPrincipal(self.source, ("group.%s"):format(name)) lib.addPrincipal(self.source, ("group.%s"):format(name))
end end
@@ -277,21 +282,21 @@ local function createCharacterTable(info)
function self.addGroup(name, rank, isJob) function self.addGroup(name, rank, isJob)
local groupRank = tonumber(rank) or 1 local groupRank = tonumber(rank) or 1
local groupInfo = Config.groups[name] local groupInfo = Config.groups[name]
if not groupInfo then return end -- if not groupInfo then return end
if isJob then if isJob then
for _, group in pairs(self.groups) do for _, group in pairs(self.groups) do
group.isJob = nil group.isJob = nil
end end
end end
self.groups[name] = { self.groups[name] = {
label = groupInfo.label, label = groupInfo and groupInfo.label or name,
rankName = groupInfo.ranks[groupRank] or groupRank, rankName = groupInfo and groupInfo.ranks[groupRank] or groupRank,
rank = groupRank, rank = groupRank,
isJob = isJob isJob = isJob
} }
self.triggerEvent("ND:updateCharacter", self) self.triggerEvent("ND:updateCharacter", self)
lib.addPrincipal(self.source, ("group.%s"):format(name)) lib.addPrincipal(self.source, ("group.%s"):format(name))
return true return self.groups[name]
end end
---@param name string ---@param name string
@@ -302,9 +307,11 @@ local function createCharacterTable(info)
---@param name string ---@param name string
function self.removeGroup(name) function self.removeGroup(name)
local group = self.groups[name]
self.groups[name] = nil self.groups[name] = nil
self.triggerEvent("ND:updateCharacter", self) self.triggerEvent("ND:updateCharacter", self)
lib.removePrincipal(self.source, ("group.%s"):format(name)) lib.removePrincipal(self.source, ("group.%s"):format(name))
return group
end end
---@param name string ---@param name string