mirror of
https://github.com/ND-Framework/ND_Core.git
synced 2026-08-17 05:56:01 +01:00
tweak(server/player): groups checks & admins from config
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user