From 68cf607f9adc938fee6c7a99a2b883b1719d9913 Mon Sep 17 00:00:00 2001 From: Andyyy7666 <86536434+Andyyy7666@users.noreply.github.com> Date: Tue, 13 Dec 2022 17:30:15 +0100 Subject: [PATCH] fix: group updating but not job --- server/functions.lua | 54 +++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/server/functions.lua b/server/functions.lua index 9ab5252..5429fdb 100644 --- a/server/functions.lua +++ b/server/functions.lua @@ -388,30 +388,29 @@ function NDCore.Functions.SetPlayerData(characterId, key, value, description) NDCore.Players[player][key] = value TriggerEvent("ND:moneyChange", player, "cash", tonumber(value), "set", description) end - MySQL.query("UPDATE characters SET cash = ? WHERE character_id = ?", {tonumber(value), characterId}) + MySQL.query.await("UPDATE characters SET cash = ? WHERE character_id = ?", {tonumber(value), characterId}) elseif key == "bank" then if player then NDCore.Players[player][key] = value TriggerEvent("ND:moneyChange", player, "bank", tonumber(value), "set", description) end - MySQL.query("UPDATE characters SET bank = ? WHERE character_id = ?", {tonumber(value), characterId}) + MySQL.query.await("UPDATE characters SET bank = ? WHERE character_id = ?", {tonumber(value), characterId}) elseif key == "job" then if player then NDCore.Players[player].job = value end - MySQL.query("UPDATE characters SET job = ? WHERE character_id = ?", {value, characterId}) + MySQL.query.await("UPDATE characters SET job = ? WHERE character_id = ?", {value, characterId}) else if player then NDCore.Players[player].data[key] = value - MySQL.query("UPDATE characters SET `data` = ? WHERE character_id = ?", {json.encode(NDCore.Players[player].data), characterId}) + MySQL.query.await("UPDATE characters SET `data` = ? WHERE character_id = ?", {json.encode(NDCore.Players[player].data), characterId}) else - MySQL.query("SELECT `data` FROM characters WHERE character_id = ?", {characterId}, function(result) - if result and result[1] then - local data = json.decode(result[1].data) - data[key] = value - MySQL.query("UPDATE characters SET `data` = ? WHERE character_id = ?", {json.encode(data), characterId}) - end - end) + local result = MySQL.query.await("SELECT `data` FROM characters WHERE character_id = ?", {characterId}) + if not result or not result[1] then return end + + local data = json.decode(result[1].data) + data[key] = value + MySQL.query.await("UPDATE characters SET `data` = ? WHERE character_id = ?", {json.encode(data), characterId}) end end @@ -572,26 +571,29 @@ function NDCore.Functions.SetPlayerToGroup(characterId, group, rank) end local result = MySQL.query.await("SELECT data FROM characters WHERE character_id = ?", {characterId}) - if result and result[1] then - local data = result[1].data - if not data.groups then - data.groups = {} - end - local rankName = tostring(groupRank) - if config.groups[group] and config.groups[group][groupRank] then - rankName = config.groups[group][groupRank] - end - data.groups[group] = { - rank = groupRank, - rankName = rankName - } - NDCore.Functions.SetPlayerData(characterId, "groups", data.groups) - return true + if not result or not result[1] then return end + local data = json.decode(result[1].data) + if not data then + data = {} end + if not data.groups then + data.groups = {} + end + local rankName = tostring(groupRank) + if config.groups[group] and config.groups[group][groupRank] then + rankName = config.groups[group][groupRank] + end + data.groups[group] = { + rank = groupRank, + rankName = rankName + } + NDCore.Functions.SetPlayerData(characterId, "groups", data.groups) + return true end -- Remove a player from a group. function NDCore.Functions.RemovePlayerFromGroup(characterId, group) + if not group then return end local group = group:lower() for groupName, groupRanks in pairs(config.groups) do if groupName:lower() == group then