Calculadora de Permissões do Discord: Como Calcular um Bitfield
🔍 WiseChecker

Calculadora de Permissões do Discord: Como Calcular um Bitfield

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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

  1. Acesse o Portal do Desenvolvedor Discord
    Abra discord.com/developers/applications e faça login.
  2. Selecione seu aplicativo de bot
    Clique no aplicativo que deseja configurar. Se não tiver um, crie um novo aplicativo.
  3. Abra a seção Bot
    Na barra lateral esquerda, clique em Bot.
  4. 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.
  5. 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.
  6. 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.