Ao atribuir a permissão Mover Membros a um cargo no seu servidor do Discord, você pode notar que bots desconectam repentinamente de canais de voz ou não conseguem trocar de canal corretamente. Isso acontece porque a concessão da permissão também afeta como os bots interagem com os controles do canal de voz. A causa raiz é um conflito entre a configuração da permissão e a lógica interna do bot para lidar com atualizações de estado de voz. Este artigo explica por que a permissão Mover Membros interfere nas conexões dos bots e fornece correções passo a passo para resolver o problema sem remover a permissão completamente.
Principais conclusões: Corrigindo desconexões de voz de bots causadas pela permissão Mover Membros
- Configurações do Servidor > Cargos > Editar Cargo > Permissões: Conceda Mover Membros apenas para cargos humanos, não para cargos de bots.
- Configurações do Servidor > Integrações > Bots e Aplicativos > Nome do Bot: Substitua as permissões do bot para negar Mover Membros para aquele bot.
- Configurações do Canal de Voz > Permissões: Use substituições específicas do canal para restringir Mover Membros para bots em canais críticos.
Por que a permissão Mover Membros causa problemas de conexão do bot
A permissão Mover Membros do Discord permite que um usuário ou bot mova outros membros entre canais de voz. Quando um bot tem essa permissão, o Discord trata o bot como uma entidade privilegiada que pode iniciar movimentações. No entanto, muitos bots não são projetados para lidar corretamente com a permissão Mover Membros. Quando o bot tenta entrar ou trocar de canal de voz, o sistema de permissões do Discord pode interpretar a ação do bot como um comando de mover em vez de uma simples entrada, fazendo com que o bot desconecte ou não consiga conectar.
Esse problema é especialmente comum com bots de música, bots de moderação e bots personalizados que usam canais de voz. O problema não é um bug no Discord em si, mas um conflito lógico entre o código do bot e a hierarquia de permissões. Os bots normalmente usam as permissões Conectar e Falar para entrar em canais de voz. Quando Mover Membros está ativado, a API do Discord pode retornar um código de resposta diferente, levando o bot a interpretar a situação como um erro.
Como o sistema de permissões do Discord lida com movimentações
O Discord aplica permissões em uma ordem específica: permissões de cargo no nível do servidor, depois substituições específicas do canal. Se um cargo tem Mover Membros permitido no nível do servidor, todo membro com esse cargo — incluindo bots — pode mover outros. Quando um bot com Mover Membros tenta entrar em um canal, o Discord pode tratar a solicitação de entrada como uma solicitação de mover se o bot já estiver em outro canal de voz. Isso faz com que o bot saia do canal atual abruptamente em vez de realizar uma troca limpa.
Por que os bots reagem de forma diferente dos humanos
Usuários humanos podem ter a permissão Mover Membros sem problemas porque clicam manualmente no botão de mover. Os bots, por outro lado, usam chamadas de API que podem desencadear comportamentos não intencionais. Por exemplo, um bot que usa o evento voice_state_update pode detectar a permissão Mover Membros e tentar mover a si mesmo, levando a um loop de desconexão. O desenvolvedor do bot pode não ter codificado um manipulador para essa permissão, então o bot recorre a uma resposta de erro genérica.
Passos para corrigir problemas de conexão do bot causados pela permissão Mover Membros
Siga estes passos em ordem. Teste o bot após cada passo para ver se o problema foi resolvido.
- Identifique quais cargos têm a permissão Mover Membros
Abra o Discord e vá em Configurações do Servidor > Cargos. Clique em cada cargo que tem a permissão Mover Membros e anote quais estão atribuídos a bots. Os bots geralmente têm um cargo separado com o nome do bot ou um cargo genérico “Bots”. - Remova Mover Membros dos cargos de bots
Para cada cargo atribuído a um bot, clique no nome do cargo, vá para a aba Permissões e defina Mover Membros como o X vermelho (neutro). Não defina como o visto verde (permitido) ou o X vermelho (negado) a menos que você queira negar explicitamente. Clique em Salvar Alterações. - Substitua as permissões do bot via Integrações
Vá em Configurações do Servidor > Integrações > Bots e Aplicativos. Encontre o bot que está tendo problemas de conexão. Clique em Gerenciar e depois em Editar Permissões. Em Mover Membros, clique no X vermelho para negar explicitamente para este bot. Clique em Salvar. Essa substituição se aplica apenas a esse bot específico. - Crie um cargo de bot dedicado sem Mover Membros
Se você tem vários bots, crie um novo cargo chamado “Bot” e atribua-o a todos os bots. Nesse cargo, certifique-se de que Mover Membros esteja definido como neutro ou negado. Remova quaisquer outros cargos dos bots que concedam Mover Membros. Isso centraliza o gerenciamento de permissões. - Ajuste as permissões do canal de voz
Vá para o canal de voz onde o bot se conecta. Clique no ícone de engrenagem para abrir Configurações do Canal > Permissões. Clique no cargo do bot ou no próprio bot. Defina Mover Membros como o X vermelho (negado). Clique em Salvar Alterações. Isso restringe a permissão apenas para aquele canal específico. - Reinicie o bot e teste
Após fazer alterações de permissão, reinicie o bot. Use um comando como!joinou faça o bot entrar automaticamente em um canal de voz. Verifique se o bot permanece conectado e consegue trocar de canal sem desconectar.
Se o bot ainda desconectar após as alterações de permissão
Alguns bots armazenam em cache os dados de permissão. Se o problema persistir, force o bot a buscar novamente as permissões removendo e reconvidando o bot. Use o link de convite do bot do portal do desenvolvedor ou um comando como !invite. Após reconvidar, repita as substituições de permissão.
Se o Discord ainda tiver problemas após a correção principal
Bot desconecta apenas quando movido por outro usuário
Se um usuário humano com permissão Mover Membros move o bot, o bot pode desconectar porque interpreta a movimentação como uma desconexão forçada. Para corrigir, certifique-se de que o bot tenha a permissão Conectar permitida em todos os canais de voz. Além disso, verifique se o bot tem uma configuração para ignorar solicitações de mover. Alguns bots têm um comando stay ou lock que impede movimentações manuais.
Bot não consegue entrar em nenhum canal de voz após alteração de permissão
Isso geralmente significa que você negou acidentalmente as permissões Conectar ou Falar. Vá para o cargo do bot ou as substituições do canal e verifique se Conectar e Falar estão definidos como visto verde. Se estiverem negados, altere para permitido.
Vários bots são afetados simultaneamente
Se todos os bots no servidor começarem a desconectar depois que você conceder Mover Membros a um cargo, o problema provavelmente está no nível do servidor. Crie um novo cargo com apenas as permissões necessárias para os bots e remova todos os outros cargos dos bots. Certifique-se de que o novo cargo tenha Conectar, Falar e Ler Histórico de Mensagens permitidos, e Mover Membros negado.
Comparação de permissões: Permitir vs Negar Mover Membros para bots
| Item | Permitido | Negado |
|---|---|---|
| Comportamento do bot | O bot pode desconectar ao trocar de canal ou quando movido por outro usuário | O bot permanece conectado e troca de canal normalmente |
| Impacto no usuário humano | Usuários humanos com o cargo podem mover bots e outros membros | Usuários humanos não podem mover bots, mas ainda podem mover outros membros se o cargo permitir |
| Risco de conflito de permissão | Alto – as chamadas de API do bot podem acionar a lógica de mover incorretamente | Baixo – o bot usa apenas a permissão Conectar padrão |
| Recomendado para | Servidores onde você deseja que humanos possam mover bots manualmente | Servidores onde a estabilidade do bot é mais importante que a movimentação manual |
Agora você pode corrigir problemas de conexão de bots causados pela permissão Mover Membros. Comece removendo a permissão dos cargos de bots e usando substituições específicas do canal. Se o problema continuar, reconvide o bot e aplique a negação explícita via Integrações. Para controle avançado, crie um cargo de bot dedicado com Mover Membros negado e atribua-o a todos os bots. Essa abordagem evita desconexões enquanto preserva a permissão para usuários humanos.