discord.js 机器人数学无法正常工作
discord.js bot math not working right
因此,当有人清除频道时,我的机器人想要将一个添加到清除量中,然后他们将第一个值拆分掉,这样它就不会清除他们的命令,但是当我尝试将值加 1 时传递的参数只是将数字放在值后面......任何帮助,我真的很糟糕,所以你......
if (args[1]){
var messagecount = args[1];
var messagetotal = Math.floor(messagecount + 1); // Adding 1 to passed argument
console.log(messagetotal); // Outputting to console, Console is reading the argument with 1 on the end EX: arg: 2 | output: 21
// message.channel.fetchMessages({limit: messagecount}).then(messages => message.channel.bulkDelete(messages).then(messages => message.channel.send("Purged `" + messages.size + "` messages.")));
} else {
// message.channel.send("Usage: !purge (Number)");
}
我不知道 args[1]
的确切内容是什么,但是根据您对错误的解释,该值似乎是一个格式化为字符串的数字。
区别:
字符串
args[1] = "1";
console.log(args[1] + 1);
输出:"11"
整数
args[1] = 1;
console.log(args[1] + 1);
输出:2
如果您将一个数字添加到一个字符串中,它将被追加而不是数学上相加。
要将数字字符串格式化为整数,请替换
var messagecount = args[1];
到
var messagecount = parseInt(args[1]);
const math = require('mathjs');
if (args.length > 0)
if (!message.member.hasPermission("MANAGE_MESSAGES"))
message.reply('You do not have permission to use this command.')
else {
var amount = args.join(' '),
total = math.evaluate(`${amount}+1`);
message.channel.bulkDelete(total).catch(console.error);
}
else
message.reply('You did not type an amount for me to delete.')
break;
因此,当有人清除频道时,我的机器人想要将一个添加到清除量中,然后他们将第一个值拆分掉,这样它就不会清除他们的命令,但是当我尝试将值加 1 时传递的参数只是将数字放在值后面......任何帮助,我真的很糟糕,所以你......
if (args[1]){
var messagecount = args[1];
var messagetotal = Math.floor(messagecount + 1); // Adding 1 to passed argument
console.log(messagetotal); // Outputting to console, Console is reading the argument with 1 on the end EX: arg: 2 | output: 21
// message.channel.fetchMessages({limit: messagecount}).then(messages => message.channel.bulkDelete(messages).then(messages => message.channel.send("Purged `" + messages.size + "` messages.")));
} else {
// message.channel.send("Usage: !purge (Number)");
}
我不知道 args[1]
的确切内容是什么,但是根据您对错误的解释,该值似乎是一个格式化为字符串的数字。
区别:
字符串
args[1] = "1";
console.log(args[1] + 1);
输出:"11"
整数
args[1] = 1;
console.log(args[1] + 1);
输出:2
如果您将一个数字添加到一个字符串中,它将被追加而不是数学上相加。
要将数字字符串格式化为整数,请替换
var messagecount = args[1];
到
var messagecount = parseInt(args[1]);
const math = require('mathjs');
if (args.length > 0)
if (!message.member.hasPermission("MANAGE_MESSAGES"))
message.reply('You do not have permission to use this command.')
else {
var amount = args.join(' '),
total = math.evaluate(`${amount}+1`);
message.channel.bulkDelete(total).catch(console.error);
}
else
message.reply('You did not type an amount for me to delete.')
break;