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

376
Visualizações
TypeError: role.setPermissions no es una función aunque TypeScript dice que lo es

Estaba creando un comando que recorre todos los roles en un servidor y elimina/agrega un permiso seleccionado (si es posible). Al pasar el cursor sobre él, se muestra la descripción de la función.

 async execute(client, msg, args, cooldowns, guildForPre, prefix) { if(msg.member.permissions.has("MANAGE_ROLES")) { let roles = (await msg.guild.roles.fetch()).cache; let highPos = getRoleByMention(args[1], msg.guild)?.position || msg.guild.roles.highest.position let lowPos = getRoleByMention(args[2], msg.guild)?.position || msg.guild.roles.everyone.position roles = roles.filter(r => r.permissions.has(args[0])) roles = roles.filter(r => r.position <= highPos && r.position >= lowPos) let replaced = '' for await (const [, role] of roles) { if(role.position >= msg.guild.me.roles.highest.position || role.position >= msg.member.roles.highest.position) continue; await role.setPermissions(role.permissions.remove(args[0])) (replaced.length) ? replaced += `, ${role.name}` : replaced += `${role.name}` } msg.channel.send("Replaced roles: " + replaced) } }

función getRoleByMention :

 function getRoleByMention(mention, guild) { const id = mention.slice(3, mention.length-1) return guild.roles.cache.get(id) }

Los argumentos de mi controlador de comandos se ingresaron correctamente y el comando ingresado es el siguiente:

m.removeRolePerm MANAGE_MESSAGES @Dyno @Dyno

¿Es porque son el mismo papel? Los documentos dicen que es una función válida. Estoy usando v12.

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

0

El problema es en realidad la declaración después. Esto se debe a la falta de punto y coma. Agregar un punto y coma debería hacer que funcione. Cambiarlo a esto eliminará el error y hará que funcione también

 await role.setPermissions(role.permissions.remove(args[0])) if (replaced.length) replaced += `, ${role.name}` else replaced += `${role.name}`
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