14 votes

Vérifier si un message est un DM. (Discord.js et discord.js-commando)

Ok, je suis absolument déconcerté. J'ai essayé plusieurs façons de faire des tests contre ça, j'ai essayé ces méthodes :

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

J'ai tout essayé après avoir produit msg dans une console, et j'essaie de déchiffrer où je fais ça. Même la documentation n'est pas très claire sur l'endroit où vérifier cela. J'ai regardé de nombreuses "solutions" qui ne font que débiter des informations sur le sujet. <message>.channel.dm et bien... ça ne marche pas.

EDIT : Il semble donc que ce soit le cas <message>.isDM ... Cependant, dans mes commandes, cela ne fonctionne pas. Je peux trouver isDM dans le tableau lorsque je console.log(msg) il a produit true ce qui est attendu. Cependant, faire console.log(msg.isDM) s'imprime undefined ... ce qui semble... bizarre parce que c'est évidemment défini.

34voto

William Points 274

J'ai trouvé plusieurs façons de gérer ça :

<message>.channel.type === dm Cependant, cela ne comprend que le DM unique, mais permettra le groupe, etc etc.

message.guild === null vérifiera tous les DM (s'il s'agit d'une guilde de DM, elle sera toujours nulle).

7voto

sean Points 309

DMChannel est une classe, donc message.channel instanceof DMChannel devrait fonctionner.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X