Как редактировать embed сообщение discord js

Обновлено: 04.07.2024

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

2 contributors

Users who have contributed to this file

  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents

Copy raw contents

Copy raw contents

Начнём. Ссылка на мой youtube канал.

Discord bot туториал. Туториал по созданию ботов для дискорда на node.js используя discord.js.

Creation date : 06.12.2019

Давайте начнём создание бота. Если у вас установлена node.js, то пропустите сделающие 2 строчки. Заходим на сайт node.js, скачиваем, устанавливаем. Скриншотов процесса установки нету, тк переустанавливать node.js нету желания. Но там всё интуитивно понятно.

Создание файлов, инициализация проекта, установка библиотек.

Создаём папку bot. Желательно не использовать кирилицу, юникод и т. п. в названии. Сразу же создаём файл index.js или bot.js. Это не несёт особого смысла. Можно назвать как угодно, но принятно index.js / bot.js. Это будет главный файл бота, т.е. первым запускается, в нём основной код бота. Далее открываем консоль / терминал если у вас linux. Для быстрого открытия консоли на windows можно нажать WIN + R, ввести cmd. Далее переходим в папку бота, думаю как это сделать через консоль всем понятно. Пишим : npm init - инициализация проекта. Жмём enter до конца. Если ошибка в package name, то напишите bot. npm i discord.js - установка библиотеки discord.js.

Далее рекомендую установить один из следующих редакторов кода :

Если очень слабый компьюер можете поставить notepad++, но это для постоянной основы не самый хороший вариант. Лично я использую Atom.

Вы можете зарегистрировать его на сайте discord developers. Жмём кнопку "New Application". Вводим название бота. Жмём "Create". Переходим во вкладку "Bot", нажимаем "Add Bot", затем "Yes, do it!" Находим строку "token", немного ниже есть кнопка "Copy", нажимаем. Теперь в вашем буфере обмена есть токен бота.

Создадим первый код. Пишем :

Открываем консоль, переходим в папку проекта и пишем :

в зависимости от названия файла. Если у вас windows, то вы можете создать файл start.bat с текстом

Если линукс, то вы можете создать файл start.sh

Это будет запускать бота. Далее я не буду говорить про запуск. Делайте это сами.

Создаем файл config.json с конфигурацией нашего бота.

В начале кода бота напишем :

Еще вы можете создать конфиг прямо в коде бота.

Но второй вариант крайне не рекомендуется использовать, ведь для того что-бы изменить конфиг бота нам придется изменять его код.

Давайте залогируем тег автора.

Также можно писать не

.startsWith проверят начинается ли строка с символов в аргументах.

Также даже начинающим программистам будет очень полезна в боте команда !eval для выполнения кода не пиша его в коде бота, т.е. вы пишите !eval какой-то код и бот выполняет этот код.
Я нашёл хороший туториал по этой команде на github. Рекомендую ознакомиться и взять себе команду в код бота. Принцип её работы мы разберём позже. Тык.

Image alt

Это называется RichEmbed (Embed). Давайте отправим простой эмбед похожий на данный. (Картинка ниже)

Image alt

Для этого создадим новую команду !ping .

В Embed есть много различных параметров, вы можете прочесть их далее, либо посмотреть на оффициальном сайте discord.js

Давайте сделаем команду для получения информации о пользователе. Команда взята из моего бота. Будем использовать библиотеку moment.js , устанавливаем npm i moment.js

r.id !== message.guild.id).map(roles => `\`$\``).join(" **|** ") || "No Roles") //Роли человека на сервере .setThumbnail(mbr.user.displayAvatarURL) //Аватар человека .setFooter("Информация о пользователе.") //Футер message.channel.send(); //Отправляем > else message.reply("Вы забыли упомянуть пользователя."); //Это вряд-ли сможет произойти, но на всякий случай">

Image alt

Мой дискорд сервер!

Прошу зайти на мой дискорд сервер, ведь я долго делал туториал, а вам не сложно зайти на мой сервер в виде благодарности.

Необходимо для мониторинга.

2 ответа 2

Если же вы хотите добавить какой-либо элемент в уже существующий embed :



Редактировать embed можно при помощи message.edit(embed); Зависит от версии discord.js На 11 как сверху!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками javascript node.js discord или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2022 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2022.2.28.41552

Пример:
до реакции:

2 ответа

  1. Использование функции awaitReactions (обещание основано)
  2. Использование ReactionCollector
  3. Использование messageReactionAdd событие

Различия:

messageReactionAdd - это событие, связанное с Client :

В этом разделе описывается, как использовать некоторые недокументированные API-интерфейсы для добавления неподдерживаемых функций в discord.js, и поэтому вам следует соблюдать все меры предосторожности. Все здесь может быть изменено в любое время без предварительного уведомления и может нарушить другие функции вашего бота.

awaitReactions основан на обещании, и он вернет коллекцию всех добавленных реакций только после того, как обещание будет выполнено (после добавления X реакций, через Y секунд и т. Д.). Нет конкретной поддержки для обработки каждой добавленной реакции. Вы можете поместить свою функцию в функцию filter , чтобы добавить все реакции, но это небольшой взлом, который не предназначен. ReactionCollector , однако, имеет событие collect .

Итак, что я использую?

Что делать?

Вам понадобятся разные вещи:

Пример: список пользователей

Список смайликов:

Условие остановки

Редактировать функцию

Функция фильтра

Логика

Обратите внимание, что я использую list.length здесь, чтобы избежать перехода в list [list.length] и далее. Если у вас нет жестко закодированного списка, вы должны передать ограничение в аргументе.
Вы также можете сделать возврат getList неопределенным, если индекс недействителен, и вместо использования индекса для логического условия сравните возвращаемое значение с неопределенным.

Это еще одна логика с другой функцией getList (не той, что описана выше, поскольку попытка выполнить .setTimestamp для неопределенного вызовет ошибку), которая, например, просто возвращает list [i].

Построить конструктор

Мы будем использовать коллектор:

Написание этого ответа по запросу от OP

Поскольку это довольно распространенная вещь, которую я хочу сделать, я написал библиотеку, чтобы помочь с этой точной вещью: discord-dynamic-messages Обратите внимание, что discord-dynamic-messages - это библиотека только для машинописного текста.

В мире, где общение стало проходить в онлайн режиме, пользователи получили шанс объединяться в группы в зависимости от конкретно выбранной тематики. При этом, функционал приложения предполагает использование доступного варианта опций и инструментов для того, чтобы объединяться в группы по тематике. Пользователи могут создавать серверы, в рамках серверов каналы, куда можно добавлять участников для общения.


Что такое embed?

Разработчики программы Дискорд регулярно расширяют функционал, и добавили на сайт опцию, которая разрешает производить заимствование постороннего сайта для того, чтобы размещать необходимую информацию на сервер пользователя. При этом, пользователи могут встраивать необходимой контент с постороннее задействованного сайта. Благодаря использованию опцию, пользователи могут в результате получить элемент, который дополнен полнофункциональными инструментами. Посторонние пользователи, или участники канала могут производить грамотное взаимодействие с контентом, или в веб-страницей, с которой был выбран материал.

При помощи опции пользователи могут добиться определенного уровня популярности на платформе. Если пользователь применил опцию эмбед, то может поместить на сервере необходимую информацию, к кчислу которой могут относиться:

  • Видеоролики, которые могут просматривать посторонние пользователи. При этом, преимущество использования подобной опции заключается в том, что контент занимает немного памяти. Пользователи могут получить и дополнительный источник для распространения сервера в сети.
  • Иллюстрации, которое получили аннотирование.
  • Информацию в виде текста, или информационной варианта графического представления.


Пользователи могут отправлять embed посторонним пользователям в мессенджере Дискорд, чтобы проинформировать в зависимости от выбранного направления. При этом, пользователи могут применить варианты отправления. Например, распространенным способом отправления считается использование приглашенного на сервер бота, или черед посторонние источники.

Способ для ботов

Пользователи могут и создавать embed при помощи бота, который создан для решения подобной задачи. Для того, чтобы провести процедуру генерирования эмбеда, необходимо:


BetterDiscord

Пользователь в сети интернета может обнаружить плагин, который помогает отправлять embed. При использовании подобного варианта на платформе произойдет описание плагина варианта «Safe Embed Generator. Для того, чтобы проделать операцию, следует выполнить стандартный вариант действий по инструкции.

Эмбеды есть следующих типов:

Тип Доступен для Описание Пример Настройка
rich Боты, вебхуки (для пользователей только с модификациями/селфботами) Самый красивый и многофункциональный вид эмбедов Screenshot 20191211 173058.jpg
Через API
link Все Появляется при отправлении ссылки без <> Link-embed.jpg
Создателем сайта
video Все Появляется при отправлении ссылки на видео без <> Video-embed.jpg
Создателем сайта

Содержание

Как прислать эмбед?

Способ для ботов (rich)

JavaScript

Python

Discord Bot Maker

1. Для начала нам нужно создать команду, у нас это будет тест-эмбеда-для-вики

2. Потом, нажмите "Create" и нажмите на "Send Message", потом выберите категорию "Messaging" и там выберите "Create Embed Messagse"

2.1. Вписываем заголовок эмбеда, URL, Автора, цвет, изображение. Потом пишем в "Variable Name", например, "varembed" и сохраняем.

2.1 шаг

3. Нажимаем опять кнопку "Create", выбираем ту же самую категорию и выбираем уже "Set Embed Description".

3.1. Вписываем "Variable Name", который мы написали в прошлом событии, у нас это был "varembed", вписываем.

3.2. А дальше просто пишем, что у нас будет в эмбеде, у нас это "embed test".

3.1, 3.2 шаг

4. Дальше создаём ещё одно событие в команде, выбираем также "Messaging", но функцию уже выбираем "Send Embed Message".

Эмбед с помощью Discord Bot Maker был создан, осталось запустить вашего бота и продемонстрировать эту команду.

BetterDiscord

В интернете можно найти плагин, который сможет отсылать эмбеды (типа link), в данном случае опишется плагин "Safe Embed Generator".

1. Скачиваем плагин по ссылке *клик*.

1.1 Перекидываем в папку с плагинами, на Windows %APPDATA%\Roaming\BetterDiscord\plugins, на Linux $HOME/.config/BetterDiscord/plugins


1.2 Подключаем его в настройках пользователя во вкладке "Plugins".

Создаём (Генерируем) эмбед

2. Когда вы видите это, не бойтесь. Заполняйте всё как вам надо, сбоку появится превью эмбеда. Как и в Discord Bot Maker тут можно выбрать цвет, картинку, автора, заголовок.

2 шаг

3. Когда вы всё заполнили, можете нажимать "Send", и у вас отправится эмбед!

Читайте также: