javascript 检查消息是否从不工作的DM通道类型发送

vltsax25  于 2023-02-18  发布在  Java
关注(0)|答案(1)|浏览(160)

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

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

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

cvxl0en2

cvxl0en21#

你确定你还没有更新discord.js版本并且你仍然在使用v12吗?
v13中的频道类型现在是大写的,并且与Discord的命名约定一致。
| 渠道类型|第十二卷|第十三卷|
| - ------|- ------|- ------|
| DM信道|dm|DM|
| 群DM信道|不适用|GROUP_DM|
| 指南文本频道|text|GUILD_TEXT|
| 公会文本通道公共线程通道|不适用|GUILD_PUBLIC_THREAD|
| 公会文本通道私有线程通道|不适用|GUILD_PRIVATE_THREAD|
| 公会话音信道|voice|GUILD_VOICE|
| 公会级语音信道|不适用|GUILD_STAGE_VOICE|
| 公会类频道|category|x1米11米1x|
| 行会新闻频道|news|GUILD_NEWS|
| 公会新闻频道公共线程频道|不适用|GUILD_NEWS_THREAD|
| 公会商店频道|store|GUILD_STORE|
| 未知类型的通用信道|unknown|UNKNOWN|
这意味着,如果你想检查channeltype是否是DM,你需要使用:

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

v14中也有一些变化。您可以use the ChannelType enums

const { ChannelType, Client } = require('discord.js');
// ..
if (message.channel.type === ChannelType.DM)

相关问题