diff --git a/server/exports.lua b/server/exports.lua index 2cfed5a..0a1e8aa 100644 --- a/server/exports.lua +++ b/server/exports.lua @@ -9,6 +9,7 @@ local function AddJob(jobName, job) end QBCore.Shared.Jobs[jobName] = job + TriggerClientEvent('QBCore:Client:OnSharedUpdate', -1,'Jobs', jobName, job) TriggerEvent('QBCore:Server:UpdateObject') return true, "success" @@ -21,6 +22,7 @@ local function AddJobs(jobs) local shouldContinue = true local message = "success" local errorItem = nil + for key, value in pairs(jobs) do if type(key) ~= "string" then message = 'invalid_job_name' @@ -47,6 +49,44 @@ end QBCore.Functions.AddJobs = AddJobs exports('AddJobs', AddJobs) +-- Single Remove Job +local function RemoveJob(jobName) + if type(jobName) ~= "string" then + return false, "invalid_job_name" + end + + if not QBCore.Shared.Jobs[jobName] then + return false, "job_not_exists" + end + + QBCore.Shared.Jobs[jobName] = nil + + TriggerClientEvent('QBCore:Client:OnSharedUpdate', -1, 'Jobs', jobName, nil) + TriggerEvent('QBCore:Server:UpdateObject') + return true, "success" +end +QBCore.Functions.RemoveJob = RemoveJob +exports('RemoveJob', RemoveJob) + +-- Single Update Job +local function UpdateJob(jobName, job) + if type(jobName) ~= "string" then + return false, "invalid_job_name" + end + + if not QBCore.Shared.Jobs[jobName] then + return false, "job_not_exists" + end + + QBCore.Shared.Jobs[jobName] = job + + TriggerClientEvent('QBCore:Client:OnSharedUpdate', -1, 'Jobs', jobName, job) + TriggerEvent('QBCore:Server:UpdateObject') + return true, "success" +end +QBCore.Functions.UpdateJob = UpdateJob +exports('UpdateJob', UpdateJob) + -- Single add item local function AddItem(itemName, item) if type(itemName) ~= "string" then @@ -58,6 +98,7 @@ local function AddItem(itemName, item) end QBCore.Shared.Items[itemName] = item + TriggerClientEvent('QBCore:Client:OnSharedUpdate', -1, 'Items', itemName, item) TriggerEvent('QBCore:Server:UpdateObject') return true, "success" @@ -70,6 +111,7 @@ local function AddItems(items) local shouldContinue = true local message = "success" local errorItem = nil + for key, value in pairs(items) do if type(key) ~= "string" then message = "invalid_item_name" @@ -96,16 +138,56 @@ end QBCore.Functions.AddItems = AddItems exports('AddItems', AddItems) +-- Single Remove Item +local function RemoveItem(itemName) + if type(itemName) ~= "string" then + return false, "invalid_item_name" + end + + if not QBCore.Shared.Items[itemName] then + return false, "item_not_exists" + end + + QBCore.Shared.Items[itemName] = nil + + TriggerClientEvent('QBCore:Client:OnSharedUpdate', -1, 'Items', itemName, nil) + TriggerEvent('QBCore:Server:UpdateObject') + return true, "success" +end +QBCore.Functions.RemoveItem = RemoveItem +exports('RemoveItem', RemoveItem) + +-- Single Update Item +local function UpdateItem(itemName, item) + if type(itemName) ~= "string" then + return false, "invalid_item_name" + end + + if not QBCore.Shared.Items[itemName] then + return false, "item_not_exists" + end + + QBCore.Shared.Items[itemName] = item + + TriggerClientEvent('QBCore:Client:OnSharedUpdate', -1, 'Items', itemName, item) + TriggerEvent('QBCore:Server:UpdateObject') + return true, "success" +end +QBCore.Functions.UpdateItem = UpdateItem +exports('UpdateItem', UpdateItem) + -- Single Add Gang local function AddGang(gangName, gang) if type(gangName) ~= "string" then return false, "invalid_gang_name" end + if QBCore.Shared.Gangs[gangName] then return false, "gang_exists" end QBCore.Shared.Gangs[gangName] = gang + TriggerClientEvent('QBCore:Client:OnSharedUpdate', -1, 'Gangs', gangName, gang) TriggerEvent('QBCore:Server:UpdateObject') return true, "success" @@ -118,6 +200,7 @@ local function AddGangs(gangs) local shouldContinue = true local message = "success" local errorItem = nil + for key, value in pairs(gangs) do if type(key) ~= "string" then message = "invalid_gang_name" @@ -132,6 +215,7 @@ local function AddGangs(gangs) errorItem = gangs[key] break end + QBCore.Shared.Gangs[key] = value end @@ -143,6 +227,44 @@ end QBCore.Functions.AddGangs = AddGangs exports('AddGangs', AddGangs) +-- Single Remove Gang +local function RemoveGang(gangName, gang) + if type(gangName) ~= "string" then + return false, "invalid_gang_name" + end + + if not QBCore.Shared.Gangs[gangName] then + return false, "gang_not_exists" + end + + QBCore.Shared.Gangs[gangName] = nil + + TriggerClientEvent('QBCore:Client:OnSharedUpdate', -1, 'Gangs', gangName, nil) + TriggerEvent('QBCore:Server:UpdateObject') + return true, "success" +end +QBCore.Functions.RemoveGang = RemoveGang +exports('RemoveGang', RemoveGang) + +-- Single Update Gang +local function UpdateGang(gangName, gang) + if type(gangName) ~= "string" then + return false, "invalid_gang_name" + end + + if not QBCore.Shared.Gangs[gangName] then + return false, "gang_not_exists" + end + + QBCore.Shared.Gangs[gangName] = gang + + TriggerClientEvent('QBCore:Client:OnSharedUpdate', -1, 'Gangs', gangName, gang) + TriggerEvent('QBCore:Server:UpdateObject') + return true, "success" +end +QBCore.Functions.UpdateGang = UpdateGang +exports('UpdateGang', UpdateGang) + local function GetCoreVersion(InvokingResource) local resourceVersion = GetResourceMetadata(GetCurrentResourceName(), 'version') if InvokingResource and InvokingResource ~= '' then