如何在Discord机器人上发出命令以随机生成报价?

时间:2019-02-12 20:14:50

标签: javascript bots discord dice

我正在编写自己的Discord机器人,简而言之,我需要一些代码帮助。 当我使用!roll或!dice之类的命令时,我需要我的机器人选择随机响应(例如1/10),并且一旦使用,用户需要冷却6天才能被添加(即该命令不能被该用户使用了6天,并会在几天,几小时和几分钟之内回复)

我对代码很陌生,但是我发现了一些

const Discord = require ("discord.js")
const Bot = new Discord.Client();
const token = "my token"
Bot.login('my token');

Bot.on('message' , function (message){
if(message.content == '!roll')
var roll =(Math.floor(Math.random()*200)+1);
   if (roll = 1 )
    {message.reply('Wowza!');
}
        else {message.reply('lol!');
    }

每当我滚动时,机器人就会显示其中一个输出,然后显示另一个输出,然后对这两个输出进行垃圾邮件处理,直到将其关闭为止。

1 个答案:

答案 0 :(得分:1)

请勿在比较语句中使用单个=,例如if。单个等于是一个赋值运算符,这意味着当您编写roll = 1时,您将 roll设置为1 ,而不是检查其持有的值是否为1。

在进行比较语句时始终使用=====。因此,您可能想使用roll == 1roll === 1

Here's a good article about double equals vs triple equals in JavaScript

if (roll == 1 ) {
    message.reply('Wowza!');
}
else {
    message.reply('lol!');
}

此外,在进一步查看代码之后,您还有其他问题。您希望将第一个if包装在花括号中,因为它应该包含以下代码行。

Bot.on('message' , function (message){
    if (message.content == '!roll') 
    {
        var roll =(Math.floor(Math.random()*200)+1);
        if (roll == 1)
        {
            message.reply('Wowza!');
        }
        else 
        {
            message.reply('lol!');
        }
    }
}