Intents do gateway do Discord: o que um bot pode ouvir
Intents do gateway são opções que um bot declara ao se conectar, dizendo ao Discord quais grupos de eventos ao vivo ele quer receber. Um bot que não pediu um intent simplesmente nunca ouve esses eventos, o que mantém os dados privados e o tráfego pequeno.
O que é o gateway
Um bot mantém uma conexão constante com o Discord, chamada gateway. Por ela, o Discord envia eventos conforme acontecem: uma mensagem foi enviada, um membro entrou, alguém começou a digitar, um canal de voz mudou. Sem limites, cada bot receberia todos os eventos de todos os servidores.
Os intents são o filtro. Na primeira mensagem que um bot envia após se conectar, ele lista os intents que quer como um único número. Então o Discord envia apenas os eventos correspondentes.
Os intents mais comuns
- Guilds: servidores, canais e cargos sendo criados ou alterados. Quase todo bot usa.
- Mensagens de guilds: mensagens nos canais do servidor. O texto dessas mensagens exige um intent privilegiado, veja abaixo.
- Estados de voz de guilds: quem entra ou sai dos canais de voz. Ferramentas de música e de voz precisam dele.
- Moderação de guilds: banimentos e entradas do registro de auditoria.
- Reações de mensagens de guilds: reações adicionadas ou removidas.
Três intents são especiais: presença, membros do servidor e conteúdo de mensagens. Eles são intents privilegiados, porque expõem mais dados pessoais e exigem aprovação extra para bots maiores.
Por que isso importa para donos de servidor
Quando um bot está online, mas ignora mensagens, entradas ou mudanças de voz, um intent faltando é um motivo comum. Ele também pode explicar uma desconexão com o código de erro 4014, quando um bot pede um intent privilegiado que não está ativado nas configurações. O artigo sobre erros de gateway 4004 e 4014 com bot offline explica o caso.
Intents também são um sinal de privacidade. Um bot que pede só o que seus recursos precisam é mais fácil de confiar.
Intents e Noxyr
O bot principal do Noxyr é gerenciado para você. Se você configurar um bot personalizado com sua própria aplicação, o Server Members Intent e o Message Content Intent precisam estar ativados no Discord Developer Portal, como explica o guia de configuração. Eles são necessários para recursos como mensagens de boas-vindas e comandos de prefixo. Se um bot personalizado estiver offline, comece pelo guia de bot offline.
Para mais detalhes, veja intents privilegiados do gateway explicados.
Como verificar um bot que você não criou
Se um bot que você instalou se comporta de forma estranha, pergunte ao desenvolvedor quais intents ele usa e por quê. Bons bots listam isso na documentação. Para o seu próprio bot, abra o Developer Portal, vá até a página Bot e compare as opções ativadas com o que o código pede. Uma divergência é a primeira coisa a corrigir.
Perguntas frequentes
O que acontece se um bot não pedir um intent?
O Discord não envia a ele os eventos correspondentes. O bot continua online, mas não consegue reagir a essas coisas.
Onde ativo os intents para o meu próprio bot?
No Discord Developer Portal: abra sua aplicação, vá em Bot e ative os intents privilegiados de que ele precisa.
Todos os intents são privilegiados?
Não. Só presença, membros do servidor e conteúdo de mensagens são privilegiados. Os demais podem ser usados livremente.