Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

226
Visualizações
Discord Js no actualiza los permisos

Pensé que este código estaba funcionando, pero ahora parece haberse detenido. Intenté darle al bot más permisos (por ejemplo, administrador), pero aún no tuve suerte. No hay ningún error y realmente no puedo decir por qué esto no funcionará.

Básicamente, estoy tratando de leer los permisos en el rol de todos y asignarlos explícitamente a mi nuevo role_object. (En última instancia, para eliminar los permisos del rol de todos).

A los efectos de la prueba @everyone solo tiene permiso para expulsar miembros (0b10) y el nuevo rol no tiene permisos (0b0).

Espero ver:

 2n Permissions { bitfield: 0n } Permissions { bitfield: 2n }

Pero yo veo:

 2n Permissions { bitfield: 0n } Permissions { bitfield: 0n }

Cuando corro:

 const role_object = await interaction.guild.roles.fetch(verify_role); const normal_perms = interaction.guild.roles.everyone.permissions; console.log(normal_perms.bitfield); console.log(role_object.permissions); await role_object.permissions.add(normal_perms.bitfield); console.log(role_object.permissions);

¡Gracias por cualquier ayuda!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Bueno, en primer lugar, la propiedad Role#permissions es de solo lectura según los documentos . Llamar a permissions.add() en realidad no modifica el contenido del objeto de permisos en absoluto, como ha visto. Pero, de hecho, tampoco consulta la API para modificar los permisos del rol, por lo que incluso si estuviera modificando el contenido del objeto de permisos, aún no establecería los permisos del rol. Estás usando el método equivocado. Lo que estás buscando es Role#setPermissions() . Esto puede aceptar el campo de bits BigInt como argumento, lo que le permite configurar fácilmente los permisos del rol. Aquí hay un ejemplo, basado en el mismo código que proporcionó:

 const role_object = await interaction.guild.roles.fetch(verify_role); const normal_perms = interaction.guild.roles.everyone.permissions; console.log(normal_perms.bitfield); console.log(role_object.permissions); await role_object.setPermissions(normal_perms.bitfield); console.log(role_object.permissions);

Y con eso, tus expectativas se hacen realidad. Probé este código con mi propio bot y gremio, y este fue mi resultado (tenga en cuenta que mi rol de todos tiene permisos diferentes a los suyos, de ahí el valor diferente del campo de bits):

 969693056576n Permissions { bitfield: 0n } Permissions { bitfield: 969693056576n }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda