#javascript #discord
#javascript #Discord
Вопрос:
Итак, я создаю валютную систему для Project Star, сервера discord, я создал своего собственного бота и начал его кодировать. Мне нужна была команда оплаты, поэтому я попытался ее создать. Вот мой код.
if(user === message.author) {
return message.channel.send("You cannot pay yourself!")
}
money.updateBal(message.author.id, -wanted).then((i) => {
message.channel.send(`Processing...`);
})
if(wanted > moneyBal) {
message.channel.send("Error: Insufficient Funds")
} else if(wanted < moneyBal) {
money.updateBal(user.id, wanted).then((i) => {
message.channel.send(`Transaction Completed with $${wanted} Sent.`);
})
}
Когда я набираю команду c!pay, она отвечает на обработку… и после этого не отправляет сообщение. Если я отправлю больше, чем у меня есть, это сделает то же самое, но мой баланс изменится на -. Например. c!pay @therealgamer1: 6, мой баланс равен -1. Однако он отправляет деньги. Даже если у меня нет суммы. Как мне исправить это, чтобы, если вы хотите заплатить больше, чем у вас есть, отображалась ошибка?
Комментарии:
1. Это может не решить вашу проблему напрямую, но похоже, что вы выполняете
updateBal
перед проверкой остатков, если проверка не находится внутриmoney
. Похоже, вам следует добавитьelse
в конце ваших условий и переместить этот блок. Я замечаю, что также нет ограждения, транзакций и т. Д., Поэтому пользователь, отправляющий деньги, может очень быстро отправить 2 запроса и иметь возможность отправлять деньги, которых у них на самом деле может не быть.2. Итак, можете ли вы сказать код, как я должен это сделать? Я не знаю, как это исправить.