#javascript #node.js #discord #discord.js
#javascript #node.js #Discord #discord.js
Вопрос:
С помощью моего бота я отправляю встроенное сообщение и хочу иметь возможность получать множество свойств, но я называю это неправильно. Когда я делаю «console.log» после отправки, у меня есть все свойства, но я не могу получить к ним доступ другими методами.
Я думаю, что я застрял в вызове «message.channel.XXXXX» и не могу связаться с «MessageEmbed».длина» и т.д… Как я могу это сделать, если моим событием является «message», и все следует за классом «message.XXXX»?
client.on('message', (message) => {
if (message.content === '!sendembed') {
const exampleEmbed = {
color: 16711600,
title: '__TITLE EMBED MESSAGE__',
// a lot of fields...
};
message.channel
.send({ embed: exampleEmbed })
.then(console.log(`lenght:${message.embeds.MessageEmbed.length}`));
}
});
И, конечно, у меня ошибка:
TypeError: Cannot read property 'length' of undefined
Ответ №1:
MessageEmbed
не является свойством message.embeds
. Вместо этого используйте message.embeds[0]
, поскольку message.embeds
возвращает array
количество вложений.
Кроме того, length
не является свойством embed
, так что это вернет ошибку.
Поняв, что я неправильно понял вопрос, вот мое новое решение. message.channel.send()
возвращает Promise
отправленное сообщение, которое можно использовать при обратном вызове.
message.channel.send({ embed: exampleEmbed }).then((msg) => {
// gain full access to Message object
console.log(msg.channel);
console.log(msg.author);
// get access to MessageEmbed object
console.log(msg.embeds[0])
console.log(msg.embeds[0].title.length);
};
Комментарии:
1. Я знаю, но как я могу получить доступ к свойствам вставки сообщений, таким как . длина и другое после этой команды :
message.channel.send({ embed: exampleEmbed });
Я хочу иметь доступ к свойствам этого: discord.js.org/#/docs/main/stable/class/MessageEmbed2. Ах, извините, я неправильно понял. Я отредактировал свой ответ с помощью более подходящего решения.