#discord.js #bots #embed
#discord.js #боты #Внедрить
Вопрос:
Есть бот, который случайным образом генерирует событие, используя сообщение о встраивании, и я хочу, чтобы мой бот обнаружил это встраивание и ответил. Приведенный ниже код работает для определения заголовка, описания встраивания, но я понятия не имею, как заставить его обнаруживать поле заголовка или описание поля.
client.on('message', (message) => {
if (message amp;amp; message.embeds) {
for (var i = 0; i < message.embeds.length; i ) {
if (
message.embeds[i].description amp;amp;
message.embeds[i].description.includes("arena event"))
{
message.channel.send('<@amp;721372445457645579> JOIN!')
}
}
}
});
Ответ №1:
Из MessageEmbed
класса у вас может быть fields
свойство —
message.embeds[i].fields[0].name
message.embeds[i].fields[0].value
Комментарии:
1. я изменил код, как вы сказали
client.on('message', (message) => { if (message amp;amp; message.embeds) { for (var i = 0; i < message.embeds.length; i ) { if ( message.embeds[i].fields[0].name amp;amp; message.embeds[i].fields[0].name.includes("arena event")) { message.channel.send('<@amp;721372445457645579> JOIN!') } } } });
, он работает, но через некоторое время выдает мне ошибку TypeError: невозможно прочитать свойство ‘name’ или undefined2. это означает, что там нет поля
3. Попробуйте это —
client.on('message', (message) => { if (message amp;amp; message.embeds) { for (var i = 0; i < message.embeds.length; i ) { if ( message.embeds[i].fields.length amp;amp; message.embeds[i].fields[0].name.includes("arena event")) { message.channel.send('<@amp;721372445457645579> JOIN!') } } } });