我正在尝试编写一条命令,要求用户在初始输入之后输入另一个输入。我试图在包含命令模块的文件内创建客户端连接。
但是,我尝试并进行了无结果的研究,当我输入第二个输入时,机器人没有响应。
我尝试将主要参数传递给命令,以查看机器人是否可以接收其他输入,但最后评估第一个输入。
这是我第一次尝试创建代码的示例:
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”参数的名称,但是得到了相同的结果,我不确定它的作用域是否仅在函数内部,而不仅仅是传递“执行”功能的参数
答案 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")