繁体   English   中英

如何让 Discord 机器人收听我的 DM 而不是简单的频道消息?

[英]How can I make a Discord bot listen to my DMs instead of simple channel messages?

我正在搞乱创建一个简单的测验机器人。 到目前为止,它在频道中运行良好,但我想将其修改为仅限 DM 的测验机器人。

我听来自 Discord 用户的命令是这样的:

client.on('messageCreate', async message => {

它运作良好,但仅在频道中,而不是在 DM 中。

我已经搜索了'directMessageCreate'或其他任何内容,但还没有找到解决方案。

我还尝试搜索教程,每个人都在公共频道中使用公共命令启动机器人 DM,我想做一个只有 DM 的机器人。

我怎样才能让我的公共机器人成为仅限 DM 的机器人?

编辑:

这些是我的意图,其中列出了DIRECT_MESSAGES 还缺少什么吗?

const client = new discord.Client({
    intents: ["GUILDS", "GUILD_MESSAGES", "DIRECT_MESSAGES"]
});

您需要启用所需的意图和部分才能收听直接消息。 由于您已经添加了DIRECT_MESSAGES ,因此您一定错过了CHANNEL partial 这是 DM 所必需的。 虽然服务器频道始终可用,但 DM 频道可以取消缓存,这就是为什么您需要像这样添加它:

const client = new discord.Client({
    intents: ["GUILDS", "GUILD_MESSAGES", "DIRECT_MESSAGES"],
    partials: ['CHANNEL']
});

如果你想制作一个只有 DM 的机器人,你需要检查channel.type并忽略任何不是 DM 的东西:

client.on('messageCreate', (message) => {
    if (message.author.bot || message.channel.type !== 'DM') return;

    // handle the command sent in a DM
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM