O Discord usa um bitfield, um único número grande, para armazenar todas as permissões de um cargo ou usuário em um servidor. Se você é desenvolvedor de bot ou administrador de servidor que trabalha com a API do Discord, precisa saber como calcular esse valor de bitfield manualmente ou usando uma calculadora. O bitfield é um inteiro de 53 bits onde cada bit representa uma permissão específica. Este artigo explica como o bitfield funciona, como calculá-lo manualmente e como usar a calculadora oficial de permissões do Discord para verificar seus valores.
Principais Conclusões: Como Calcular um Bitfield de Permissões do Discord
- Método de deslocamento e OR: Desloque cada valor de permissão pela sua posição de bit e combine-os usando OR bit a bit
- Portal do Desenvolvedor Discord > Bot > Calculadora de Permissões: Ferramenta visual para selecionar permissões e obter o inteiro do bitfield final
- Campo da API “permissions”: O bitfield é passado como string para evitar problemas de precisão de inteiros do JavaScript
Como Funciona o Bitfield de Permissões do Discord
Cada permissão no Discord tem uma posição de bit fixa começando em 0. Por exemplo, a permissão CREATE_INSTANT_INVITE é o bit 0, KICK_MEMBERS é o bit 1, e assim por diante. O bitfield é um inteiro de 53 bits porque o Discord usa JavaScript e o inteiro seguro máximo em JavaScript é 2^53 – 1. Ao combinar várias permissões, você define os bits na posição de cada permissão como 1. Todos os outros bits permanecem 0. O número final é a soma de todos os valores 2^posição para cada permissão ativada.
Posições dos Bits de Permissão
O Discord define as permissões em uma ordem específica. As primeiras posições são:
- Bit 0: CREATE_INSTANT_INVITE (valor 1)
- Bit 1: KICK_MEMBERS (valor 2)
- Bit 2: BAN_MEMBERS (valor 4)
- Bit 3: ADMINISTRATOR (valor 8)
- Bit 4: MANAGE_CHANNELS (valor 16)
- Bit 5: MANAGE_GUILD (valor 32)
- Bit 6: ADD_REACTIONS (valor 64)
- Bit 7: VIEW_AUDIT_LOG (valor 128)
- Bit 8: PRIORITY_SPEAKER (valor 256)
- Bit 9: STREAM (valor 512)
- Bit 10: VIEW_CHANNEL (valor 1024)
- Bit 11: SEND_MESSAGES (valor 2048)
- Bit 12: SEND_TTS_MESSAGES (valor 4096)
- Bit 13: MANAGE_MESSAGES (valor 8192)
- Bit 14: EMBED_LINKS (valor 16384)
- Bit 15: ATTACH_FILES (valor 32768)
- Bit 16: READ_MESSAGE_HISTORY (valor 65536)
- Bit 17: MENTION_EVERYONE (valor 131072)
- Bit 18: USE_EXTERNAL_EMOJIS (valor 262144)
- Bit 19: VIEW_GUILD_INSIGHTS (valor 524288)
- Bit 20: CONNECT (valor 1048576)
- Bit 21: SPEAK (valor 2097152)
- Bit 22: MUTE_MEMBERS (valor 4194304)
- Bit 23: DEAFEN_MEMBERS (valor 8388608)
- Bit 24: MOVE_MEMBERS (valor 16777216)
- Bit 25: USE_VAD (valor 33554432)
- Bit 26: CHANGE_NICKNAME (valor 67108864)
- Bit 27: MANAGE_NICKNAMES (valor 134217728)
- Bit 28: MANAGE_ROLES (valor 268435456)
- Bit 29: MANAGE_WEBHOOKS (valor 536870912)
- Bit 30: MANAGE_EMOJIS_AND_STICKERS (valor 1073741824)
- Bit 31: USE_APPLICATION_COMMANDS (valor 2147483648)
- Bit 32: REQUEST_TO_SPEAK (valor 4294967296)
- Bit 33: MANAGE_EVENTS (valor 8589934592)
- Bit 34: MANAGE_THREADS (valor 17179869184)
- Bit 35: CREATE_PUBLIC_THREADS (valor 34359738368)
- Bit 36: CREATE_PRIVATE_THREADS (valor 68719476736)
- Bit 37: USE_EXTERNAL_STICKERS (valor 137438953472)
- Bit 38: SEND_MESSAGES_IN_THREADS (valor 274877906944)
- Bit 39: USE_EMBEDDED_ACTIVITIES (valor 549755813888)
- Bit 40: MODERATE_MEMBERS (valor 1099511627776)
Passos para Calcular o Valor do Bitfield
Você pode calcular o bitfield manualmente usando o método de deslocamento e adição, ou usar a calculadora de permissões integrada do Discord. Ambos os métodos produzem o mesmo resultado.
Método 1: Cálculo Manual Usando OR Bit a Bit
- Liste as permissões que deseja ativar
Anote cada nome de permissão exatamente como aparece na documentação da API do Discord. Por exemplo: KICK_MEMBERS, BAN_MEMBERS, MANAGE_CHANNELS. - Encontre a posição do bit para cada permissão
Use a lista acima para encontrar a posição do bit. KICK_MEMBERS é o bit 1, BAN_MEMBERS é o bit 2, MANAGE_CHANNELS é o bit 4. - Calcule 2 elevado à posição do bit para cada permissão
Para o bit 1: 2^1 = 2. Para o bit 2: 2^2 = 4. Para o bit 4: 2^4 = 16. - Some todos os valores usando OR bit a bit
Em programação:bitfield = (1 << 1) | (1 << 2) | (1 << 4)que é igual a 2 + 4 + 16 = 22. O valor do bitfield é 22. - Converta para string para a API
O Discord espera o campo permissions como string para evitar perda de precisão. Envie "22" na sua chamada de API.
Método 2: Usando a Calculadora de Permissões do Discord
- Acesse o Portal do Desenvolvedor Discord
Abra discord.com/developers/applications e faça login. - Selecione seu aplicativo de bot
Clique no aplicativo que deseja configurar. Se não tiver um, crie um novo aplicativo. - Abra a seção Bot
Na barra lateral esquerda, clique em Bot. - Role até a Calculadora de Permissões
Abaixo da seção do token do bot, você verá uma lista de caixas de seleção rotuladas com cada permissão. - Marque as permissões necessárias
Clique na caixa de seleção ao lado de cada permissão. Conforme você seleciona, a calculadora mostra o valor inteiro do bitfield na caixa rotulada Permissions Integer. - Copie o valor inteiro
Clique no botão Copy ao lado do valor inteiro. Cole-o na URL de convite do seu bot ou na chamada de API.
Erros Comuns ao Calcular um Bitfield de Permissões
Usar a Posição de Bit Errada
O Discord ocasionalmente adiciona novas permissões e altera as posições dos bits. Consulte sempre a documentação mais recente da API do Discord para obter a lista atual de posições de bits. Usar uma lista desatualizada resulta em um bitfield incorreto.
Limite de Precisão de Inteiros do JavaScript
O JavaScript pode representar com segurança inteiros até 2^53 - 1, que é cerca de 9 quatrilhões. O bitfield do Discord usa até o bit 40, que é 2^40 = 1.099.511.627.776. Isso está dentro do intervalo seguro. No entanto, se você combinar todas as permissões, a soma pode exceder o limite de inteiro seguro. Sempre passe o bitfield como string nas requisições da API para evitar erros de arredondamento.
Esquecer a Substituição da Permissão ADMINISTRATOR
Ao definir a permissão ADMINISTRATOR (bit 3), ela concede automaticamente todas as outras permissões. Você não precisa adicionar outras permissões ao bitfield. Se incluir ADMINISTRATOR e outras permissões, o bitfield ainda funciona, mas desperdiça espaço. O Discord ignora bits extras quando ADMINISTRATOR está definido.
Cálculo do Bitfield de Permissões: Manual vs Calculadora
| Item | Cálculo Manual | Calculadora de Permissões do Discord |
|---|---|---|
| Método | OR bit a bit dos valores 2^posição | Seleção por caixas de seleção com soma automática |
| Precisão | Depende das posições de bit corretas | Sempre usa as posições atuais da API do Discord |
| Tempo necessário | 5-10 minutos para conjuntos complexos | 30 segundos |
| Propenso a erros | Alto para muitas permissões | Baixo |
| Melhor para | Aprender como bitfields funcionam | Desenvolvimento de bots em produção |
Agora você sabe como calcular um bitfield de permissões do Discord manualmente e usando a calculadora oficial. Se você está construindo um bot, sempre use a calculadora para evitar erros. Para um entendimento mais profundo, pratique calculando bitfields para alguns conjuntos de permissões de teste e verifique os resultados com a calculadora. O sistema de bitfield é eficiente, mas requer posições de bit precisas, então verifique seus valores antes de implantar seu bot.