检查消息是不是从 DM 发送不工作

Posted

技术标签:

【中文标题】检查消息是不是从 DM 发送不工作【英文标题】:Checking if a message was sent from a DM not working检查消息是否从 DM 发送不工作 【发布时间】:2021-12-28 07:31:39 【问题描述】:

我正在使用 Discord.js v12 并尝试检查是否有消息是从 DM 发送的,但它对我不起作用,我尝试过这种方法:

  if (msg.channel.type === 'dm')

这在几个月前还可以正常工作,但现在不行了。当我尝试console.log(msg.channel.type) 时,它只返回文本,当机器人收到 DM 时不返回 dm,我找不到任何解决方案。

【问题讨论】:

哦,你是说console.log(msg.channel.type)字符串"text"吗? 【参考方案1】:

你确定你没有更新你的 discord.js 版本并且你还在使用 v12 吗?

v13 中的频道类型现在是大写的,并且符合 Discord 的命名约定。请参阅下面的更改:

channel type v12 v13
DM channel dm DM
group DM channel N/A GROUP_DM
guild text channel text GUILD_TEXT
guild text channel's public thread channel N/A GUILD_PUBLIC_THREAD
guild text channel's private thread channel N/A GUILD_PRIVATE_THREAD
guild voice channel voice GUILD_VOICE
guild stage voice channel N/A GUILD_STAGE_VOICE
guild category channel category GUILD_CATEGORY
guild news channel news GUILD_NEWS
guild news channel's public thread channel N/A GUILD_NEWS_THREAD
guild store channel store GUILD_STORE
generic channel of unknown type unknown UNKNOWN

【讨论】:

以上是关于检查消息是不是从 DM 发送不工作的主要内容,如果未能解决你的问题,请参考以下文章

Discordbot 读取 DM 消息并记录它们

如何检查 Tweeter 用户是不是可以使用 tweepy 获取直接消息?

Discord.js - 发送消息的计数器,DM给公会的所有成员

discord.js 编辑发送给用户 dm 的消息

我如何 DM 将直接消息放入公共频道而不发送垃圾邮件的机器人

TypeError:mention.send 不是函数 - discord.js