如何要求用户向Discord Bot输入第二个输入?

时间:2020-07-08 16:50:29

标签: javascript discord discord.js

我正在尝试编写一条命令,要求用户在初始输入之后输入另一个输入。我试图在包含命令模块的文件内创建客户端连接。

但是,我尝试并进行了无结果的研究,当我输入第二个输入时,机器人没有响应。

我尝试将主要参数传递给命令,以查看机器人是否可以接收其他输入,但最后评估第一个输入。

这是我第一次尝试创建代码的示例:

const Discord = require('discord.js');
const client = new Discord.Client();

ule.exports = {
 name: 'command',
 description: 'A test command',
 execute(message, args){
     if(args == '1'){
         message.channel.send('Enter another input');
         client.on('message', message =>{
             if(!message.content.length || message.author.bot) return;
             const args = message.content.slice().split();
             if(args == '2'){
                 message.channel.send('Done!');
             }
         });
     }
 }
}

我曾考虑过更改“ client.on”函数中“ message”参数的名称,但是得到了相同的结果,我不确定它的作用域是否仅在函数内部,而不仅仅是传递“执行”功能的参数

1 个答案:

答案 0 :(得分:1)

您要么制作了awaitMessages

     if(!args[0]) return
     if(!args[1])
     {
        message.channel.send('Enter another input').then(m => {
            const m = await msg.channel.awaitMessages((mes) => mes.author.id == message.author.id, { max: 1, time: 50000, errors: ['time'] }).catch(err => console.log(err))
            args[1] = m.first();
        })  
     }

如果没有第二个参数,您就是不运行命令

     if(!args[0]) return
     if(!args[1]) return message.reply("You need to insert the second argument")