#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 закончится!