Javascript Discord机器人没有从DM处获取答案

Javascript Discord机器人没有从DM处获取答案,javascript,discord,discord.js,Javascript,Discord,Discord.js,我一直在开发一个机器人,它在DM中提出一个问题,但目前它在DM中提出所有问题,并从一个渠道获取答案。我想让它从DM那里得到答案 const Discord=require('Discord.js'); const client=new Discord.client(); 常量前缀='-'; 常量guildID=“”; 常量标记=“”; //准备活动 client.on('ready',()=>{ console.log('Application bot ready!') }); //消息事件 c

我一直在开发一个机器人,它在DM中提出一个问题,但目前它在DM中提出所有问题,并从一个渠道获取答案。我想让它从DM那里得到答案

const Discord=require('Discord.js');
const client=new Discord.client();
常量前缀='-';
常量guildID=“”;
常量标记=“”;
//准备活动
client.on('ready',()=>{
console.log('Application bot ready!')
});
//消息事件
client.on('message',异步消息=>{
//args
const args=message.content.slice(prefix.length.trim().split(+/+/g);
const命令=args.shift().toLowerCase();
//命令
如果(命令=='apply'){
//必须在DMs中
if(message.channel.type!=“dm”){
message.channel.send('检查您的DM');
message.author.send('应用程序已启动!');
//第一个问题
等待message.author.send('你几岁?');
让answer=wait message.channel.wait messages(answer=>answer.author.id!=client.user.id{
最高:1
});
const age=(answer.map(answers=>answers.content.join());
//第二个问题
等待消息。作者。发送('你叫什么名字?');
answer=wait message.channel.wait messages(answer=>answer.author.id!=client.user.id{
最高:1
});
const name=(answer.map(answers=>answers.content.join());
//第三项质询
等待message.author.send('你住在哪里?');
answer=wait message.channel.wait messages(answer=>answer.author.id!=client.user.id{
最高:1
});
const location=(answer.map(answers=>answers.content.join());
//嵌入
const embed=new Discord.MessageEmbed()
.setAuthor(message.author.tag、message.author.avatarURL)
.addField('Age',Age)
.addField('Name',Name)
.addField('位置',位置)
.setTimestamp()文件
.setColor(“红色”);
//发送嵌入
const guild=client.guilds.cache.get(guildID);
等待guild.channels.cache.find(channel=>channel.name==“general”).send(嵌入);
}
}
});
//登录
client.login(令牌);

我尝试将
message.channel.type
更改为dm,但是dm中没有收到问题

我认为您应该将检查频道的部分与发送问题的部分分开

您要做的第一件事是检查消息是否来自DM:如果是这样,那么您已经准备好了,如果不是,您必须获得DM频道才能接收答案。您可以使用以下内容:

if(message.channel.type!=“dm”)
message.channel.send('检查您的DMs!')
让appChannel=(wait message.author.send('应用程序已启动').channel
这样,您就有了一个名为
appChannel
的变量,它存储了您将在其中提问和接收答案的频道(即用户DM频道)。您可以仅使用该选项运行其余代码,下面是第一个问题的示例:

等待appChannel.send('你多大岁数?');
let answer=await-appChannel.awaitMessages(answer=>answer.author.id!=client.user.id,{max:1});
const age=(answer.map(answers=>answers.content.join());

很高兴听到这个消息