From 1b3225d8f630c4cb41b6dae9781b40aa2c237e0c Mon Sep 17 00:00:00 2001 From: Yianss <32908157+Yianss@users.noreply.github.com> Date: Mon, 27 Dec 2021 02:49:34 -0500 Subject: [PATCH] Update the way jobrep metadata is handled When you add a new job, existing players cannot get jobrep for it because the original jobrep metadata is always loaded instead. With this method, existing players can get jobrep for new jobs. This checks to make sure that jobrep metadata isn't nil so that new players do not get stuck in an infinite loop, and instead creates new jobrep metadata for them. There may be a better way to do this, but this works. --- server/player.lua | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/server/player.lua b/server/player.lua index 00ff571..6e90588 100644 --- a/server/player.lua +++ b/server/player.lua @@ -80,12 +80,21 @@ function QBCore.Player.CheckPlayerData(source, PlayerData) PlayerData.metadata['craftingrep'] = PlayerData.metadata['craftingrep'] or 0 PlayerData.metadata['attachmentcraftingrep'] = PlayerData.metadata['attachmentcraftingrep'] or 0 PlayerData.metadata['currentapartment'] = PlayerData.metadata['currentapartment'] or nil - PlayerData.metadata['jobrep'] = PlayerData.metadata['jobrep'] or { - ['tow'] = 0, - ['trucker'] = 0, - ['taxi'] = 0, - ['hotdog'] = 0, - } + if PlayerData.metadata['jobrep'] ~= nil then + PlayerData.metadata['jobrep'] = { + ['tow'] = PlayerData.metadata['jobrep']['tow'] or 0, + ['trucker'] = PlayerData.metadata['jobrep']['trucker'] or 0, + ['taxi'] = PlayerData.metadata['jobrep']['taxi'] or 0, + ['hotdog'] = PlayerData.metadata['jobrep']['hotdog'] or 0, + } + else + PlayerData.metadata['jobrep'] = { + ['tow'] = 0, + ['trucker'] = 0, + ['taxi'] = 0, + ['hotdog'] = 0, + } + end PlayerData.metadata['callsign'] = PlayerData.metadata['callsign'] or 'NO CALLSIGN' PlayerData.metadata['fingerprint'] = PlayerData.metadata['fingerprint'] or QBCore.Player.CreateFingerId() PlayerData.metadata['walletid'] = PlayerData.metadata['walletid'] or QBCore.Player.CreateWalletId()