discord_appdev

Разработка эхо чат-бота для Discord на Java

В данной статье подробно описан процесс создания простейшего чат-бота для сервиса Discord на языке Java с помощью библиотеки Discord4J, который будет представлять собой обычный эхо-бот, который отвечает на все сообщения их копиями.

Discord4J — это библиотека написанная на Java 8, выполняющая роль интерфейса к Discod API. С помощью нее как раз можно сделать чат-бот  для вашего Discord-сервера.

Для реализации эхо-бота в рамках данной статьи, нам понадобится:

  • Java 8 (JDK 8)
  • Eclipse IDE с поддержкой Maven проектов (с 2016 года интеграция Maven в Eclipse идет «в коробе», начиная с Eclipse Neon)
  • Discord4J (на момент написания статьи, использовалась версия v2.7.0)

1. Создание проекта в Eclipse с использованием Maven

Для начала создаем Maven проект в Eclipse. File -> New -> Project … или Alt + Shif + N -> Project … . В списке находим категорию Maven и в ней выбираем Maven Project. Жмем далее.

tetraquarkru_discordbot_2_1

В следующем окне обязательно ставим галочку «Create a simple project«. Жмем далее.

tetraquarkru_discordbot_2_2

В следующем окне заполняем поля Group ID, Artifact ID, Name, Description на свой вкус. Жмем финиш.

tetraquarkru_discordbot_2_3

Таким образом мы создали пустой Maven проект для нашего будущего бота, содержание которого примерно следующее:

tetraquarkru_discordbot_2_4

Открываем в текстовом редакторе файл проекта: pom.xml.

tetraquarkru_discordbot_2_5

В блок <project> (где-то между <project> и </project>) добавляем следующие тэги:

 

Сохраняем файл и обновляем проект следующим образом: правой кнопкой мыши по проекту в Package Explorer, в всплывающем меню выбираем: Maven -> Update Project.

После проделанной процедуры Maven автоматически загрузит с указанных репозиториев в pom.xml зависимые библиотеки, в нашем случае это Discord4j, и встроит их в проект.

Если ничего плохого не произошло, то проект готов и переходим к написанию кода.

2. Пишем код

Создаем новый package в src/main/java, в нем создаем новый класс для своего бота.

Я приведу пример того, что получилось у меня. Подробно описывать этот код я не буду, потому что эти 100 строк крайне просты. Я добавил комментарии к коду, чего для понимая должно хватить.

Самое важное, что нужно изменить в данном коде, это значение статической константы ECHO_BOT_TOKEN, которая содержит значение уникального ключа вашего чат-бота. Его можно получить в настройках вашего бота на discordapp.com/developers/ в разделе APP BOT USER. Уникальное значение поля Token необходимо скопировать и присвоить переменной ECHO_BOT_TOKEN.

Ниже привожу полный код эхо чат-бота (ниже есть ссылка на Github проекта):

 

3. Добавление чат-бота на свой сервер Discord

Как легко и быстро добавить свой чат-бот на свой сервер Discord описано в этой статье.

4. Запуск и тестирование работы чат-бота

Запускаем проект в Eclipse (Ctrl + F11). Если все успешно, то получаем в итоге следующий вывод в консоль:

А в клиенте Discord мы увидим в онлайне наш добавленный чат-бот, который помечается синей меткой «BOT«. Можно проверять работоспособность. Идем в Discord на свой сервер, куда добавили свой чат бот и пишем любое сообщение, получая такую реакцию:

tetraquarkru_discordbot_4_1

Работает — бот отвечает нам нашими же сообщениями.

На этом все, осталось только поделится полезными ссылками. Свой проект я вкладываю на Github.

Полезные ссылки:

 

8 thoughts on “Разработка эхо чат-бота для Discord на Java

  1. Давно ищу уроки по написанию бота для Discord, но на русском языке их нет.
    Отличная статья. Может быть данный код можно переделать в другой. Например: Пишешь в одном чате, а бот дублирует сообщение в другом чате.
    Продолжай писать уроки по боту Discord. Я точно буду их смотреть

  2. Кто-нибудь может помочь? не понял что надо создать в src/main/java.Какой именно package? И как в нем написать данный код?

    • В src/main/java должны находится файлы исходного кода — классы Java. Эти классы можно располагать для удобства в каталогах — package. В данном случае для данного эхо чат-бота package можно и не создавать, можно сразу создать новый класс в каталоге src/main/java, а в него скопировать код из статьи.
      Еще раз, вот ссылка на Github данного проекта: https://github.com/Tetraquark/EchoChatBot — там видно что и как сделано.

      • Слушай у меня проблема я жму Ctrl+F11 а он пишет не возмаожно загрузить ru.tetraquark.discord.echo-bot.EchoBot.java что делать
        P.S. ещё у меня не стоит JRE у меня просто java 8 144

    • Попробуйте скопировать проект чат-бота из статьи от сюда: https://github.com/Tetraquark/EchoChatBot : перейдя по ссылке надо нажать на зеленую кнопку «Clone or download» и во всплывающем окне нажать «Download zip». Разархивировав проект, импортируйте его в свою Eclipse IDE (File — Import — Exisiting Maven Projects). После импорта можно обновить проект: правой кнопкой мыши по проекту в Package Explorer, в всплывающем меню выбираем: Maven -> Update Project.

  3. Вот так
    пишет консоль
    Error: Could not find or load main class ru.tetraquark.discord.echo_bot.EchoBot
    первая проблема это
    Build path specifies execution environment J2SE-1.5. There are no JREs installed in the workspace that are strictly compatible with this environment.
    вторая проблема это
    The value of the field EchoBot.isConnected is not used EchoBot.java

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">