Discord Bot随机回复

时间:2020-07-18 14:40:31

标签: javascript discord discord.js

我目前正在使用一款简单的迷你游戏开发一款不和谐的机器人。您编写“ gamestart”,并且机器人会向您发送4种可能的回复之一。但是我的机器人没有发送任何东西。可能是什么问题?

bot.on('message', msg) => {
    if(msg.content === "gamestart"){
        var random = Math.random() * (4 - 1) + 1;
        Math.round(random);
        if(random === 1){
            message.channel.send('doggos, axes, chalice');
            
        }
        else
        if(random === 2){
            message.channel.send('sun, axes, doggos');
            
        }
        else
        if(random === 3){
            message.channel.send('axes, sun, chalice');
            
        }
        else
        if(random === 4){
            message.channel.send('chalice, doggos, sun');
            
        }   
    }
    
})

2 个答案:

答案 0 :(得分:1)

const Responses = ["doggos, axes, chalice", "sun, axes, doggos", "axes, sun, chalice", "chalice, doggogs, sun"]; // Storing the responses.
message.channel.send(Responses[Math.floor(Math.random() * Responses.length)]); // Sending a random response.

答案 1 :(得分:0)

该问题也可能与邮件处理和undefined频道ID有关。

首先,通过以下代码确保漫游器实际上正在监听消息事件:

bot.on('message', msg => {
    console.log(msg)
    if(msg.content === "gamestart"){
        var random = Math.random() * (4 - 1) + 1;
        ...

第二个是,所有消息(即使它们是数字)都是实际的字符串,请确保传入的msg值与句子“ gamestart”相等。

对于第三个,默认情况下,漫游器会在其监听的频道中回复用户,但如果您正在监听message事件,但无权在当前频道中进行写回复,然后您就被搞砸了。

确保漫游器在某些频道中具有权限,或与permission=8(管理员)邀请