Je ne suis pas sur d'avoir compris la question mais si tu veux bloquer les Dm entre les membres du serveur, je ne pense pas que cela soit possible, car les Dm sont privés donc n'ont aucun relation avec le serveur, en plus je n'es rien de telle sur la doc de discord.js
- Edité par Binary_Serox 1 janvier 2020 à 18:10:07
Toujours chercher par soi même avant de poser une question (selon moi)
Pour simplement empêcher le bot d'effectuer les commandes dans une discutions privée il suffit de vérifier le type de salons.
Par exemple :
if(message.channel.type==="dm"||message.channel.type==="group") {
//alors je fait rien
return false;
}
Ainsi, dans une discutions privée ou un groupe de discutions privée en cas de sollicitation le bot ne répond pas, tout en continuant de répondre sur les salons de discutions.
puis pour chaque GuildChannelManager tu as une propriété cache qui te renvoi une Collection<SnowFlake, GuildChannel> qui et la collection (liste) des GuildChannel de cette Guild tu peut donc les parcourir et filtré de cette façon:
// client étant ton instance fournit par l'authentification
// voir: <https://discord.js.org/#/docs/main/master/class/Client>
// guildManager voir: <https://discord.js.org/#/docs/main/master/class/GuildManager>
const guildManager = client.guilds;
// lit la liste des guilds (server) disponible par ton bot
// Collection<SnowFlake, Guild>
// voir: <https://discord.js.org/#/docs/main/master/class/GuildManager?scrollTo=cache>
const guildsList = guildManager.cache;
// pour chaque guild (server)
// voir: <https://discord.js.org/#/docs/collection/master/class/Collection?scrollTo=array>
guildsList
.array()
.forEach( guild => {
// guildChannelManager voir: <https://discord.js.org/#/docs/main/master/class/GuildChannelManager>
const guildChannelManager = guild.channels;
// lit la liste des channel sur chaque guild (server)
// Collection<SnowFlake, GuildChannel>
// voir: <https://discord.js.org/#/docs/main/master/class/GuildChannelManager?scrollTo=cache>
const channels = guildChannelManager.cache;
// pour chaque channel de chaque guild
channels
.array()
.forEach( channel => {
// ici tu peut filtré les channels
// sur le quelle tu veut
// "bloqué l'envoi" d'un message
// de ton bot où des autres utilisateur
// le plus simple et de les filtré par id (SnowFlake) où par nom
// plusieurs channel peuvent avoir le même nom temps que tu peut filtre par id
// ...
} );
} );
je pose ma question ici car elle est assez similaire,
je souhaiterais savoir pourquoi les channel textuel de mon serveur sont-ils de type "dm" et lorsque pourquoi lorsque je souhaite exclure un type de channel par le biais de message.channel.type === " " Visual Studio Code dans mon cas ne propose pas "group" par exemple il me propose uniquement "dm", "text", "news". Si vous avez ne serait-ce 1 réponse a l'une des question merci de vous manifesté soi ici soit sur mon discord {skycel#1267}. Merci d'avance.
Anti DM [Discord.JS]
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Toujours chercher par soi même avant de poser une question (selon moi)
!
suggestion de présentation.