В этой статье, мы с вами поговорим о embed сообщениях, а также сделаем первую команду, которая выводит embed сообщение!
И так начнём, что же такое embed сообщения, или же просто embed?
Embed это - особый формат сообщений. Есть миф, что их могут (без модификаций и селф-ботов) отправлять только боты, однако это не так. Вы уже сталкивались с эмбедами, когда делились с друзьями сайтами или видео c Youtube.
Эмбеды есть следующих типов:
1. Rich
Доступен только для ботов, и вебхуков (для пользователей только с модификациями/селф-ботами) Самый красивый и многофункциональный вид эмбедов
Настраивается через API
API ( программный интерфейс приложения, интерфейс прикладного программирования описание способов, набор классов , процедур , функций , структур или констант. Которыми одна компьютерная программа может взаимодействовать с другой программой. В нашем случае, Бот с пользователем!
Проще говоря, через код нашего бота!
2. Link
Доступен всем
Появляется при отправлении ссылки без <>
Настройку производят создатели сайтов!
3. Video
Доступен всем
Появляется при отправлении ссылки на видео без <>
Настройку производят создатели сайтов!
Ссылка на сайт откуда была взята информация: https://discord.fandom.com/ru/wiki/Эмбед
Как вы уже наверно поняли, наш Embed будет настраиваться, и выглядеть как Embed под номером 1 (Rich)!
А теперь переходим к написанию и отправке Embed сообщения, через бота!
Для того чтобы создать embed сообщение, вам нужно объявить переменную через let, вот как это должно примерно выглядеть:
let embed = new Discord.MessageEmbed()
Далее я объясню вам все настройки embed сообщения, всего их 12!
Начнём по порядку:
1. .addField('')
Он имеет три значения:
Name, value, и inline
Первое отвечает за название, второе за его значение, обратите внимание, что если ничего не вписать в value, то вместо пустой строки, вы получите значение undefined, inline может быть всего двумя значениями, true, и false, вот как выглядит значение true:
А вот как выглядит значение false:
2. .setColor('')
Как понятно из названия, оно устанавливает цвет сообщения, он может быть как и в HEX-Коде
Так и просто названием цвета: RED, BLUE, GREEN и т.д!
Как выглядит embed с цветом GREEN:
3. .setDescription('')
Как указано в названии, эта функция, устанавливает Описание Embed сообщению, оно выглядит примерно как value в .addField(), скрин:
Также обратите внимание на то, что в коде у меня .addField() написан выше, чем .setDescription(), но всё равно описание будет выше чем значения в addField!
4. .setAuthor('')
Оно устанавливает автора сообщения, скрин как это выглядит:
Также можно добавить аватарку человека написавшего сообщения, это делается следующим образом: .setAuthor('Автор embed!', message.author.displayAvatarURL{ dynamic: true })
Обратите внимание, что в {}, я указал значение dynamic, это означает, что если у автора сообщения, аватарка анимированная, то бот автоматически поменяет изображение с png, на gif!
5. .setTimestamp()
Это самое простое из всех функций, он просто устанавливает время создания сообщения, вот скрин:
6. .setImage('')
Устанавливает изображение в embed сообщение, изображение должно быть в виде ссылки!
7. .setThumbnail('')
Оно очень похоже на .setImage(''), но различия в том, что .setImage('') устанавливает большое изображение снизу embed, а .setThumbnail('') устанавливает маленькое изображение, справа сверху embed сообщения!
8. .setTitle('')
Оно устанавливает жирный текст в начале embed сообщения, скрин:
9. .setURL('')
Оно встраивает ссылку в .setTitle(''), выглядит это следующим образом:
10. .setFooter('')
Оно устанавливает подпись внизу изображения, там же где и .setTimestamp(), скрин:
11. .addFields({})
Можно сказать это одно и тоже что и .addField(), но только немного удобнее, в коде оно выглядит так:
.addFields ({
name : 'Name' ,
value : 'Value' ,
inline : false
}, {
name : 'Name2' ,
value : 'Value2' ,
inline : false
})
И так пока в embed сообщении не закончится лимит символов! Лимит: 2048 символов!
12. .attachFiles('Ссылка на файл')
Перед embed сообщением, кидает в чат файл, выглядит это следующим образом:
Код который у нас получился в итоге:
if (message.content .startsWith (prefix + 'embed' )) {
let embed = new Discord .MessageEmbed()
.addField ('Name' , 'Value' , false )
.addField ('Name2' , 'Value2' , false )
.addField ('Name3' , 'Value3' , false )
.setColor ('GREEN' )
.setDescription ('Вот так выглядит .setDescription() в embed сообщении!' )
.setAuthor ('Автор embed!' , message.author .displayAvatarURL ({ dynamic : true }))
.setTimestamp ()
.setImage ('https://jasonhaxstuff.gallerycdn.vsassets.io/extensions/jasonhaxstuff/discord-js-tools/0.0.3/1530824658924/Microsoft.VisualStudio.Services.Icons.Default' )
.setThumbnail ('https://jasonhaxstuff.gallerycdn.vsassets.io/extensions/jasonhaxstuff/discord-js-tools/0.0.3/1530824658924/Microsoft.VisualStudio.Services.Icons.Default' )
.setTitle ('.setTitle в embed сообщении!' )
.setURL ('https://jasonhaxstuff.gallerycdn.vsassets.io/extensions/jasonhaxstuff/discord-js-tools/0.0.3/1530824658924/Microsoft.VisualStudio.Services.Icons.Default' )
.setFooter ('Так выглядит .setFooter!' )
.addFields ({
name : 'Name' ,
value : 'Value' ,
inline : false
}, {
name : 'Name2' ,
value : 'Value2' ,
inline : false
})
.attachFiles ('https://jasonhaxstuff.gallerycdn.vsassets.io/extensions/jasonhaxstuff/discord-js-tools/0.0.3/1530824658924/Microsoft.VisualStudio.Services.Icons.Default' )
message.channel .send (embed)
}
Обратите внимание на то, что то название переменной которое вы указали, при создании embed сообщения, пример: let embed = new Discord.MessageEmbed()
Вы должны будете указать в message.channel.send(), чтобы получилось: message.channel.send(embed)! embed это моя переменная, которую я обозначал в начале, она у вас может быть другая!
А на этом всё, увидимся в следующем уроке, по discord.js!
В следующем уроке, мы познакомимся с аргументами команды, или же просто args! (пример: !ping argument1 argument2 и т.д)