web-dev-qa-db-ja.com

メッセージがDMかどうかの確認。 (Discord.jsおよびdiscord.js-commando)

さて、私は絶対に困惑しています。これに対してテストする方法でいくつかの方法を試しましたが、これらの方法を試しました:

_if (msg.channel.isDM) ... Produced undefined
if (msg.isDM) ... Produced undefined
if (msg.channel.DMChannel.isDM) ... produced undefined
if (msg.DMChannel) ... produced undefined
if (msg.channel.DMChannel.dm) ... produced undefined
if (msg.channel.dm) ... produced undefined
_

私はコンソールでmsgを作成し、これをどこで行うのかを解読しようとした後、すべてを試しました。ドキュメントでさえ、どこでこれをチェックするかについて明確ではありません。私は_<message>.channel.dm_を噴出するだけの複数の「ソリューション」を見てきましたが、それはうまくいきません。

編集:つまり、_<message>.isDM_...のようですが、私のコマンドではこれは機能しません。 console.log(msg)が期待どおりのtrueを生成したときに、配列でisDMを見つけることができます。ただし、console.log(msg.isDM)を実行するとundefinedが出力されます...明らかに定義されているため、奇妙なことに...

4
William

これを処理する方法がいくつか見つかりました:

<message>.channel.type === dmただし、これには単一のDMのみが含まれますが、グループなどは許可されます。

message.guild === nullはすべてのDMをチェックします(DMの場合、ギルドは常にnullになります)。

10
William

DMChannelはクラスなので、message.channel instanceof DMChannelは動作するはずです。

2
sean