const LV = { RegisterCallback: (name, handler) => { if (config.Framework.includes("qb")) { FrameworkObject.Functions.CreateCallback(name, handler) } else if (config.Framework.includes("esx")) { FrameworkObject.RegisterServerCallback(name, handler) } }, Society: { GetAccountMoney: (society) => { if (config.Society.Script === "qb-old") { return exports["qb-management"].GetAccount(society) } else if (config.Society.Script === "qb-new") { return exports["qb-banking"].GetAccountBalance(society) } }, RemoveMoney: (society, value) => { if (config.Society.Script === "qb-old") { return exports["qb-management"].RemoveMoney(society, value) } else if (config.Society.Script === "qb-new") { return exports["qb-banking"].RemoveMoney(society, value) } }, AddMoney: (society, value) => { if (config.Society.Script === "qb-old") { return exports["qb-management"].AddMoney(society, value) } else if (config.Society.Script === "qb-new") { return exports["qb-banking"].AddMoney(society, value) } } }, GetPlayerIdentifier: (id) => { let identifier = undefined if (config.Framework.includes("qb")) { const qPlayer = FrameworkObject.Functions.GetPlayer(id) if (qPlayer) { identifier = qPlayer.PlayerData.citizenid } else { identifier = "0" } } else { const xPlayer = FrameworkObject.GetPlayerFromId(id) if (xPlayer) { identifier = xPlayer.identifier } else { identifier = "0" } } return identifier }, GetPlayerInventoryItems: async (online, id) => { let items = [] for (let i = 0; i < Number(config.MaxInventorySlot); i++) { items.push({ slot: i+1, name: "", icon: "", count: 0 }) } if (config.Inventory === "ox_inventory") { if (!online) { let result = await query(` SELECT * FROM \`${config.Framework.includes("esx") ? "users" : "players"}\` WHERE \`${config.Framework.includes("esx") ? "identifier" : "citizenid"}\` = '${id}' `) if (result === false) return "SQL" result = result [0] const inventoryItems = JSON.parse(result.inventory) if (inventoryItems.length > 0) { inventoryItems.forEach(item => { items[Number(item.slot) - 1].name = item.name items[Number(item.slot) - 1].icon = `${item.name}.png` items[Number(item.slot) - 1].count = item.count }) } } } else if (config.Inventory === "qb-inventory") { if (!online) { let result = await query(` SELECT * FROM \`players\` WHERE \`citizenid\` = '${id}' `) if (result === false) return "SQL" result = result [0] const inventoryItems = JSON.parse(result.inventory) if (inventoryItems.length > 0) { inventoryItems.forEach(item => { const detailedItem = FrameworkObject.Shared.Items[item.name] items[Number(item.slot) - 1].name = item.name items[Number(item.slot) - 1].icon = detailedItem.image items[Number(item.slot) - 1].count = item.amount }) } } } else if (config.Inventory === "qs-inventory") { if (!online) { let result = await query(` SELECT * FROM \`${config.Framework.includes("esx") ? "users" : "players"}\` WHERE \`${config.Framework.includes("esx") ? "identifier" : "citizenid"}\` = '${id}' `) if (result === false) return "SQL" result = result [0] const inventoryItems = JSON.parse(result.inventory) if (inventoryItems.length > 0) { inventoryItems.forEach(item => { items[Number(item.slot) - 1].name = item.name items[Number(item.slot) - 1].icon = `${item.name}.png` items[Number(item.slot) - 1].count = item.amount }) } } } else if (config.Inventory === "codem-inventory") { if (!online) { let result = await query(` SELECT * FROM \`codem_new_inventory\` WHERE \`identifier\` = '${id}' `) if (result === false) return "SQL" if (result.length === 0) return result = result [0] if (!result.inventory) return const inventoryItems = JSON.parse(result.inventory) Object.entries(inventoryItems).forEach(([slot, item]) => { const detailedItem = exports['codem-inventory'].GetItemList()[item.name] items[Number(slot) - 1].name = item.name items[Number(slot) - 1].icon = detailedItem.image items[Number(slot) - 1].count = item.amount }) } } else if (config.Inventory === "chezza-inventory") { if (!online) { let result = await query(` select * from \`users\` where \`identifier\` = '${id}' `) if (result === false) return "SQL" result = result [0] const inventoryItems = JSON.parse(result.inventory) const loadoutItems = JSON.parse(result.loadout) Object.entries(inventoryItems).forEach(([k, v]) => { items.push({ name: k, icon: k+".png", count: v }) }) Object.entries(loadoutItems).forEach(([k,v]) => { items.push({ name: k, icon: k+".png", count: 1 }) }) } } if (online) { if (config.Framework.includes("qb")) { const qPlayer = FrameworkObject.Functions.GetPlayer(id) if (qPlayer) { const inventoryItems = qPlayer.PlayerData.items if (config.Inventory === "codem-inventory") { Object.entries(inventoryItems).forEach(([slot, value]) => { items[Number(slot) - 1].name = value.name items[Number(slot) - 1].icon = value.image items[Number(slot) - 1].count = value.amount }) } else { if (inventoryItems.length) { inventoryItems.forEach(item => { items[Number(item.slot) - 1].name = item.name items[Number(item.slot) - 1].icon = item.image items[Number(item.slot) - 1].count = item.amount }) } else { Object.entries(inventoryItems).forEach(([slot,item]) => { items[Number(slot) - 1].name = item.name items[Number(slot) - 1].icon = item.image items[Number(slot) - 1].count = item.amount }) } } } } else { const xPlayer = FrameworkObject.GetPlayerFromId(id) if (xPlayer) { const inventory = xPlayer.getInventory() let isSlotsDifferent = inventory.length if (!isSlotsDifferent) { Object.entries(inventory).forEach(([slot, item]) => { items[Number(slot) - 1].name = item.name items[Number(slot) - 1].icon = `${item.name}.png` items[Number(slot) - 1].count = item.count }) } else { inventory.forEach(item => { items[Number(item.slot) - 1].name = item.name items[Number(item.slot) - 1].icon = `${item.name}.png` items[Number(item.slot) - 1].count = item.count }) } } } } return items }, ClearInventory: async (online, id) => { if (config.Framework.includes("esx") && config.Inventory !== "codem-inventory") { if (!online) { let result = await query(` UPDATE \`users\` SET \`inventory\` = '[]' WHERE \`identifier\` = '${id}' `) if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." }) } } else { if (!online && config.Inventory !== "codem-inventory") { let result = await query(` UPDATE \`players\` SET \`inventory\` = '[]' WHERE \`citizenid\` = '${id}' `) if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." }) } } if (config.Inventory === "codem-inventory" && !online) { let result = await query(` update \`codem_new_inventory\` set \`inventory\` = '{}' where \`identifier\` = '${id}' `) if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." }) } if (online) { if (config.Inventory === "ox_inventory") { exports["ox_inventory"].ClearInventory(id) } else if (config.Inventory === "qs-inventory") { exports["qs-inventory"].ClearInventory(id) } else if (config.Inventory === "qb-inventory") { exports["qb-inventory"].ClearInventory(id) } else if (config.Inventory === "codem-inventory") { exports["codem-inventory"].ClearInventory(id) } else if (config.Inventory === "chezza-inventory") { // CHEZZA } } }, RemoveItem: async (online, id, slot, amount, itemName) => { let playerName = "Not Found" if (!online) { result = await query(` SELECT * FROM \`${config.Framework.includes("esx") ? "users" : "players"}\` WHERE \`${config.Framework.includes("esx") ? "identifier" : "citizenid"}\` = '${id}' `) if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." }) result = result [0] if (config.Framework.includes("esx")) { playerName = result.firstname+" "+result.lastname } else { playerName = result.name } } if (config.Inventory === "ox_inventory") { if (!online) { let userInventory = JSON.parse(result.inventory) const index = userInventory.findIndex(i => Number(i.slot) === Number(slot)) const itemAmount = userInventory[index].count let realAmount = amount if ( Number(itemAmount) - Number(amount) <= 0 || Number(amount) === 0 || amount === null || !amount ) { userInventory.splice(index, 1) realAmount = itemAmount } else { userInventory[index].count = Number(itemAmount) - Number(amount) } result = await query(` UPDATE \`${config.Framework.includes("esx") ? "users" : "players"}\` SET \`inventory\` = '${JSON.stringify(userInventory)}' WHERE \`${config.Framework.includes("esx") ? "identifier" : "citizenid"}\` = '${id}' `) if (result === false) return "SQL" return { playerName, realAmount } } } else if (config.Inventory === "qs-inventory") { if (!online) { let userInventory = JSON.parse(result.inventory) const index = userInventory.findIndex(item => Number(item.slot) === Number(slot)) const itemAmount = userInventory[index].amount let realAmount = amount if ( Number(itemAmount) - Number(amount) <= 0 || Number(amount) === 0 || amount === null || !amount ) { userInventory.splice(index, 1) realAmount = itemAmount } else { userInventory[index].amount = Number(itemAmount) - Number(amount) } result = await query(` UPDATE \`${config.Framework.includes("esx") ? "users" : "players"}\` SET \`inventory\` = '${JSON.stringify(userInventory)}' WHERE \`${config.Framework.includes("esx") ? "identifier" : "citizenid"}\` = '${id}' `) if (result === false) return "SQL" return { playerName, realAmount } } } else if (config.Inventory === "qb-inventory") { if (!online) { let userInventory = JSON.parse(result.inventory) const index = userInventory.findIndex(item => Number(item.slot) === Number(slot)) const itemAmount = userInventory[index].amount let realAmount = amount if ( Number(itemAmount) - Number(amount) <= 0 || Number(amount) === 0 || amount === null || !amount ) { userInventory.splice(index, 1) realAmount = itemAmount } else { userInventory[index].amount = Number(itemAmount) - Number(amount) } result = await query(` UPDATE \`players\` SET \`inventory\` = '${JSON.stringify(userInventory)}' WHERE \`citizenid\` = '${id}' `) if (result === false) return "SQL" return { playerName, realAmount } } } else if (config.Inventory === "codem-inventory") { if (!online) { let result = await query(` select * from \`codem_new_inventory\` where \`identifier\` = '${id}' `) if (result === false) return "SQL" result = result [0] let userInventory = JSON.parse(result.inventory) let wantedItem = userInventory[String(slot)] const itemAmount = wantedItem.amount let realAmount = amount if ( Number(itemAmount) - Number(amount) <= 0 || Number(amount) === 0 || amount === null || !amount ) { wantedItem = undefined realAmount = itemAmount } else { wantedItem.amount = Number(itemAmount) - Number(amount) } userInventory[String(slot)] = wantedItem result = await query(` update \`codem_new_inventory\` set \`inventory\` = '${JSON.stringify(userInventory)}' where \`identifier\` = '${id}' `) if (result === false) return "SQL" return { playerName, realAmount } } } else if (config.Inventory === "chezza-inventory") { if (!online) { let result = await query(` select * from \`users\` where \`identifier\` = '${id}' `) if (result === false) return "SQL" result = result [0] let userInventory = JSON.parse(result.inventory) let userLoadout = JSON.parse(result.loadout) let exists = false let weapon = itemName.toLowerCase().startsWith("weapon") ? true : false if (weapon) { exists = userLoadout[itemName] ? userLoadout[itemName] : undefined } else { exists = userInventory[itemName] ? userInventory[itemName] : undefined } if (weapon) { userLoadout[itemName] = undefined result = await query(` update \`users\` set \`loadout\` = '${JSON.stringify(userLoadout)}' where \`identifier\` = '${id}' `) if (result === false) return "SQL" let realAmount = 1 return { playerName, realAmount } } else { let wantedItem = userInventory[itemName] const itemAmount = wantedItem let realAmount = amount if ( Number(itemAmount) - Number(amount) <= 0 || Number(amount) === 0 || amount === null || !amount ) { wantedItem = undefined realAmount = itemAmount } else { wantedItem = Number(itemAmount) - Number(amount) } userInventory[itemName] = wantedItem result = await query(` update \`users\` set \`inventory\` = '${JSON.stringify(userInventory)}' where \`identifier\` = '${id}' `) if (result === false) return "SQL" return { playerName, realAmount } } } } if (online) { if (config.Framework.includes("esx")) { const xPlayer = FrameworkObject.GetPlayerFromId(id) if (xPlayer) { playerName = xPlayer.getName() let newAmount = Number(amount) const currentAmount = xPlayer.getInventoryItem(itemName).count if ( !currentAmount || Number(currentAmount) - newAmount <= 0 || newAmount === 0 || !newAmount ) { newAmount = Number(currentAmount) } xPlayer.removeInventoryItem(itemName, newAmount) return { playerName, newAmount } } } else { const qPlayer = FrameworkObject.Functions.GetPlayer(id) if (qPlayer) { playerName = qPlayer.PlayerData.name let newAmount = Number(amount) let Items = await LV.GetPlayerInventoryItems(true, id) let currentAmount = Items[Number(slot) - 1][config.Inventory !== "codem-inventory" ? "count" : "amount"] if ( Number(newAmount) === 0 || !amount || !newAmount || isNaN(newAmount) || String(newAmount) === "undefined" || Number(currentAmount) - Number(newAmount) <= 0 ) { newAmount = currentAmount } qPlayer.Functions.RemoveItem(itemName, newAmount, Number(slot)) return { playerName, newAmount } } } } }, AddItem: async (online, id, itemName, amount, exists, slot) => { let playerName = "Not Found." if (!online) { let result = await query(` SELECT * FROM \`${config.Framework.includes("qb") ? "players" : "users"}\` WHERE \`${config.Framework.includes("qb") ? "citizenid" : "identifier"}\` = '${id}' `) if (result === false) return "SQL" result = result [0] if (config.Framework.includes("esx")) { playerName = result.firstname+" "+result.lastname } else { playerName = result.name } let playerInventory = JSON.parse(result.inventory) if (config.Inventory === "qb-inventory") { if (!exists) { const itemDetails = FrameworkObject.Shared.Items[itemName] let info = {} if (itemDetails.type === "weapon") { let serieNumber = randomInteger(2)+randomString(3)+randomInteger(1)+randomString(2)+randomInteger(3)+randomString(4) serieNumber = serieNumber.replace(/,/g, '') info.serie = `${serieNumber}` info.quality = 100 } playerInventory[playerInventory.length] = { name: itemDetails.name, amount: Number(amount), info: JSON.stringify(info) === '{}' ? [] : info, type: itemDetails.type, slot: Number(playerInventory.length) + 1 } } else { const indexOfNeededItem = playerInventory.findIndex(item => Number(item.slot) === Number(slot)) if (indexOfNeededItem === -1) return undefined playerInventory[indexOfNeededItem].amount = Number(playerInventory[indexOfNeededItem].amount) + Number(amount) } } else if (config.Inventory === "ox_inventory") { if (!exists) { const ServerItems = exports["ox_inventory"].Items() const itemDetails = ServerItems[itemName] if (!itemDetails) return undefined let metadata = {} if (itemDetails.weapon === true) { let firstnameLastname = undefined if (config.Framework.includes("qb")) { const charinfo = JSON.parse(result.charinfo) firstnameLastname = charinfo.firstname+" "+charinfo.lastname } else { firstnameLastname = result.firstname+" "+result.lastname } metadata = { components: [], ammo: 0, registered: firstnameLastname, durability: 100, serial: randomInteger(6)+randomString(3)+randomInteger(6) } } playerInventory[playerInventory.length] = { name: itemDetails.name, slot: Number(playerInventory.length) + 1, count: Number(amount), metadata: JSON.stringify(metadata) === "{}" ? undefined : metadata } } else { const indexOfNeededItem = playerInventory.findIndex(item => Number(item.slot) === Number(slot)) if (indexOfNeededItem === -1) return undefined playerInventory[indexOfNeededItem].count = Number(playerInventory[indexOfNeededItem].count) + Number(amount) } } else if (config.Inventory === "qs-inventory") { if (!exists) { const ServerItems = exports["qs-inventory"].GetItemList() const itemDetails = ServerItems[itemName] let info = {} if (itemDetails.type === "weapon") { let serieNumber = randomInteger(2)+randomString(3)+randomInteger(1)+randomString(2)+randomInteger(3)+randomString(4) serieNumber = serieNumber.replace(/,/g, '') info.serie = `${serieNumber}` info.quality = 100 } playerInventory[playerInventory.length] = { name: itemDetails.name, amount: Number(amount), info: JSON.stringify(info) === '{}' ? [] : info, type: itemDetails.type, slot: Number(playerInventory.length) + 1 } } else { const indexOfNeededItem = playerInventory.findIndex(item => Number(item.slot) === Number(slot)) if (indexOfNeededItem === -1) return undefined playerInventory[indexOfNeededItem].amount = Number(playerInventory[indexOfNeededItem].amount) + Number(amount) } } else if (config.Inventory === "codem-inventory") { result = await query(` select * from \`codem_new_inventory\` where \`identifier\` = '${id}' `) if (result === false) return "SQL" result = result [0] playerInventory = JSON.parse(result.inventory) if (!exists) { const ServerItems = exports["codem-inventory"].GetItemList() const itemDetails = ServerItems[itemName] if (!itemDetails) return undefined let info = [] if (itemDetails.type === "weapon") { info = { attachements: [], series: randomString(11), ammo: 0, quality: 100, decay: "time", repair: 0, durability: 0.3, maxrepair: 5, tint: 0, lastuse: Date.now(), } } let emptySlot = undefined for(let i = 0; i < config.MaxInventorySlot; i++) { if (emptySlot) continue const slotItem = playerInventory[String(i)] if (!slotItem) { emptySlot = i } } if (!emptySlot) return undefined playerInventory[emptySlot] = { amount: Number(amount), name: itemDetails.name, info: info, } } else { playerInventory[String(slot)].amount = Number(playerInventory[String(slot)].amount) + Number(amount) } } else if (config.Inventory === "chezza-inventory") { result = await query(` select * from \`users\` where \`identifier\` = '${id}' `) if (result === false) return "SQL" result = result [0] playerInventory = JSON.parse(result.inventory) playerLoadout = JSON.parse(result.loadout) if (!exists) { if (itemName.toLowerCase().startsWith("weapon")) { playerLoadout[itemName] = {ammo:0} } else { playerInventory[itemName] = amount } } else { if (itemName.toLowerCase().startsWith("weapon")) { playerLoadout[itemName] = {ammo:0} } else { playerInventory[itemName] = playerInventory[itemName]+amount } } } if (config.Inventory !== "codem-inventory") { result = await query(` UPDATE \`${config.Framework.includes("qb") ? "players" : "users"}\` SET \`inventory\` = '${JSON.stringify(playerInventory)}' WHERE \`${config.Framework.includes("qb") ? "citizenid" : "identifier"}\` = '${id}' `) if (result === false) return "SQL" } else { result = await query(` update \`codem_new_inventory\` set \`inventory\` = '${JSON.stringify(playerInventory)}' where \`identifier\` = '${id}' `) if (result === false) return "SQL" } return playerName } else { if (config.Framework.includes("esx")) { const xPlayer = FrameworkObject.GetPlayerFromId(id) if (xPlayer) { playerName = xPlayer.getName() xPlayer.addInventoryItem(itemName, amount) return playerName } } else { const qPlayer = FrameworkObject.Functions.GetPlayer(id) if (qPlayer) { playerName = qPlayer.PlayerData.name const itemAdded = qPlayer.Functions.AddItem(itemName, amount) if (!itemAdded) return undefined return playerName } } } }, GetAllItems: async () => { let items = [] const CraftableItems = config.CraftableItems if (config.Inventory === "ox_inventory") { const ServerItems = exports["ox_inventory"].Items() Object.entries(ServerItems).forEach(([k,v]) => { const CraftData = CraftableItems[k] items.push({ name: k, label: v.label, image: `${k}.png`, useable: v.weapon === true ? true : v.ammo === true ? true : v.consume ? true : false, weight: v.weight ? v.weight : 0, weapon: v.weapon ? v.weapon : false, ammoname: v.ammoname, unique: v.stack ? v.stack : true, close: v.close ? v.close : true, requiredItems: CraftData ? CraftData.requireditems : undefined, secondsforcraft: CraftData ? CraftData.secondsforcraft : undefined }) }) } else if (config.Inventory === "qb-inventory") { const serverItems = FrameworkObject.Shared.Items Object.entries(serverItems).forEach(([key, value]) => { const CraftData = CraftableItems[key] items.push({ name: key, label: value.label, image: value.image, useable: value.useable, weight: value.weight, weapon: value.type === 'weapon' ? true : false, ammoname: value.ammotype, unique: value.unique, close: value.shouldClose ? value.shouldClose : false, description: value.description, requiredItems: CraftData ? CraftData.requireditems : undefined, secondsforcraft: CraftData ? CraftData.secondsforcraft : undefined }) }) } else if (config.Inventory === "qs-inventory") { const serverItems = exports['qs-inventory'].GetItemList() Object.entries(serverItems).forEach(([key, value]) => { const CraftData = CraftableItems[key] items.push({ name: key, label: value.label, image: value.image, useable: value.useable, weight: value.weight, weapon: value.type === 'weapon' ? true : false, ammoname: value.ammotype, unique: value.unique, close: value.shouldClose ? value.shouldClose : false, description: value.description, requiredItems: CraftData ? CraftData.requireditems : undefined, secondsforcraft: CraftData ? CraftData.secondsforcraft : undefined }) }) } else if (config.Inventory === "codem-inventory") { const ServerItems = exports["codem-inventory"].GetItemList() Object.entries(ServerItems).forEach(([key, value]) => { const CraftData = CraftableItems[key] items.push({ name: key, label: value.label, image: value.image, useable: value.useable, weight: value.weight, weapon: value.type === 'weapon' ? true : false, ammoname: value.ammotype, unique: value.unique, close: value.shouldClose ? value.shouldClose : false, description: value.description, requiredItems: CraftData ? CraftData.requireditems : undefined, secondsforcraft: CraftData ? CraftData.secondsforcraft : undefined }) }) } else if (config.Inventory === "chezza-inventory") { let ServerItems = await query(` select * from \`items\` `) if (ServerItems === false) return "SQL" ServerItems.forEach(item => { const CraftData = CraftableItems[item.name] items.push({ name: item.name, label: item.label, image: item.name+".png", useable: item.can_remove === 1 ? true : false, weight: item.weight, weapon: item.name.toLowerCase().startsWith("weapon") ? true : false, ammoname: "Unknown", unique: item.rare === 1 ? true : false, close: false, description: item.desc ? item.desc : "Description not found.", requiredItems: CraftData ? CraftData.requireditems : undefined, secondsforcraft: CraftData ? CraftData.secondsforcraft : undefined }) }) } return items }, GetAllServerVehicles: async () => { const Vehicles = [] if (config.CodeMVehicleShop) { let VehicleShopResponse = await query(`select * from \`vehicle_shops\``) if (VehicleShopResponse === false) return if (VehicleShopResponse.length === 0) return [] for (const shopdata of VehicleShopResponse) { const ShopCategories = JSON.parse(shopdata.vehicles) for (const [category, vehicles] of Object.entries(ShopCategories)) { if (vehicles.length === 0) continue for (const vehicle of vehicles) { const prepareVehicle = { model: vehicle.hash, name: vehicle.name, shop: shopdata.name, price: vehicle.price, category: category, categoryLabel: category, brand: vehicle.brand } Vehicles.push(prepareVehicle) } } } } else if (config.CustomVehicles) { // Make your own function // get variables from where you store vehicles // and push it to Vehicles array like Vehicles.push() // needed variables and example: // const newVehicle = { // model: yourvariable, // name: yourvariable, // shop: yourvariable, // price: yourvariable, // category: yourvariable, // categoryLabel: yourvariable, // brand: yourvariable // } // Vehicles.push(newVehicle) } else { if (config.Framework.includes("qb")) { for (const [key,value] of Object.entries(FrameworkObject.Shared.Vehicles)) { Vehicles.push({ model: key, name: value.name, shop: value.shop, price: value.price, category: value.category, categoryLabel: value.categoryLabel, brand: value.brand }) } } else { let response = await query(`select * from \`vehicles\``) if (response === false) return if (response.length === 0) return [] response.map(c => { Vehicles.push({ model: c.model, name: c.name, shop: undefined, price: c.price, category: c.category, categoryLabel: undefined, brand: undefined }) }) } } return Vehicles }, GetPlayerPhoneNumber: async (uid) => { if (config.Framework.includes("esx")) { let result = await query(` select * from \`users\` where \`identifier\` = '${uid}' `) if (result === false) return false if (result.length === 0) return false result = result[0] // const charinfo = JSON.parse(result.charinfo) // return charinfo.phone // in charinfo return result.phone_number // different column (default esx) } }, ChangePlayersPhoneNumber: async (uid, newPhone) => { if (config.Framework.includes("esx")) { // different column (default esx) let result = await query(` update \`users\` set \`phone_number\` = '${newPhone}' where \`identifier\` = '${uid}' `) if (result === false) return false return true // in charinfo // let result = await query(` // select * from \`users\` // where \`identifier\` = '${uid}' // `) // if (result === false) return false // if (result.length === 0) return false // result = result[0] // const charinfo = result.charinfo // charinfo.phone = newPhone // result = await query(` // update \`users\` // set \`charinfo\` = '${JSON.stringify(charinfo)}' // where \`identifier\` = '${uid}' // `) // if (result === false) return false // return true } } }