2 votes

Masquer la chaîne avec Djs12

J'ai besoin de verrouiller un canal de texte, afin que @everyone ne puisse pas le voir, mais message.author le puisse. J'ai ce code, mais tout le monde peut voir le canal (et dans les propriétés du canal, tout le monde n'a pas la permission d'envoyer des messages ou des messages TTS, mais au-dessus de tout c'est [/])

message.guild.channels.create(desc, {
                    type: 'text',
                    permissionOverwrites: [
                        {
                            id: message.guild.roles.everyone,
                            deny: ['VIEW_CHANNEL', 'SEND_MESSAGES'],
                        },
                        {
                            id: message.author.id,
                            allow: ['VIEW_CHANNEL'],
                        },
                    ],
                })

1voto

Lioness100 Points 7258

La typedef PermissionOverwrites nécessite un Snowflake (dans ce cas, un rôle ou un ID utilisateur). Cependant, RoleManager.everyone renvoie un Role. Il existe deux façons de résoudre ce problème:

  • Utiliser simplement la propriété id du rôle

    { id: message.guild.roles.everyone.id, deny: ['VIEW_CHANNEL', 'SEND_MESSAGES'], },

  • Utiliser message.guild.id. Fun fact, le rôle @everyone partage le même ID que la guilde dans laquelle il se trouve

    { id: message.guild.id, deny: ['VIEW_CHANNEL', 'SEND_MESSAGES'], },

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