Почему мой скрипт не позволяет моему боту добавлять реакции на сообщение о внедрении, которое он отправляет? (discord.js)

#javascript #discord #discord.js #bots

#javascript #Discord #discord.js #боты

Вопрос:


Я большой новичок в кодировании JavaScript, поэтому, если вы можете сделать это предварительно простым объяснением, это было бы ОЧЕНЬ ценно.

Итак, в основном я создал этот небольшой скрипт, чтобы отправить опрос на другой канал, используя аргументы, которые я заставил пользователя ввести, а затем отформатировать его и отправить как встроенное сообщение

Скрипт отправляет все это в отформатированном виде, однако проблема заключается в том, что последний шаг — не добавлять реакции — это проблема. (это пользовательские реакции, которые я уже определил, вы увидите ниже)

 if (args.length >= 1) {
    message.delete().then(() => {
      const pollEmbed = new Discord.RichEmbed()
      .setColor('#ABDFF2')
      .setTitle("** "   pollArgs[0]   " **")
      .setDescription(pollArgs[1])
      .addField('*Click on the reactions below to cast your opinion on this poll!*', 'If you would like to start your own poll: !help in <#726235250136580106>')
      .setTimestamp()
      .setThumbnail(message.author.displayAvatarURL)
      .setFooter(message.author.tag   " | Peace Keeper", message.author.displayAvatarURL)
      let yes = message.guild.emojis.find('name', "yes")
      let no = message.guild.emojis.find('name', "no")
      suggestionschannel.send(pollEmbed).then(message.react(yes, no));
  

На случай, если вам нужно увидеть полный код, вот он:

 const Discord = require("discord.js");
const client = new Discord.Client();

module.exports.run = async (bot, message, args) => {

  const suggestionschannel = message.guild.channels.find("name", "suggestions");
  let pollArgs = args.slice(0).join(" ").split('|');

  if (args.length >= 1) {
    message.delete().then(() => {
      const pollEmbed = new Discord.RichEmbed()
      .setColor('#ABDFF2')
      .setTitle("** "   pollArgs[0]   " **")
      .setDescription(pollArgs[1])
      .addField('*Click on the reactions below to cast your opinion on this poll!*', 'If you would like to start your own poll: !help in <#726235250136580106>')
      .setTimestamp()
      .setThumbnail(message.author.displayAvatarURL)
      .setFooter(message.author.tag   " | Peace Keeper", message.author.displayAvatarURL)
      let yes = message.guild.emojis.find('name', "yes")
      let no = message.guild.emojis.find('name', "no")
      suggestionschannel.send(pollEmbed).then(message.react(yes, no));
    })
  } else {
    message.delete().catch();
    const pollErrEmbed = new Discord.RichEmbed()
      .setColor('FF6961')
      .setTitle("**error!**")
      .addField("use the correct format: !polls-start <title> | <message>", "If you need help do: `!polls-help`.")
      .setTimestamp()
      .setFooter(message.author.tag   " | Peace Keeper", message.author.displayAvatarURL)
      message.reply(pollErrEmbed).then(msg => msg.delete(10000));
  }
}

module.exports.help = {
  name: "polls-start"
}
  

Ответ №1:

Ваш код кажется хорошим только с одной крошечной правкой!

Вместо

suggestionschannel.send(pollEmbed).then(message.react(yes, no));

Вам нужно будет использовать

 suggestionschannel.send(pollEmbed).then(message => {
message.react(yes);
message.react(no);
});
  

Также помните об обновлении Discord.js до версии 12, как только поддержка версии 11 закончится!