diff --git a/_versioncheck.lua b/_versioncheck.lua index 0a17ebc..4a05452 100644 --- a/_versioncheck.lua +++ b/_versioncheck.lua @@ -1,4 +1,4 @@ -function parseVersion(version) +local function parseVersion(version) local parts = {} for num in version:gmatch("%d+") do table.insert(parts, tonumber(num)) @@ -6,7 +6,7 @@ function parseVersion(version) return parts end -function compareVersions(current, newest) +local function compareVersions(current, newest) local currentParts = parseVersion(current) local newestParts = parseVersion(newest) for i = 1, math.max(#currentParts, #newestParts) do diff --git a/shared/coreloader.lua b/shared/coreloader.lua index 6d38f05..934a9ef 100644 --- a/shared/coreloader.lua +++ b/shared/coreloader.lua @@ -120,12 +120,10 @@ elseif isStarted(RSGExport) then itemResource = RSGExport Core = Core or exports[RSGExport]:GetCoreObject() Items = Core and Core.Shared.Items or nil - if isStarted(RSGExport) and not isStarted(QBXExport) then - RegisterNetEvent('QBCore:Client:UpdateObject', function() - Core = Core or exports[RSGExport]:GetCoreObject() - Items = Core and Core.Shared.Items or nil - end) - end + RegisterNetEvent('RSGCore:Client:UpdateObject', function() + Core = Core or exports[RSGExport]:GetCoreObject() + Items = Core and Core.Shared.Items or nil + end) end @@ -190,12 +188,10 @@ elseif isStarted(ESXExport) then elseif isStarted(RSGExport) then Core = Core or exports[RSGExport]:GetCoreObject() Vehicles = Core and Core.Shared.Vehicles - if isStarted(RSGExport) then - RegisterNetEvent('RSGExport:Client:UpdateObject', function() - Core = Core or exports[RSGExport]:GetCoreObject() - Vehicles = Core and Core.Shared.Vehicles - end) - end + RegisterNetEvent('RSGCore:Client:UpdateObject', function() + Core = Core or exports[RSGExport]:GetCoreObject() + Vehicles = Core and Core.Shared.Vehicles + end) vehResource = RSGExport end if vehResource == nil then @@ -276,12 +272,10 @@ elseif isStarted(RSGExport) then jobResource = RSGExport Core = Core or exports[RSGExport]:GetCoreObject() Jobs, Gangs = Core.Shared.Jobs, Core.Shared.Gangs - if isStarted(RSGExport) and not isStarted(QBXExport) then - RegisterNetEvent('QBCore:Client:UpdateObject', function() - Core = exports[RSGExport]:GetCoreObject() - Jobs, Gangs = Core.Shared.Jobs, Core.Shared.Gangs - end) - end + RegisterNetEvent('RSGCore:Client:UpdateObject', function() + Core = exports[RSGExport]:GetCoreObject() + Jobs, Gangs = Core.Shared.Jobs, Core.Shared.Gangs + end) end if jobResource == nil then diff --git a/shared/itemcontrol.lua b/shared/itemcontrol.lua index 8496696..e978b59 100644 --- a/shared/itemcontrol.lua +++ b/shared/itemcontrol.lua @@ -31,15 +31,22 @@ validTokens = {} --- ``` function createUseableItem(item, funct) if isStarted(ESXExport) then - debugPrint("^6Bridge^7: ^2Registering item as ^3Usable^2 with ^7es_extended", item) + debugPrint("^6Bridge^7: ^2Registering item as ^3Usable^2 with ^7es_extended^7", item) while not ESX do Wait(0) end ESX.RegisterUsableItem(item, funct) + elseif isStarted(QBExport) and not isStarted(QBXExport) then - debugPrint("^6Bridge^7: ^2Registering item as ^3Usable^2 with ^7qb-core", item) + debugPrint("^6Bridge^7: ^2Registering item as ^3Usable^2 with ^7qb-core^7", item) Core.Functions.CreateUseableItem(item, funct) + elseif isStarted(QBXExport) then - debugPrint("^6Bridge^7: ^2Registering item as ^3Usable^2 with ^7qbx_core", item) + debugPrint("^6Bridge^7: ^2Registering item as ^3Usable^2 with ^7qbx_core^7", item) exports[QBXExport]:CreateUseableItem(item, funct) + + elseif isStarted(RSGExport) then + debugPrint("^6Bridge^7: ^2Registering item as ^3Usable^2 with ^1rsg-core^7", item) + Core.Functions.CreateUseableItem(item, funct) + else print("^4ERROR^7: No supported framework detected for registering usable item: ^3"..item.."^7") end diff --git a/shared/jobfunctions.lua b/shared/jobfunctions.lua index 36cbb58..4cc9722 100644 --- a/shared/jobfunctions.lua +++ b/shared/jobfunctions.lua @@ -95,6 +95,8 @@ function toggleDuty() onDuty = not onDuty if isStarted(QBExport) or isStarted(QBXExport) then TriggerServerEvent("QBCore:ToggleDuty") + elseif isStarted(RSGExport) then + TriggerServerEvent("RSGCore:ToggleDuty") else if onDuty then triggerNotify(nil, "Now on duty", "success") diff --git a/shared/metaHandlers.lua b/shared/metaHandlers.lua index 8a19766..56273f1 100644 --- a/shared/metaHandlers.lua +++ b/shared/metaHandlers.lua @@ -32,6 +32,9 @@ function GetPlayer(source) elseif isStarted(OXCoreExport) then debugPrint("^6Bridge^7: ^3GetPlayer^7() OXCoreExport") return exports[OXCoreExport]:GetPlayer(source) + elseif isStarted(RSGExport) then + debugPrint("^6Bridge^7: ^3GetPlayer^7() RSGExport") + return exports[RSGExport]:GetCoreObject().Functions.GetPlayer(source) end return nil end @@ -58,7 +61,7 @@ function GetMetadata(player, key) return triggerCallback(getScript()..":server:GetMetadata", key) else if isStarted(QBExport) or isStarted(QBXExport) then - debugPrint("^6Bridge^7: ^3GetMetadata^7() QBExport or QBXExport", key) + debugPrint("^6Bridge^7: ^3GetMetadata^7() QBExport/QBXExport", key) return player.PlayerData.metadata[key] elseif isStarted(ESXExport) then debugPrint("^6Bridge^7: ^3GetMetadata^7() ESXExport", key) @@ -66,6 +69,9 @@ function GetMetadata(player, key) elseif isStarted(OXCoreExport) then debugPrint("^6Bridge^7: ^3GetMetadata^7() OXCoreExport", key) return player.get(key) + elseif isStarted(RSGExport) then + debugPrint("^6Bridge^7: ^3GetMetadata^7() RSGExport", key) + return player.PlayerData.metadata[key] end end return nil @@ -118,6 +124,9 @@ function SetMetadata(player, key, value) elseif isStarted(OXCoreExport) then debugPrint("^6Bridge^7: ^3SetMetadata^7() using OXCoreExport") player.set(key, value) + elseif isStarted(RSGExport) then + debugPrint("^6Bridge^7: ^3SetMetadata^7() using RSGExport") + player.Functions.SetMetaData(key, value) end end diff --git a/shared/playerfunctions.lua b/shared/playerfunctions.lua index 46eed39..5574c6d 100644 --- a/shared/playerfunctions.lua +++ b/shared/playerfunctions.lua @@ -111,10 +111,16 @@ end) function setThirst(src, thirst) if isStarted(ESXExport) then TriggerClientEvent('esx_status:add', src, 'thirst', thirst) + elseif isStarted(QBExport) or isStarted(QBXExport) then local Player = Core.Functions.GetPlayer(src) Player.Functions.SetMetaData('thirst', thirst) TriggerClientEvent("hud:client:UpdateNeeds", src, thirst, Player.PlayerData.metadata.thirst) + + elseif isStarted(RSGExport) then + local Player = Core.Functions.GetPlayer(src) + Player.Functions.SetMetaData('thirst', thirst) + TriggerClientEvent("hud:client:UpdateNeeds", src, thirst, Player.PlayerData.metadata.thirst) end end @@ -130,10 +136,16 @@ end function setHunger(src, hunger) if isStarted(ESXExport) then TriggerClientEvent('esx_status:add', src, 'hunger', hunger) + elseif isStarted(QBExport) or isStarted(QBXExport) then local Player = Core.Functions.GetPlayer(src) Player.Functions.SetMetaData('hunger', hunger) TriggerClientEvent("hud:client:UpdateNeeds", src, hunger, Player.PlayerData.metadata.hunger) + + elseif isStarted(RSGExport) then + local Player = Core.Functions.GetPlayer(src) + Player.Functions.SetMetaData('hunger', hunger) + TriggerClientEvent("hud:client:UpdateNeeds", src, hunger, Player.PlayerData.metadata.hunger) end end @@ -161,20 +173,31 @@ function chargePlayer(cost, moneyType, newsrc) if moneyType == "cash" then if isStarted(OXInv) then fundResource = OXInv exports[OXInv]:RemoveItem(src, "money", cost) + elseif isStarted(QBExport) or isStarted(QBXExport) then fundResource = QBExport Core.Functions.GetPlayer(src).Functions.RemoveMoney("cash", cost) + elseif isStarted(RSGExport) then - fundResource = QBExport + fundResource = RSGExport Core.Functions.GetPlayer(src).Functions.RemoveMoney("cash", cost) + elseif isStarted(ESXExport) then fundResource = ESXExport ESX.GetPlayerFromId(src).removeMoney(cost, "") + end elseif moneyType == "bank" then - if isStarted(QBExport) or isStarted(QBXExport) then fundResource = QBExport + if isStarted(QBExport) or isStarted(QBXExport) then + fundResource = QBExport Core.Functions.GetPlayer(src).Functions.RemoveMoney("bank", cost) - elseif isStarted(ESXExport) then fundResource = ESXExport + + elseif isStarted(RSGExport) then + fundResource = RSGExport + Core.Functions.GetPlayer(src).Functions.RemoveMoney("bank", cost) + + elseif isStarted(ESXExport) then + fundResource = ESXExport ESX.GetPlayerFromId(src).removeMoney(cost, "") end end @@ -212,17 +235,29 @@ function fundPlayer(fund, moneyType, newsrc) if isStarted(OXInv) then fundResource = OXInv exports[OXInv]:AddItem(src, "money", fund) + elseif isStarted(QBExport) or isStarted(QBXExport) then fundResource = QBExport Core.Functions.GetPlayer(src).Functions.AddMoney("cash", fund) + + elseif isStarted(RSGExport) then + fundResource = RSGExport + Core.Functions.GetPlayer(src).Functions.AddMoney("cash", fund) + elseif isStarted(ESXExport) then fundResource = ESXExport - PlayESX.GetPlayerFromId(src).addMoney(fund, "") + ESX.GetPlayerFromId(src).addMoney(fund, "") + end elseif moneyType == "bank" then if isStarted(QBExport) or isStarted(QBXExport) then fundResource = QBExport Core.Functions.GetPlayer(src).Functions.AddMoney("bank", fund) + + elseif isStarted(RSGExport) then + fundResource = RSGExport + Core.Functions.GetPlayer(src).Functions.AddMoney("bank", fund) + elseif isStarted(ESXExport) then fundResource = ESXExport ESX.GetPlayerFromId(src).addMoney(fund, "") @@ -380,6 +415,35 @@ function hasJob(job, source, grade) if grade and not (grade <= ganginfo.grade.level) then hasJobFlag = false end end end + + elseif isStarted(RSGExport) then + if Core.Functions.GetPlayer then + local player = Core.Functions.GetPlayer(src) + if not player then print("Player not found for src: "..src) end + local jobinfo = player.PlayerData.job + if jobinfo.name == job then + hasJobFlag = true + duty = player.PlayerData.job.onduty + if grade and not (grade <= jobinfo.grade.level) then hasJobFlag = false end + end + local ganginfo = player.PlayerData.gang + if ganginfo.name == job then + hasJobFlag = true + if grade and not (grade <= ganginfo.grade.level) then hasJobFlag = false end + end + else + local jobinfo = exports[RSGExport]:GetPlayer(src).PlayerData.job + if jobinfo.name == job then + hasJobFlag = true + duty = exports[RSGExport]:GetPlayer(src).PlayerData.job.onduty + if grade and not (grade <= jobinfo.grade.level) then hasJobFlag = false end + end + local ganginfo = exports[RSGExport]:GetPlayer(src).PlayerData.gang + if ganginfo.name == job then + hasJobFlag = true + if grade and not (grade <= ganginfo.grade.level) then hasJobFlag = false end + end + end else print("^4ERROR^7: ^2No Core detected for hasJob ^7- ^2Check ^3starter^1.^2lua^7") end @@ -425,6 +489,22 @@ function hasJob(job, source, grade) hasJobFlag = true if grade and not (grade <= ganginfo.grade.level) then hasJobFlag = false end end + + elseif isStarted(RSGExport) then + local info = nil + Core.Functions.GetPlayerData(function(PlayerData) info = PlayerData end) + local jobinfo = info.job + if jobinfo.name == job then + hasJobFlag = true + duty = jobinfo.onduty + if grade and not (grade <= jobinfo.grade.level) then hasJobFlag = false end + end + local ganginfo = info.gang + if ganginfo.name == job then + hasJobFlag = true + if grade and not (grade <= ganginfo.grade.level) then hasJobFlag = false end + end + else print("^4ERROR^7: ^2No Core detected for hasJob() ^7- ^2Check ^3starter^1.^2lua^7") end diff --git a/shared/vehicles.lua b/shared/vehicles.lua index 7430e01..3be6640 100644 --- a/shared/vehicles.lua +++ b/shared/vehicles.lua @@ -108,6 +108,7 @@ function getVehicleProperties(vehicle) if isStarted(QBExport) and not isStarted(QBXExport) then properties = Core.Functions.GetVehicleProperties(vehicle) debugPrint("^6Bridge^7: ^2Getting Vehicle Properties ^7[^6"..QBExport.."^7] - [^3"..vehicle.."^7] - [^3"..GetEntityModel(vehicle).."^7/^3"..properties.model.."^7] - [^3"..properties.plate.."^7]") + elseif isStarted(OXLibExport) then properties = lib.getVehicleProperties(vehicle) debugPrint("^6Bridge^7: ^2Getting Vehicle Properties ^7[^6"..OXLibExport.."^7] - [^3"..vehicle.."^7] - [^3"..GetEntityModel(vehicle).."^7/^3"..properties.model.."^7] - [^3"..properties.plate.."^7]") @@ -134,6 +135,7 @@ function setVehicleProperties(vehicle, props) if isStarted(QBExport) and not isStarted(QBXExport) then Core.Functions.SetVehicleProperties(vehicle, props) debugPrint("^6Bridge^7: ^2Setting Vehicle Properties ^7[^6"..QBExport.."^7] - [^3"..vehicle.."^7] - [^3"..GetEntityModel(vehicle).."^7/^3"..props.model.."^7] - [^3"..props.plate.."^7]") + elseif isStarted(OXLibExport) then lib.setVehicleProperties(vehicle, props, false) debugPrint("^6Bridge^7: ^2Setting Vehicle Properties ^7[^6"..OXLibExport.."^7] - [^3"..vehicle.."^7] - [^3"..GetEntityModel(vehicle).."^7/^3"..props.model.."^7] - [^3"..props.plate.."^7]") diff --git a/shared/wrapperfunctions.lua b/shared/wrapperfunctions.lua index 57685ec..bd57309 100644 --- a/shared/wrapperfunctions.lua +++ b/shared/wrapperfunctions.lua @@ -21,17 +21,25 @@ --- }) --- ``` function registerCommand(command, options) + if isStarted(OXLibExport) then debugPrint("^6Bridge^7: ^2Registering ^3Command^2 with ^7"..OXLibExport, command) lib.addCommand(command, { help = options[1], restricted = options[5] and "group."..options[5] or nil }, options[4]) + elseif isStarted(QBExport) and not isStarted(QBXExport) then debugPrint("^6Bridge^7: ^2Registering ^3Command^2 with ^7"..QBExport, command) Core.Commands.Add(command, options[1], options[2], options[3], options[4], options[5] or nil) + + elseif isStarted(RSGExport) then + debugPrint("^6Bridge^7: ^2Registering ^3Command^2 with ^7"..RSGExport, command) + Core.Commands.Add(command, options[1], options[2], options[3], options[4], options[5] or nil) + elseif isStarted(ESXExport) then debugPrint("^6Bridge^7: ^2Registering ^3Command^2 with ^7ESX Legacy", command) ESX.RegisterCommand(command, options[5] or 'admin', function(xPlayer, args, showError) options[4](xPlayer.source, args, showError) end, false, { help = options[1] }) + end end @@ -59,6 +67,7 @@ function registerStash(name, label, slots, weight, owner, coords) if isStarted(OXInv) then debugPrint("^6Bridge^7: ^2Registering ^3OX ^2Stash^7:", name, label, owner or nil) exports[OXInv]:RegisterStash(name, label, slots or 50, weight or 4000000, owner or nil) + elseif isStarted(QSInv) then debugPrint("^6Bridge^7: ^2Registering ^3QS ^2Stash^7:", name, label) exports[QSInv]:RegisterStash(name, label, slots or 50, weight or 4000000) @@ -74,6 +83,7 @@ function registerStash(name, label, slots, weight, owner, coords) elseif isStarted(TgiannInv) then debugPrint("^6Bridge^7: ^2Registering ^3TgiannInv ^2Stash^7:", name, label) exports[TgiannInv]:RegisterStash(name, label, slots or 50, weight or 4000000) + end end