diff --git a/compatibility/backwards/server.lua b/compatibility/backwards/server.lua index 492a71c..a6dc434 100644 --- a/compatibility/backwards/server.lua +++ b/compatibility/backwards/server.lua @@ -158,17 +158,7 @@ end function NDCore.Functions.EditPlayerLicense(characterId, identifier, newData) local player = NDCore.fetchCharacter(characterId) if not player then return end - - local licenses = player.metadata.licenses - if licenses then - local license, key = NDCore.Functions.FindLicenseByIdentifier(licenses, identifier) - for k, v in pairs(newData) do - license[k] = v - end - licenses[key] = license - player.setMetadata("licenses", licenses) - end - return licenses or {} + player.updateLicense(identifier, newData) end -- Set the players job and job rank. diff --git a/server/player.lua b/server/player.lua index eface4f..c44e86e 100644 --- a/server/player.lua +++ b/server/player.lua @@ -172,6 +172,25 @@ local function createCharacterTable(info) end self.triggerEvent("ND:updateCharacter", self) end + + function self.getLicense(identifier) + local licenses = self.metadata.licenses or {} + for i=1, #licenses do + local data = licenses[i] + if data.identifier == identifier then + return data, i + end + end + end + + function self.updateLicense(identifier, newData) + local data, i = self.getLicense(identifier) + if not data then return end + for k, v in pairs(newData) do + data[k] = v + end + self.save() + end ---@param coords vector3|vector4 ---@return boolean