173 lines
8.7 KiB
JavaScript
173 lines
8.7 KiB
JavaScript
async function changePlayerNormalMoney(type, newValue, playerId, res, uid, oldValue, userName) {
|
|
if (type.toLowerCase() === "blackmoney" && config.BlackMoney.Type.toLowerCase() === "none") return res.json({ code: 404, message: "Blackmoney is not supported." })
|
|
|
|
if (config.Framework.includes("qb")) {
|
|
const qPlayer = FrameworkObject.Functions.GetPlayer(playerId)
|
|
if (qPlayer) {
|
|
if (config.BlackMoney.Type === "with-item" && type.toLowerCase() === "blackmoney") {
|
|
if (Number(newValue) > Number(oldValue)) {
|
|
qPlayer.Functions.AddItem(config.BlackMoney.Object, Number(newValue) - Number(oldValue))
|
|
res.json({ code: 200, message: "Changed." })
|
|
} else if (Number(oldValue) > Number(newValue)) {
|
|
qPlayer.Functions.RemoteItem(config.BlackMoney.Object, Number(oldValue) - Number(newValue))
|
|
res.json({ code: 200, message: "Changed." })
|
|
}
|
|
} else {
|
|
qPlayer.Functions.SetMoney(type.toLowerCase(), Number(newValue))
|
|
res.json({ code: 200, message: "Changed." })
|
|
}
|
|
} else {
|
|
let result = await query(`SELECT * FROM \`players\` WHERE \`citizenid\` = '${uid}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
result = result [0]
|
|
|
|
if (config.BlackMoney.Type === "with-item" && type.toLowerCase() === "blackmoney") {
|
|
const newInvJson = JSON.parse(result.inventory)
|
|
let changed = false
|
|
newInvJson.forEach(item => {
|
|
if (changed === true) return
|
|
if (item.name === config.BlackMoney.Object.toLowerCase()) {
|
|
item.amount = Number(newValue)
|
|
changed = true
|
|
}
|
|
})
|
|
|
|
result = await query(`UPDATE \`players\` SET \`inventory\` = '${JSON.stringify(newInvJson)}' WHERE \`citizenid\` = '${uid}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
|
|
res.json({ code: 200, message: "Changed." })
|
|
} else {
|
|
const oldMoneyJson = JSON.parse(result.money)
|
|
oldMoneyJson[type.toLowerCase()] = Number(newValue)
|
|
|
|
result = await query(`UPDATE \`players\` SET \`money\` = '${JSON.stringify(oldMoneyJson)}' WHERE \`citizenid\` = '${uid}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
|
|
res.json({ code: 200, message: "Changed." })
|
|
}
|
|
}
|
|
} else {
|
|
const xPlayer = FrameworkObject.GetPlayerFromId(playerId)
|
|
if (xPlayer) {
|
|
if (config.BlackMoney.Type === "with-item" && type.toLowerCase() === "blackmoney") {
|
|
if (Number(newValue) > Number(oldValue)) {
|
|
xPlayer.addInventoryItem(config.BlackMoney.Object, Number(newValue) - Number(oldValue))
|
|
res.json({ code: 200, message: "Changed." })
|
|
} else if (Number(oldValue) > Number(newValue)) {
|
|
xPlayer.removeInventoryItem(config.BlackMoney.Object, Number(oldValue) - Number(newValue))
|
|
res.json({ code: 200, message: "Changed." })
|
|
}
|
|
} else {
|
|
let convertedType = type.toLowerCase()
|
|
if (convertedType === "blackmoney") convertedType = "black_money"
|
|
if (convertedType === "cash") {
|
|
xPlayer.setMoney(Number(newValue))
|
|
} else {
|
|
xPlayer.setAccountMoney(convertedType, Number(newValue))
|
|
}
|
|
|
|
res.json({ code: 200, message: "Changed." })
|
|
}
|
|
} else {
|
|
let result = await query(`select * from \`users\` where \`identifier\` = '${uid}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
result = result[0]
|
|
|
|
if (config.BlackMoney.Type === "with-item" && type.toLowerCase() === "blackmoney") {
|
|
const newInvJson = JSON.parse(result.inventory)
|
|
let changed = false
|
|
Object.entries(newInvJson).forEach(([k,v]) => {
|
|
if (changed === true) return
|
|
if (k === config.BlackMoney.Object.toLowerCase()) {
|
|
v = Number(newValue)
|
|
changed = true
|
|
}
|
|
})
|
|
|
|
result = await query(`
|
|
update \`users\`
|
|
set \`inventory\` = '${JSON.stringify(newInvJson)}'
|
|
where \`identifier\` = '${uid}'
|
|
`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
|
|
res.json({ code: 200, message: "Changed." })
|
|
} else {
|
|
const oldMoneyJson = JSON.parse(result.accounts)
|
|
let convertedType = type.toLowerCase()
|
|
if (convertedType === "blackmoney") convertedType = "black_money"
|
|
if (convertedType === "cash") convertedType = "money"
|
|
oldMoneyJson[convertedType] = Number(newValue)
|
|
|
|
result = await query(`
|
|
update \`users\`
|
|
set \`accounts\` = '${JSON.stringify(oldMoneyJson)}'
|
|
where \`identifier\` = '${uid}'
|
|
`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
|
|
res.json({ code: 200, message: "Changed." })
|
|
}
|
|
}
|
|
}
|
|
|
|
let logMessage = ""
|
|
|
|
if (Number(newValue) > Number(oldValue)) {
|
|
logMessage = `added ${Number(newValue) - Number(oldValue)}${type.toLowerCase() !== "crypto" ? "$" : ""} as ${type.toLowerCase()}`
|
|
} else if (Number(newValue) < Number(oldValue)) {
|
|
logMessage = `removed ${Number(oldValue) - Number(newValue)}${type.toLowerCase() !== "crypto" ? "$" : ""} as ${type.toLowerCase()}`
|
|
}
|
|
|
|
let result = await query(`INSERT INTO \`madmin_logs\` (\`type\`, \`author\`, \`message\`, \`date\`, \`player_uid\`) VALUES ('money', '${userName}', '${logMessage.replaceAll("'", "\\'")}', '${moment(Date.now()).format("DD.MM.YYYY HH:mm")}', '${uid}')`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
}
|
|
|
|
async function changeSocietyMoney(job, newValue, res, oldValue, userName, uid) {
|
|
let logMessage = ""
|
|
|
|
if (Number(newValue) > Number(oldValue)) {
|
|
logMessage = `added ${Number(newValue) - Number(oldValue)}$ as society`
|
|
} else if (Number(newValue) < Number(oldValue)) {
|
|
logMessage = `removed ${Number(oldValue) - Number(newValue)}$ as society`
|
|
}
|
|
|
|
let result = await query(`INSERT INTO \`madmin_logs\` (\`type\`, \`author\`, \`message\`, \`date\`, \`player_uid\`) VALUES ('money', '${userName}', '${logMessage.replaceAll("'", "\\'")}', '${moment(Date.now()).format("DD.MM.YYYY HH:mm")}', '${uid}')`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
|
|
if (config.Framework.includes("qb")) {
|
|
const oldValue = LV.Society.GetAccountMoney(job)
|
|
if (Number(oldValue) > newValue) {
|
|
LV.Society.RemoveMoney(job, Number(oldValue) - newValue)
|
|
} else {
|
|
LV.Society.AddMoney(job, newValue - Number(oldValue))
|
|
}
|
|
} else {
|
|
let result = await query(`
|
|
update \`addon_account_data\`
|
|
set \`money\` = ${newValue}
|
|
where \`account_name\` = 'society_${job}'
|
|
`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
}
|
|
|
|
res.json({ code: 200, message: "Changed." })
|
|
}
|
|
|
|
app.use("/changePlayerMoneys.lvorex", express.json())
|
|
app.post("/changePlayerMoneys.lvorex", async (req, res) => {
|
|
const postBody = req.body
|
|
const { keyFound, userKey } = await controlKey(req, postBody.key)
|
|
|
|
if (keyFound === false) return res.json({ code: 404, message: "Not authorized." })
|
|
const PermissionCheck = await checkPermission(userKey.rank, "Players", 11)
|
|
if (!PermissionCheck) return res.json({ code: 401, message: "Your rank is not enough." })
|
|
|
|
if (postBody.type.toLowerCase() !== "society") {
|
|
await changePlayerNormalMoney(postBody.type, Number(postBody.newValue), Number(postBody.playerId), res, postBody.uid, postBody.oldValue, userKey.userName)
|
|
return
|
|
} else {
|
|
await changeSocietyMoney(postBody.job, Number(postBody.newValue), res, postBody.oldValue, userKey.userName, postBody.uid)
|
|
return
|
|
}
|
|
}) |