Skip to content

Commit

Permalink
fix: propagate errors for job/gang commands
Browse files Browse the repository at this point in the history
  • Loading branch information
Manason committed Jul 4, 2024
1 parent 7091ae2 commit fda3376
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 10 deletions.
15 changes: 10 additions & 5 deletions server/commands.lua
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,8 @@ lib.addCommand('setjob', {
return
end

player.Functions.SetJob(args[locale('command.setjob.params.job.name')], args[locale('command.setjob.params.grade.name')] or 0)
local success, errorResult = player.Functions.SetJob(args[locale('command.setjob.params.job.name')], args[locale('command.setjob.params.grade.name')] or 0)
assert(success, errorResult)
end)

--- ADMIN COMMAND
Expand All @@ -273,7 +274,8 @@ lib.addCommand('changejob', {
return
end

SetPlayerPrimaryJob(player.PlayerData.citizenid, args[locale('command.changejob.params.job.name')])
local success, errorResult = SetPlayerPrimaryJob(player.PlayerData.citizenid, args[locale('command.changejob.params.job.name')])
assert(success, errorResult)
end)

lib.addCommand('addjob', {
Expand All @@ -291,7 +293,8 @@ lib.addCommand('addjob', {
return
end

AddPlayerToJob(player.PlayerData.citizenid, args[locale('command.addjob.params.job.name')], args[locale('command.addjob.params.grade.name')] or 0)
local success, errorResult = AddPlayerToJob(player.PlayerData.citizenid, args[locale('command.addjob.params.job.name')], args[locale('command.addjob.params.grade.name')] or 0)
assert(success, errorResult)
end)

lib.addCommand('removejob', {
Expand All @@ -308,7 +311,8 @@ lib.addCommand('removejob', {
return
end

RemovePlayerFromJob(player.PlayerData.citizenid, args[locale('command.removejob.params.job.name')])
local success, errorResult = RemovePlayerFromJob(player.PlayerData.citizenid, args[locale('command.removejob.params.job.name')])
assert(success, errorResult)
end)

-- Gang
Expand All @@ -335,7 +339,8 @@ lib.addCommand('setgang', {
return
end

player.Functions.SetGang(args[locale('command.setgang.params.gang.name')], args[locale('command.setgang.params.grade.name')] or 0)
local success, errorResult = player.Functions.SetGang(args[locale('command.setgang.params.gang.name')], args[locale('command.setgang.params.grade.name')] or 0)
assert(success, errorResult)
end)

-- Out of Character Chat
Expand Down
17 changes: 12 additions & 5 deletions server/player.lua
Original file line number Diff line number Diff line change
Expand Up @@ -610,6 +610,7 @@ function CreatePlayer(playerData, Offline)
---@param jobName string name
---@param grade? integer defaults to 0
---@return boolean success if job was set
---@return ErrorResult? errorResult
function self.Functions.SetJob(jobName, grade)
jobName = jobName:lower()
grade = grade or 0
Expand All @@ -625,15 +626,18 @@ function CreatePlayer(playerData, Offline)
if setJobReplaces then
RemovePlayerFromJob(self.PlayerData.citizenid, self.PlayerData.job.name)
end
AddPlayerToJob(self.PlayerData.citizenid, jobName, grade)
SetPlayerPrimaryJob(self.PlayerData.citizenid, jobName)
local success, errorResult = AddPlayerToJob(self.PlayerData.citizenid, jobName, grade)
if not success then return false, errorResult end
success, errorResult = SetPlayerPrimaryJob(self.PlayerData.citizenid, jobName)
if not success then return false, errorResult end
return true
end

---Removes the player from their current primary gang and adds the player to the new gang
---@param gangName string name
---@param grade? integer defaults to 0
---@return boolean success if gang was set
---@return ErrorResult? errorResult
function self.Functions.SetGang(gangName, grade)
gangName = gangName:lower()
grade = grade or 0
Expand All @@ -647,10 +651,13 @@ function CreatePlayer(playerData, Offline)
return false
end
if setGangReplaces then
removePlayerFromGang(self.PlayerData.citizenid, self.PlayerData.gang.name)
local success, errorResult = removePlayerFromGang(self.PlayerData.citizenid, self.PlayerData.gang.name)
if not success then return false, errorResult end
end
AddPlayerToGang(self.PlayerData.citizenid, gangName, grade)
setPlayerPrimaryGang(self.PlayerData.citizenid, gangName)
local success, errorResult = AddPlayerToGang(self.PlayerData.citizenid, gangName, grade)
if not success then return false, errorResult end
success, errorResult = setPlayerPrimaryGang(self.PlayerData.citizenid, gangName)
if not success then return false, errorResult end
return true
end

Expand Down

0 comments on commit fda3376

Please sign in to comment.