您可以在控制台日志或discord频道中应答dms的机器人

您可以在控制台日志或discord频道中应答dms的机器人,discord,readline,discord.js,Discord,Readline,Discord.js,我搜索了一下,得到了一个带有readline的代码,看起来像这样: const Disc = require('discord.js'); const client = new Disc.Client(); const token = 'token' const readline = require('readline'); client.login(token); client.on('message', function(message){ if(message.channel

我搜索了一下,得到了一个带有readline的代码,看起来像这样:

const Disc = require('discord.js');
const client = new Disc.Client();
const token = 'token' 
const readline = require('readline');

client.login(token);

client.on('message', function(message){
    if(message.channel.type === 'dm'){
        console.log("[" + message.author.username + "]: " + message.content) 


        const rl = readline.createInterface({
            input: process.stdin,
            output: process.stdout
        });

        rl.question('REPLY TO ' + message.author.username + ': ', (answer) => {
            message.author.send(`${answer}`);
            rl.close();
        });
     }
 });

但是它不起作用。这是我最近刚做的一个主题,所以我将带您浏览它,并给您一些代码

首先,我想说的是,当你发表文章时,要包括一个明确的问题。听上去,你需要一个机器人将dms记录到控制台,或者响应它们。我只回答这两个问题

检查DM的最简单方法是查看消息通道类型是否为DM。查看有关频道类的更多信息。通过执行以下操作,可以检查通道是否为特定类型:

if(message.channel.type=='dm'){}//将dm更改为所需的类型
这必须放在您的on message函数中,因此,现在,如果您继续,代码将如下所示:

bot.on('message',异步消息=>{
如果(message.channel.type=='dm'){}
});
从这里开始,只需将代码添加到if语句的内部。您总是希望在其中包含一个return语句,以防什么也没有发生,因此它不会尝试在通道中执行任何操作

对于您想要的,这将把DM记录到控制台并回复它,如果它等于某条消息

bot.on('message',异步消息=>{
如果(message.channel.type==='dm'){
console.log(message.content);
如果(message.content==“某物”){
返回等待消息。频道。发送(“嗨!”);
}
返回;
}
});
这应该是你想要的,如果你有任何问题,请在这里发表评论,我会尽快回复:)

编辑:

bot.on('message',异步消息=>{
如果(message.channel.type==='dm'){
log(${message.author.username}表示:${message.content}`);
const rl=readline.createInterface({
输入:process.stdin,
输出:process.stdout
});
问题(`REPLY TO${message.author.username}:`,(答案)=>{
message.author.send(`${answer}`);
rl.close();
});
}
});

欢迎来到堆栈溢出。到目前为止你试过什么?为什么它不适合你;错误是什么?它并没有说它就是不起作用。如果我想能够回答,从控制台日志中自己选择的bot发送一个dm,而不仅仅是让它回答一些事情,那该怎么办?你也有一个失败,你必须从
return wait message.channel.send(“嗨!”)中删除wait不需要删除wait,它位于异步函数中。我不知道你所说的“回答,从控制台日志中自己选择的机器人发送一个dm,而不仅仅是让它回答一些事情”是什么意思?你能详细说明一下吗?就像能够从控制台日志发送回答一样,我对我的帖子进行了编辑,尝试一下,告诉我它是否有效,这是“编辑”下的代码