![](/img/trans.png)
[英]How can I say my Discord bot doesn't react to direct messages, only in a server chat channel?
[英]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.