Corrigir substituição de permissão de canal do Discord que não se aplica a bots
🔍 WiseChecker

Corrigir substituição de permissão de canal do Discord que não se aplica a bots

Ao definir uma substituição de permissão de canal para um bot, ele pode continuar sem conseguir ler mensagens, enviar mensagens ou acessar canais de voz. Isso acontece mesmo que a substituição apareça corretamente na lista de permissões do canal. A causa raiz geralmente é um conflito entre várias fontes de permissão, como permissões baseadas em cargos, permissões do servidor ou a ordem em que o Discord avalia as substituições. Este artigo explica por que as substituições de permissão falham para bots e fornece correções passo a passo para garantir que seu bot receba exatamente as permissões atribuídas.

Principais conclusões: corrigir substituições de permissão de bot no Discord

  • Permissões do canal > Permissões avançadas > Verificar permissões negadas: Uma única marca de verificação negada substitui todas as permissões permitidas de outras fontes.
  • Configurações do servidor > Cargos > Hierarquia do cargo do bot: Coloque o cargo do bot acima do cargo @everyone para evitar que negações baseadas em cargos bloqueiem a substituição.
  • Permissões do canal > Adicionar substituição de membro para o bot: Atribuir uma substituição específica para o bot como membro contorna conflitos de permissão baseados em cargos.

ADVERTISEMENT

Por que as substituições de permissão de canal falham para bots

O Discord avalia permissões usando uma hierarquia de fontes. Para qualquer ação, a permissão final é determinada verificando essas fontes em ordem: permissões de cargo do servidor, substituições de cargo específicas do canal e substituições específicas de membro. A fonte mais específica vence, mas apenas se ela permitir ou negar explicitamente a permissão. Se uma fonte estiver definida como neutra, o Discord recorre à próxima fonte na cadeia.

Um bot geralmente tem apenas um cargo: seu cargo de bot. Esse cargo herda permissões do cargo @everyone e de quaisquer outros cargos atribuídos ao bot. Quando você cria uma substituição de permissão de canal para o cargo do bot, está adicionando uma substituição de cargo específica do canal. No entanto, se qualquer outro cargo atribuído ao bot tiver uma permissão Negada para a mesma ação naquele canal, a permissão Negada substitui sua substituição Permitida. Da mesma forma, se o cargo @everyone tiver uma permissão Negada no canal, essa negação se aplica a todos os membros, incluindo bots, a menos que o cargo do bot ou uma substituição de membro permita explicitamente a ação.

Outra causa comum é a ordem da hierarquia de cargos. O Discord processa substituições baseadas em cargos na ordem da posição do cargo. Se o cargo do bot for inferior a outro cargo que nega uma permissão, a negação do cargo superior tem precedência. Por fim, se o bot foi convidado com a permissão Administrador, essa permissão substitui todas as configurações específicas do canal, incluindo suas substituições.

Passos para corrigir substituição de permissão que não se aplica a um bot

Siga estes passos em ordem. Após cada passo, teste o bot tentando a ação que estava bloqueada anteriormente.

  1. Verifique permissões negadas no cargo do bot no canal
    Abra o canal onde a substituição não está funcionando. Clique no ícone de engrenagem para abrir as Configurações do canal. Vá em Permissões. Encontre o cargo do bot na lista. Clique no cargo para ver suas substituições. Procure por marcas de verificação vermelhas (Negado) ao lado das permissões que você deseja que o bot tenha. Se vir uma marca de verificação Negada, clique nela para mudar para verde (Permitido) ou um traço cinza (neutro). Salve as alterações.
  2. Verifique as permissões do cargo @everyone no canal
    Na mesma lista de Permissões do canal, clique no cargo @everyone. Certifique-se de que nenhuma permissão crítica esteja definida como Negada. Por exemplo, se @everyone tiver Negado para Ler Mensagens, o bot não poderá ler o canal a menos que seu próprio cargo ou uma substituição de membro permita explicitamente. Altere as permissões Negadas para neutro (traço cinza) ou Permitido conforme necessário. Salve as alterações.
  3. Verifique outros cargos atribuídos ao bot
    Vá em Configurações do servidor > Cargos. Observe que um bot pode ter apenas um cargo: seu cargo de bot. No entanto, se você adicionou manualmente outros cargos ao usuário do bot, esses cargos também contribuem com permissões. Em Configurações do servidor > Cargos, clique em cada cargo adicional atribuído ao bot. Role até o canal em questão e verifique se o cargo não tem uma permissão Negada para a ação necessária. Remova a negação ou remova o cargo extra do bot.
  4. Ajuste a posição do cargo do bot
    Em Configurações do servidor > Cargos, arraste o cargo do bot para cima do cargo @everyone. Substituições baseadas em cargos de cargos superiores têm precedência sobre cargos inferiores. Colocar o cargo do bot no topo garante que suas substituições Permitidas não sejam bloqueadas por uma negação do @everyone ou de outros cargos abaixo dele. Salve a ordem dos cargos.
  5. Crie uma substituição de membro para o bot
    Se as substituições baseadas em cargos ainda não funcionarem, crie uma substituição específica para o membro. No canal, vá em Permissões > Adicionar membros ou cargos. Digite o nome de usuário do bot e selecione-o. Defina as permissões desejadas como Permitido. Substituições de membro são a fonte de permissão mais específica no Discord. Elas substituem todas as permissões baseadas em cargos, incluindo substituições de cargo. Salve as alterações.
  6. Revogue a permissão de Administrador do bot
    Se o bot foi convidado com a permissão Administrador, ele ignora todas as substituições de permissão de canal. Para verificar isso, vá em Configurações do servidor > Cargos > cargo do bot. Procure pela permissão Administrador. Se estiver ativada, desative-a. Salve as alterações. Em seguida, teste o bot novamente. Observe que alguns bots precisam da permissão Administrador para funcionar completamente. Nesse caso, você não pode usar substituições de canal para restringir o bot; deve gerenciar o acesso dele no nível do servidor.

ADVERTISEMENT

Se o Discord ainda tiver problemas após a correção principal

Bot aparece offline ou não responde após alteração de permissão

Após alterar permissões, alguns bots precisam ser reiniciados para reler o novo estado de permissão. Expulse o bot do servidor e reconvide-o usando um novo link de convite com as permissões corretas. Alternativamente, se o bot tiver um painel de controle, use-o para reconectar o bot ao servidor.

Substituição de permissão funciona para humanos, mas não para bots

Isso acontece quando o cargo do bot não está selecionado na substituição do canal. Ao adicionar uma substituição para um cargo, você deve escolher especificamente o cargo do bot, não um cargo humano. Além disso, certifique-se de que o cargo do bot seja o único cargo atribuído ao bot. Se o bot tiver vários cargos, o cálculo de permissão se torna complexo e pode produzir resultados inesperados.

Bot pode ler o canal, mas não consegue enviar mensagens

Verifique a permissão Enviar Mensagens na substituição do canal para o cargo do bot. Verifique também o cargo @everyone. Se @everyone tiver Negado para Enviar Mensagens, o bot não poderá enviar mensagens a menos que seu cargo ou uma substituição de membro permita explicitamente. Além disso, verifique se o canal não está no Modo lento, o que pode atrasar o envio de mensagens.

Tipos de substituição de permissão: substituição de cargo vs substituição de membro vs padrão do servidor

Item Substituição de cargo Substituição de membro Padrão do servidor
Escopo Aplica-se a todos os membros com aquele cargo no canal Aplica-se apenas a um membro específico no canal Aplica-se a todos os membros em todos os canais, a menos que substituído
Prioridade Segunda maior (após substituição de membro) Mais alta Mais baixa
Local de configuração Permissões do canal > Adicionar membros ou cargos > selecionar cargo Permissões do canal > Adicionar membros ou cargos > selecionar membro Configurações do servidor > Cargos > selecionar cargo > Permissões
Melhor para bots Funciona se o bot tiver apenas um cargo e o cargo estiver acima de @everyone Funciona independentemente de outros conflitos de cargo Não recomendado para acesso específico de bot

Agora você sabe como diagnosticar e corrigir substituições de permissão de canal que não se aplicam a bots. Comece verificando permissões negadas no cargo do bot e no cargo @everyone no canal. Em seguida, ajuste a hierarquia de cargos para que o cargo do bot fique acima de @everyone. Se o problema persistir, crie uma substituição específica de membro para o bot. Para controle avançado, considere usar um painel de controle do bot que possa gerenciar suas próprias permissões através do sistema OAuth2 do Discord, o que contorna problemas manuais de permissão do servidor.

ADVERTISEMENT