Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

225
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!