Как написать discord бота на java
Перейти к содержимому

Как написать discord бота на java

  • автор:

Создание бота Дискорд на основе discord.js

Я заинтересовался созданием бота для Discord, но всё что я нашёл, было пару видео на YouTube, да и то там просто писали код, без всяких пояснений. Поэтому я хочу начать серию статей по созданию ботов на основе discord.js.

Получение токена бота

Для начала нам нужно зайти на страницу создание приложений и нажать New Application.

После чего, нам предложат назвать наше приложение. Вводим желаемое название и нажимаем Create. Мы попадаем на страницу настройки приложения, где мы можем поменять название, аватар, описание и тд. Но нам это пока не нужно, переходим во вкладку Bot. И создаём бота.

Осталось только скопировать токен.

Подготовка среды разработки

Для начала нужно установить Node.js и Visual Studio Code (VS code), в последнем собственно и будет происходить процесс создания бота. Запускаем VS code. Открываем папку, в которой будет хранится наш бот. Нажимаем Вид->Терминал, после этого в нижней части приложения должен появится терминал.

Написания «тела» бота

Для начало нужно создать описание бота.

npm init

После ввода команды, она будет спрашивать вас данные о боте (можно оставить по умолчанию, просто нажав Enter). В конце она спросит правильно ли всё указано и выведет полученные ответы.

npm install
npm install discord.js

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

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

Если вы всё сделали правильно, то в папке бота должно быть следующее.

Далее создаём файл botconfig.json, здесь мы будем хранить основные параметры бота.

< "token":"Njc2MTY0NDQwNTg4MDI1ODY2.XkFyMg.cMKBXh5AJ-u0SQt501OoAd*****", // ваш токен "prefix":">" // префикс, чаще всего '!' или '>' >

Теперь создаём файл index.js, в него копируем следующий код.

const Discord = require('discord.js'); const bot = new Discord.Client(); //подключаем файл конфигурации let config = require('./botconfig.json'); //"достаём" токен и префикс let token = config.token; let prefix = config.prefix; //создаём ссылку-приглашение для бота bot.on('ready', () => < console.log(`Запустился бот $`); bot.generateInvite(["ADMINISTRATOR"]).then(link => < console.log(link); >); >); //команда, и то, что она должна выполнить bot.on('message', msg => < if (msg.content === prefix + 'habr') < msg.reply('The Best!'); >>); bot.login(token);

И мы на финишной прямой! Пишем в терминале команду для запуска бота.
Примечание! Если вы поменяли название исходного файла, вам нужно указать его.

node index.js

После чего остаётся добавить бота на сервер по полученной ссылке.

Вот и всё, наш бот готов!

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

discord_appdev

В данной статье подробно описан процесс создания простейшего чат-бота для сервиса 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

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

http://jcenter.bintray.com
https://jitpack.io
com.github.austinv11

Сохраняем файл и обновляем проект следующим образом: правой кнопкой мыши по проекту в 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 проекта):

Creating a bot with JDA

We’ll build a really basic bot with the JDA discord API wrapper.

In this tutorial, we’ll use the IntelliJ IDEA IDE, created by Jetbrains.

This tutorial assumes you have a JDK 8+ installed and the JAVA_HOME environment variable is set to it.

Step 1

Download and install IDEA (The community edition is enough)

Step 2

Once you open IDEA, you’ll see this screen

Click on Create New Project , then select Gradle and mark just Java , like this

Step 3

Choose a group and artifact ID, they can be anything you want, but usually the group id is the reverse of a domain you own, so mywebsite.com becomes com.mywebsite and the artifact id is an identifier for the project, such as my-jda-bot

You don’t need to change any gradle settings, but personally I like to enable auto import.

After that, choose a project name and where to save it and then click on Finish .

Step 4

Wait for gradle to finish configuring your project, and you should see a screen like this

Open build.gradle and let’s add JDA as a dependency (check the latest version here)

If you get a dialog like this showing up, click Import Changes (it won’t show up if you enabled auto import)

Step 5

Now, we’ll create our main class. Open in the file viewer src/main and right click on java , then go to New -> Java Class

Give your main class a name and click on OK

Now, we’ll create a main method (hint: type psvm until a popup shows and then hit enter)

Step 6

Now, we’ll create our JDA instance, using the JDABuilder class

To continue, you need a discord bot token, which you can get on the applications page

Add the token to your JDABuilder using the setToken(String) method

Step 7

It’s finally time to log in to discord with your bot! To build the JDA instance and connect to discord, simply call the method JDABuilder#buildAsync()

You’re probably wondering why that line is red. If we hover the mouse above it, we’ll see a message explaining what’s wrong

An exception, huh? For now, we’ll just declare the main method as throws LoginException

Now, click the green play button to the left of our class name and select Run

You’ll see something like this being printed to your console

The first 6 lines are because we don’t have any slf4j implementations on our project, but we can ignore those for now.

The next 3 lines tell us that JDA has successfully logged in to discord, and is ready to receive messages. But our bot doesn’t do anything right now.

Step 8

To have our bot do something, we need to add a listener to our JDA instance. For now, let’s have our main class extend ListenerAdapter and override the onMessageReceived method

Now, let’s make it reply with Pong! if the message is !ping

To finalize, we register a new instance of our main class in the JDABuilder

Step 9

Now, when we re-run out bot, it’ll respong with Pong when we run !ping

Step 10

Now that you know how to build a basic bot, we need to export it into a runnable jar file. To do so, we’ll use the gradle shadow plugin. Here’s how our build.gradle looks now

To export our project, open the gradle tab on the right and double click on Tasks->shadow->shadowJar

The file will be in PROJECT_ROOT/build/libs, and can be ran with the java command: java -jar ourjar.jar

Note

If you don’t want to risk your bot entering into infinite message loops, add this to your listener

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

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