我正在使用Discord.js v12并尝试检查消息是否从DM发送,但它对我不起作用,我尝试过这种方法:
if (msg.channel.type === 'dm')
几个月前这还能正常工作,但现在不行了。当我尝试console.log(msg.channel.type)时,它只返回文本,当机器人得到DM时不返回DM,我找不到任何解决方案。
console.log(msg.channel.type)
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|这意味着,如果你想检查channel的type是否是DM,你需要使用:
dm
DM
GROUP_DM
text
GUILD_TEXT
GUILD_PUBLIC_THREAD
GUILD_PRIVATE_THREAD
voice
GUILD_VOICE
GUILD_STAGE_VOICE
category
news
GUILD_NEWS
GUILD_NEWS_THREAD
store
GUILD_STORE
unknown
UNKNOWN
channel
type
if (msg.channel.type === 'DM')
v14中也有一些变化。您可以use the ChannelType enums:
ChannelType
const { ChannelType, Client } = require('discord.js'); // .. if (message.channel.type === ChannelType.DM)
1条答案
按热度按时间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
|这意味着,如果你想检查
channel
的type
是否是DM,你需要使用:v14中也有一些变化。您可以use the
ChannelType
enums: