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

Posted

技术标签:

【中文标题】如何要求用户向 Discord Bot 输入第二个输入?【英文标题】:How to require from the user entering a second input to a Discord Bot? 【发布时间】:2020-10-29 03:40:12 【问题描述】:

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

但是,我已经尝试和研究了没有结果,当我输入第二个输入时,机器人没有响应。

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

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

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”参数的名称,但得到了相同的结果,我不确定它的范围是否仅在函数内部而不仅仅是传递的来自“执行”函数的参数

【问题讨论】:

我在看文档,你试过这样做吗? github.com/discordjs/guide/blob/master/code-samples/… 实际上没有,我为每个命令使用一个模块。 【参考方案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")

【讨论】:

以上是关于如何要求用户向 Discord Bot 输入第二个输入?的主要内容,如果未能解决你的问题,请参考以下文章

如何制作一个 Discord Bot 来找到与您输入的命令最接近的响应

如何从 Youtube 向 discord bot python 发送视频

Discord Bot - 如何删除倒数第二条最近的消息?

discord bot c# 读取收到的直接消息

如何在 python discord bot 中获取用户输入?

如何向 discord.js bot v12 添加验证