#javascript #node.js #discord.js #bots
#javascript #node.js #discord.js #боты
Вопрос:
Я пытаюсь вызвать реакцию emoji для моего бота discord, все в порядке, пока я не нажму «❌» emoji, но когда я нажимаю «❌» emoji, я получаю эту ошибку: TypeError: Cannot read property 'emoji' of undefined
и ошибка показывает эту строку : if (reaction.emoji.name === '❌')
const Discord = require("discord.js");
const ayarlar = require("../ayarlar.json");
module.exports.run = async (bot, message, args) => {
let gonderenKisi = message.author;
let mesaj = args.slice(0).join(" ");
if(!mesaj) return message.reply("**➤ Mesaj Atabilmek İçin Bir Mesaj Yazmalısın!**").then(message => {
message.delete({ timeout: 5000 });
});
const filter = (reaction, user) => {
return ['❌'].includes(reaction.emoji.name) amp;amp; user.id === message.author.id;
};
const sEmbed = new Discord.MessageEmbed()
.setDescription(`➤ ` mesaj)
.setAuthor(`➤ Yeni Bir Fotoğraf Paylaşıldı !`)
.setThumbnail(message.guild.iconURL())
.setColor('RANDOM')
.setFooter(`➤ Fotoğraf Atan: ${message.author.username}`, message.author.displayAvatarURL())
.setTimestamp(message.createdAt)
message.delete();
message.channel.send(sEmbed).then(e =>
e.react("❤️")).then(e =>
e.message.react("❌")).catch(e => {
console.error('Emojiler De Sorun Var.');
});
message.awaitReactions(filter, { max: 1 })
.then(collected => {
const reaction = collected.first();
if (reaction.emoji.name === '❌') {
collected.on('collect', () => {
message.delete();
var s2Embed = new Discord.MessageEmbed()
.setTitle(`${message.author.username} Mesajın Silindi.`)
.setColor('RANDOM')
.setDescription(`Mesajı Silen : ${message.author.username}`, message.author.displayAvatarURL())
message.channel.send(s2Embed)
});
}
}).catch(e => {
console.error(e)
})
};
module.exports.config = {
name: 'instagram',
aliases: ['i']
}
Комментарии:
1. Это ` собрано. first()` возвращает значение undefined для вас. Вам нужно сначала проверить, что он возвращает желаемый объект, а затем
reaction
будет иметьemoji
свойство
Ответ №1:
Фактической причиной ошибки является эта строка:
const reaction = collected.first();
Здесь значение reaction не определено, поэтому вы получаете ошибку.Вы пытаетесь прочитать свойство emoji с неопределенным значением.Вы можете изменить условие на:
if (reaction amp;amp; reaction.emoji amp;amp; reaction.emoji.name){
////logic
}
Также я вижу, что в версии discord есть какая-то проблема, которая, вероятно, дает вам неопределенное значение. Проверьте этот поток, это может вам помочь.