Escondendo canal com Djs12

Oct 26 2020

Eu preciso bloquear um canal de texto , então @todos não podem ver isso, mas message.author pode. Eu tenho esse código, mas todos podem ver o canal (e nas propriedades do canal todos não têm permissão para enviar mensagens ou enviar mensagens TTS, mas acima disso tudo é [/])

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'],
                        },
                    ],
                })

Respostas

1 Lioness100 Oct 26 2020 at 22:44

O PermissionOverwritestypedef requer um Snowflake(neste caso, uma função ou ID de usuário). No entanto, RoleManager.everyoneretorna a Role. Existem duas maneiras de resolver esse problema:

  • Basta usar a idpropriedade da função
{
 id: message.guild.roles.everyone.id,
 deny: ['VIEW_CHANNEL', 'SEND_MESSAGES'],
},
  • Use message.guild.id. Curiosidade, a função @everyone compartilha o mesmo ID da guilda em que está
{
 id: message.guild.id,
 deny: ['VIEW_CHANNEL', 'SEND_MESSAGES'],
},