draft GetPlayerSourcesByJob
This commit is contained in:
1 parent
140bad5b34
commit
b1556d13fb
4 files changed
+60
-30
No files matched your search
@@ -1,3 +1,56 @@
|
||||
Framework = Framework or {}
|
||||
|
||||
local jobsRegisteredTable = {}
|
||||
local invertedJobsRegisteredTable = {}
|
||||
|
||||
---This is an internal function that will be used to retrieve job counts later.
|
||||
---@param jobName string
|
||||
---@return number
|
||||
Framework.GetJobCount = function(jobName)
|
||||
return #jobsRegisteredTable[jobName] or 0
|
||||
end
|
||||
|
||||
---This will return a list of player sources for a given job.
|
||||
---@param jobName string
|
||||
---@return table
|
||||
Framework.GetPlayerSourcesByJob = function(jobName)
|
||||
if not jobsRegisteredTable[jobName] then return {} end
|
||||
return jobsRegisteredTable[jobName]
|
||||
end
|
||||
|
||||
---This will update the cached tables for job counts.
|
||||
---This is used to track how many players are in a job.
|
||||
---@param src number
|
||||
---@param jobName string
|
||||
Framework.AddJobCount = function(src, jobName)
|
||||
if not jobsRegisteredTable[jobName] then jobsRegisteredTable[jobName] = {} end
|
||||
if jobsRegisteredTable[jobName][src] then return false end
|
||||
jobsRegisteredTable[jobName][src] = true
|
||||
invertedJobsRegisteredTable[src] = jobName
|
||||
return true, #jobsRegisteredTable[jobName]
|
||||
end
|
||||
|
||||
---This will return the job name for a given source.
|
||||
---This is an internal function that will be used to retrieve job names in situations where player data is unavailable.
|
||||
---@param src number
|
||||
Framework.SearchJobCountBySource = function(src)
|
||||
if not invertedJobsRegisteredTable[src] then return nil end
|
||||
return invertedJobsRegisteredTable[src]
|
||||
end
|
||||
|
||||
---This will remove the job count for a given source.
|
||||
---@param src number
|
||||
---@param jobName string | nil
|
||||
Framework.RemoveJobCount = function(src, jobName)
|
||||
if not jobName then
|
||||
jobName = Framework.SearchJobCountBySource(src)
|
||||
end
|
||||
if not jobName then return false end
|
||||
if not jobsRegisteredTable[jobName] then return false end
|
||||
if not jobsRegisteredTable[jobName][src] then return false end
|
||||
invertedJobsRegisteredTable[src] = nil
|
||||
jobsRegisteredTable[jobName][src] = nil
|
||||
return true, #jobsRegisteredTable[jobName]
|
||||
end
|
||||
|
||||
return Framework
|
||||
Reference in new issue
Block a user