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

360
Visualizações
El bot asigna un rol al usuario, incluso si el usuario no posee el rol

Perdón por el título confuso, lo aclararé. Estoy tratando de hacer que el bot verifique si un usuario tiene un rol determinado en su inventario de quick.db y, si lo tiene, equipará ese rol. El problema que tengo es que incluso con el rol en el inventario, devuelve el error de que el rol no es propiedad. Tengo la sensación de que el problema es la if (db.has(message.author.id + '.hot rod red')) , ya que no estoy muy seguro de cómo formatear la verificación de un rol con quick.db. Perdón por el código desordenado, si alguien sabe cómo solucionarlo, hágamelo saber, ¡gracias!

 if (db.has(message.author.id + '.hot rod red')) { if (message.member.roles.cache.some(role => role.name === 'hot rod red')) { let embed = new Discord.MessageEmbed().setDescription('You already have this role equipped!'); return message.channel.send(embed); } else { await message.guild.members.cache.get(user.id).roles.add('733373020491481219'); let embed = new Discord.MessageEmbed().setDescription(`You now have the ${message.guild.roles.cache.get('733373020491481219')} role!`); message.channel.send(embed); user.roles.remove(user.roles.highest); } } else { let embed = new Discord.MessageEmbed().setDescription('You do not own this role!'); // ERROR HERE; GIVES ROLE EVEN WITHOUT OWNING return message.channel.send(embed); }
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Probablemente intente algo como let check = db.get(message.author.id+'.hot rod red') y verifique si es verdadero/falso, diría que use una cadena en lugar de booleano como puede usar if(check === 'false/true'){} . también puedes hacer

 if(!check || check === 'false'){ return let embed = new Discord.MessageEmbed().setDescription('You do not own this role!'); return message.channel.send(embed); }

Así que el código final sería:

 let check = await db.get(message.author.id + '.hot rod red'); let rejectEmbed = new Discord.MessageEmbed() .setDescription('You do not own this role!'); if(!check){ return message.channel.send(rejectEmbed) } if(check === 'true'){ if (message.member.roles.cache.some(role => role.name === 'hot rod red')) { let embed = new Discord.MessageEmbed().setDescription('You already have this role!'); return message.channel.send(embed); } else { await message.guild.members.cache.get(user.id).roles.add('733373020491481219'); let embed = new Discord.MessageEmbed().setDescription(`You now have the ${message.guild.roles.cache.get('733373020491481219')} role!`); message.channel.send(embed); user.roles.remove(user.roles.highest); // I'm unsure why this is here, this could be causing a potential error } }

Si hay más preguntas, por favor comenten!! Espero que esto haya ayudado.

over 4 years ago · Santiago Trujillo 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