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

305
Views
Esperando reacciones acepta el bot y el destinatario, no el autor del comando

Estoy tratando de crear un bot de discordia y estoy escribiendo el comando "casarse".

Ya está esencialmente listo, lo principal es que quiero que la confirmación de la boda no sea un mensaje de sí/no, sino un clic en la reacción.

Ahora todo funciona, al ingresar un comando, el usuario que hace clic y responde a la propuesta de matrimonio, pero no con el que escribió el comando, sino con el bot.

Es decir, me funciona ahora que el autor del mensaje (es decir, un bot) y el destinatario de la propuesta se casan. Y es necesario que el que escribió el comando y el usuario al que va dirigido se casen.

¿Cómo puedo arreglar esto?

Aquí está mi función awaitReactions:

 (`Are you ready to get married?`).then(message => { message.react('👍').then(() => message.react('👎')); message.awaitReactions((reaction, user) => user.id == userToMarry.id && (reaction.emoji.name == '👍' || reaction.emoji.name == '👎'), { max: 1, time: 60000, errors: ['time'] }) .then(collected => { const reaction = collected.first(); if (reaction.emoji.name === '👎') { return message.channel.send('I think **no**...')} if (reaction.emoji.name === '👍') { db.set(message.author.id, { user: message.author.id, partner: userToMarry.id }); db.set(userToMarry.id, { user: userToMarry.id, partner: message.author.id }); message.channel.send(`${message.author} and ${userToMarry} now married!!`) .catch(err => { message.channel.send( `Something went wrong while trying to marry this user. ${err}` ); return console.log(err)}); } }) .catch(collected => { message.reply('You reacted with neither a thumbs up, nor a thumbs down.'); }); });

Código de comando completo

 const { Command } = require('discord.js-commando'); const db = require("quick.db"); module.exports = class MarryCommand extends Command { constructor(client) { super(client, { name: 'marry', memberName: 'marry', group: 'test', description: 'Marry the mentioned user', guildOnly: true, args: [ { key: 'userToMarry', prompt: 'Please select the member you wish to marry.', type: 'member' } ] }); } run(message, { userToMarry }) { const exists = db.get(`${message.author.id}.user`); const married = db.get(`${userToMarry.id}.user`); if (!userToMarry) { return message.channel.send('Please try again with a valid user.')} if (exists == message.author.id) { return message.channel.send('You are already married!')} if (married == userToMarry.id) { return message.channel.send('This user is already married!')} if (userToMarry.id == message.author.id) { return message.channel.send('You cannot marry yourself!'); } if (exists != message.author.id && married != userToMarry.id) { message.channel.send(`**Important announcement!** ${message.author} makes a marriage proposal ${userToMarry} Are you ready to get married?`).then(message => { message.react('👍').then(() => message.react('👎')); message.awaitReactions((reaction, user) => user.id == userToMarry.id && (reaction.emoji.name == '👍' || reaction.emoji.name == '👎'), { max: 1, time: 60000, errors: ['time'] }) .then(collected => { const reaction = collected.first(); if (reaction.emoji.name === '👎') { return message.channel.send('I think **no**...')} if (reaction.emoji.name === '👍') { db.set(message.author.id, { user: message.author.id, partner: userToMarry.id }); db.set(userToMarry.id, { user: userToMarry.id, partner: message.author.id }); message.channel.send(`${message.author} and ${userToMarry} now married!!`) .catch(err => { message.channel.send( `Something went wrong while trying to marry this user. ${err}` ); return console.log(err)}); } }) .catch(collected => { message.reply('You reacted with neither a thumbs up, nor a thumbs down.'); }); }); }}};
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Prueba así

 .then(message => { message.react('👍').then(() => message.react('👎')); message.awaitReactions((reaction, user) => user.id == userToMarry.id && (reaction.emoji.name == '👍' || reaction.emoji.name == '👎'), { max: 1, time: 60000, errors: ['time'] }) .then(collected => { const reaction = collected.first(); if (reaction.emoji.name === '👎') { return message.channel.send('I think **no**...')} if (reaction.emoji.name === '👍') { db.set(message.author.id, { user: message.author.id, partner: userToMarry.id }); db.set(userToMarry.id, { user: userToMarry.id, partner: message.author.id }); message.channel.send(`${message.author} and ${userToMarry} now married!!`) ... }); });
over 4 years ago · Santiago Trujillo 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!