Djs12로 채널 숨기기

Oct 26 2020

텍스트 채널 을 잠 가야하므로 @everyone은 볼 수 없지만 message.author는 볼 수 있습니다. 이 코드가 있지만 모든 사람이 채널을 볼 수 있습니다 (채널 속성에서 모든 사람이 메시지를 보내거나 TTS 메시지를 보낼 수있는 권한이 없지만 그 위에 모든 것이 [/]).

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

답변

1 Lioness100 Oct 26 2020 at 22:44

PermissionOverwrites타입 정의는 요구 Snowflake(이 경우, 롤 또는 사용자 ID)를. 그러나 RoleManager.everyone반환합니다 Role. 이 문제를 해결하는 방법에는 두 가지가 있습니다.

  • id역할 의 속성 만 사용하면 됩니다.
{
 id: message.guild.roles.everyone.id,
 deny: ['VIEW_CHANNEL', 'SEND_MESSAGES'],
},
  • 사용 message.guild.id. 재미있는 사실은 @everyone 역할이 속한 길드와 동일한 ID를 공유한다는 것입니다.
{
 id: message.guild.id,
 deny: ['VIEW_CHANNEL', 'SEND_MESSAGES'],
},