Создание Discord-бота в Java
Обновлено: 21.11.2024
Настроить бота на основе Java с помощью нашего тарифного плана хостинга ботов Discord невероятно просто, и в этом руководстве мы расскажем вам об этих шагах!
Требования
Наша служба размещения ботов невероятно гибкая, однако вам необходимо знать следующее, чтобы ваш бот мог работать:
– Для вашего бота не должна требоваться версия Java выше 11 – мы поддерживаем Java 8 и 11, и далее в этом руководстве мы расскажем, как сменить ее.
– Ваш бот должен быть работоспособным. с помощью команды java -jar YourBot.jar (имя файла jar, конечно, может быть любым по вашему желанию) и не требует наличия каких-либо дополнительных аргументов.
Загрузка файлов вашего бота
Для этой части вам нужно убедиться, что у вас есть все файлы, которые требуются вашему боту. Большинство ботов на основе Java фактически содержат необходимые файлы в своем jar-файле, однако не забудьте проверить документацию вашего бота, чтобы узнать, нужно ли загружать какие-либо другие файлы.
Чтобы начать загрузку файлов, перейдите по ссылке "Диспетчер файлов" на левой боковой панели панели. Оттуда вы можете увидеть несколько файлов по умолчанию, и это нормально.
Вы можете либо перетащить jar-файл вашего бота (и любые другие дополнительные файлы) прямо со своего компьютера в файловый менеджер, и он начнет загрузку файлов, либо вы можете использовать кнопку «Загрузить» -> «Файл» в левом верхнем углу. углу файлового менеджера.
Настройка конфигурации Java
В качестве последних шагов по настройке вашего бота вам нужно будет щелкнуть файл pebble-java-config.json в файловом менеджере — здесь вы укажете имя файла своего бота, а также установите версию Java. вы хотели бы использовать.
По умолчанию вы увидите «main»:null — мы заменим null на TestBot.jar или фактическое имя файла вашего бота. Пока вы здесь, если вам нужно использовать Java 11 вы можете установить "java_version" на 11 или 17 для Java 17. Не забудьте сохранить файл, когда закончите!
Запуск бота
Теперь, когда мы это сделали, вернитесь на главную страницу и нажмите ссылку Консоль на левой боковой панели. Затем нажмите Старт, чтобы запустить бота!
Не стесняйтесь покинуть страницу консоли, как только все будет готово. Если у вас возникнут какие-либо проблемы с запуском вашего бота, пожалуйста, не стесняйтесь обращаться в нашу службу поддержки, чтобы мы могли помочь с этим. Вы можете связаться с нашей службой поддержки, открыв тикет на нашем веб-сайте или в Discord.
Java – это очень популярный, стабильный и надежный язык программирования, который существует уже несколько десятилетий. Спрос на этот язык есть: тысячи и тысячи разработчиков каждый день пишут код на Java.
Если Java — ваш хлеб с маслом или вы просто хотите освоить Java и нуждаетесь в хорошей отправной точке, то это может быть идеальным вариантом!
Создание собственного бота для Discord на Java научит вас всем тонкостям настройки проекта, его настройки, добавления библиотеки/оболочки, написания кода и, наконец, подключения вашего бота к сети.
В любом случае это очень мощные библиотеки, которые сделают свою работу.
Итак, приступим! Мы поговорим о настройке вашей среды, выборе IDE и настройке библиотеки для создания бота Discord в следующем разделе.
Настройка Java для разработки Discord Bot
Разработка Java обычно выполняется через IDE (интегрированную среду разработки), которая находится в вашей локальной системе. По сути, это программный пакет, который вы используете для написания, отладки и компиляции всего вашего кода.
Однако прежде чем вы сможете начать писать какой-либо код, вы сначала выберете IDE, загрузите ее, установите, а затем запустите проект.
К счастью, это несложно. Давайте углубимся в то, как вы можете настроить свою IDE и выбранную библиотеку/оболочку.
Лучшие Java IDE для создания ботов Discord
IntelliJ IDEA и Eclipse — это две лучшие интегрированные среды разработки для Java, которые мы рекомендуем всем Java-разработчикам. Они проверены, стабильны и получили отличные отзывы от разработчиков со всего мира.
У IntelliJ IDEA есть бесплатная версия сообщества с открытым исходным кодом, которую вы можете скачать и начать использовать за считанные минуты.Он кроссплатформенный и поддерживает разработку для Windows, Mac и Linux.
Лично мне нравится эта IDE, так как она выглядит более современно по сравнению с Eclipse, но это только мои личные предпочтения. Обе отличные IDE.
Вы можете скачать IntelliJ IDEA прямо сейчас и приступить к работе.
Eclipse — это интегрированная среда разработки для Java, которая существует уже довольно давно (первоначально она была реализована IBM в 2001 году). Это очень стабильная и надежная среда разработки, которую продолжают использовать и любить разработчики по всему миру.
Eclipse также является кроссплатформенным и работает на Windows, Mac и Linux.
Вы можете скачать Eclipse прямо сейчас и приступить к работе с Java.
Лучшие обертки/библиотеки Discord для разработки Java-ботов
Что касается оболочек/библиотек Java API для Discord, JavaCord и Discord4J выходят на первое место как наиболее широко используемые и поддерживаемые.
Чтобы упростить себе жизнь и начать писать своего бота как можно скорее, я настоятельно рекомендую перед началом разработки приобрести одну из этих библиотек.
Мы рассмотрим настройку каждой из них, а затем покажем, как выглядит реализация каждой оболочки в реальном коде Java.
Пока мы не зашли слишком далеко: Gradle против Maven
Первое, что вы заметите при настройке среды разработки для JavaCord и Discord4J, — это разграничение между Gradle и Maven. Что это такое и в чем разница?
И Gradle, и Maven — это «Инструменты автоматизации сборки». Это означает, что когда вы нажимаете «Сборка» или «Скомпилировать» в своем проекте, Gradle/Maven выполняет процесс компиляции вашего кода, его упаковки и запуска любых автоматических тестов, которые вы, возможно, сразу настроили.
По сути, вы настраиваете серию шагов, которые выполняются каждый раз, когда вы создаете/компилируете свой код, что избавляет вас от необходимости делать это вручную при каждой сборке.
Мы не собираемся вдаваться в дебаты Gradle и Maven в этом руководстве, поскольку это выходит за рамки, но у нас есть отличный ресурс, который вы можете прочитать, если вам интересны все нюансы и понимание того, когда следует использовать тот или иной вариант.
Взгляните на это руководство по сравнению Gradle и Maven от DZone.
Что это значит для разработки бота Discord?
Это означает, что вам нужно будет выбрать либо Gradle, либо Maven, а затем добавить JavaCord или Discord4J в качестве зависимости, чтобы эти библиотеки были включены в ваш бот во время компиляции.
Если это звучит сложно, не волнуйтесь, мы собираемся показать вам, как именно это настроить.
Интеграция JavaCord или Discord4J в ваш проект бота Discord
Во-первых, вам придется сделать выбор между JavaCord или Discord4J!
Вот несколько интересных фактов, которые, надеюсь, облегчат вам выбор.
Частота обновления:
Discord4J обновляется гораздо чаще, чем JavaCord. Если вы посмотрите на теги выпуска, сгенерированные Discord4J, и теги выпуска, сгенерированные JavaCord, по их истории, Discord4J окажется победителем. Если вам нужна часто обновляемая библиотека, я бы выбрал Discord4J.
Соавторы, работающие над проектом:
У Discord4J (на момент написания этого руководства) было почти вдвое больше участников, чем у JavaCord. Это означает, что над его улучшением работает больше людей, что повышает вероятность того, что вы будете иметь дело с менее глючным кодом и более надежной структурой. Вот диаграмма вклада Discord4J и диаграмма вклада JavaCord.
Синтаксические различия и реализация:
Обе библиотеки/оболочки используют прослушиватели событий, где вы создаете код, который «отфильтровывает» определенные события, а затем запускает ваши собственные фрагменты кода в качестве ответов (после запуска этих событий).
Discord4J — это реактивная оболочка Java для API Discord.
JavaCord — это библиотека для API Discord, которая может похвастаться простой многопоточностью.
Посмотрите на два примера кода для простого пинг-понга ниже и выберите, какой из них вам больше всего нравится.
Discord4J — пример кода простого бота для пинг-понга
JavaCord — пример кода простого бота для пинг-понга
Лично я выбрал Discord4J, поскольку он наиболее активен и чаще всего обновляется из двух, но JavaCord также является отличным выбором.
Если вам трудно принять решение, вы всегда можете создать небольшого простого бота в обоих случаях и посмотреть, как каждый из них работает/функционирует для ваших целей.
В любом случае, давайте приступим к настройке обеих этих библиотек в нашем проекте!
Предпосылки:
К этому моменту у вас должна быть установлена либо IntelliJ IDEA, либо Eclipse в качестве интегрированной среды разработки, и они должны быть готовы к работе на вашем компьютере.
Вы должны знать, собираетесь ли вы использовать Gradle или Maven в качестве системы автоматизации сборки.
И, наконец, у вас должно быть четкое представление о том, какую библиотеку/оболочку для API Discord вы хотите использовать в первую очередь: JavaCord или Discord4J.
Настройка JavaCord
Чтобы начать работу с JavaCord, перейдите по этой ссылке и начните читать раздел загрузки/установки.
Есть руководства по настройке Gradle и Maven, поэтому независимо от того, какой менеджер сборки вы выбрали ранее, у вас будет все необходимое для работы.
На начальной странице вы увидите раздел «Настройка IDE» с несколькими руководствами для IntelliJ/Eclipse и Gradle/Maven.
Прочитайте это руководство, чтобы настроить JavaCord в IntelliJ или Eclipse, и вы будете готовы приступить к кодированию!
Полезные ссылки JavaCord:
Настройка Discord4J
Чтобы начать работу с Discord4J, перейдите по этой ссылке и начните читать и следовать руководству по установке.
Вы увидите руководство по загрузке/установке IntelliJ IDEA и Eclipse, а также Maven и Gradle.
После того как Discord4J будет настроен и готов к работе, я рекомендую следовать этому простому руководству по работе с ботами на вики.
В этом руководстве рассказывается, как работает Discord4J (подписка на события, отправка сообщений и т. д.), и оно станет отличной отправной точкой.
Полезные ссылки Discord4J:
Ваши следующие шаги в разработке Java-ботов
К настоящему моменту ваша среда разработки Java-ботов настроена, настроена и готова к работе!
Если вы следили за этим, вы, вероятно, прошли одно из основных руководств по ботам, предоставленных библиотекой/оболочкой по вашему выбору (либо Discord4J, либо JavaCord), и я уверен, что вы в восторге от всех потенциальных ботов, которых вы можете создать.
Что делать дальше?
Что ж, если вы еще этого не сделали, мы рекомендуем прокрутить это руководство вниз до раздела «Идеи Discord Bot» и пройти упражнение по генерации идей.
Это поможет вам найти интересные и уникальные идеи для ботов, которые все это время прятались у вас в голове.
После того, как вы это сделаете, вы сможете приступить к программированию и созданию бота Discord своей мечты.
Если вы хотите узнать еще больше о разработке ботов Discord и узнать еще больше советов, приемов, методов и тактик по теме разработки ботов, присоединяйтесь к сообществу WriteBots сегодня!
В этом руководстве показано, как использовать JavaScript и Node.js для создания собственного бота Discord полностью в облаке.
Вам не нужно ничего устанавливать на свой компьютер, и вам не нужно ничего платить за размещение своего бота.
Мы собираемся использовать ряд инструментов, в том числе Discord API, библиотеки Node.js и платформу облачных вычислений под названием Repl.it.
Если вы предпочитаете программировать своего бота для разногласий с помощью Python, а не JavaScript, прочитайте это руководство.
Есть также видеоверсия этого письменного руководства. Видео встроено ниже, а письменная версия — после видео.
Как создать учетную запись бота в Discord
Чтобы работать с библиотекой Node.js и Discord API, мы должны сначала создать учетную запись Discord Bot.
Вот шаг к созданию учетной записи Discord Bot.
<р>1. Убедитесь, что вы вошли на сайт Discord. <р>3. Нажмите кнопку «Новое приложение».<р>4. Дайте приложению имя и нажмите «Создать».
<р>5. Перейдите на вкладку «Бот» и нажмите «Добавить бота». Вам нужно будет подтвердить, нажав «Да, сделайте это!»
Оставьте параметры по умолчанию для Public Bot (флажок установлен) и Require OAuth2 Code Grant (флажок снят).
Ваш бот создан. Следующим шагом является копирование токена.
Этот токен является паролем вашего бота, поэтому никому его не сообщайте. Это может позволить кому-то войти в ваш бот и делать всевозможные плохие вещи.
Вы можете восстановить токен, если им случайно поделились.
Как пригласить бота на сервер
Теперь вам нужно поместить своего бота-пользователя на сервер. Для этого необходимо создать для него URL-адрес приглашения.
Перейдите на вкладку "OAuth2". Затем выберите «бот» в разделе «Области действия».
Теперь выберите необходимые разрешения для бота. Наш бот будет в основном использовать текстовые сообщения, поэтому нам не нужно много разрешений. Вам может понадобиться больше в зависимости от того, что вы хотите, чтобы ваш бот делал. Будьте осторожны с разрешением «Администратор».
Выбрав соответствующие разрешения, нажмите кнопку «Копировать» над разрешениями. Это скопирует URL-адрес, который можно использовать для добавления бота на сервер.
Вставьте URL-адрес в адресную строку браузера, выберите сервер, на который следует пригласить бота, и нажмите «Авторизовать».
Чтобы добавить бота, вашему аккаунту необходимы разрешения "Управление сервером".
Теперь, когда вы создали пользователя бота, мы начнем писать код Python для бота.
Как закодировать базового бота Discord с помощью библиотеки discord.js
Мы будем использовать библиотеку Node discord.js для написания кода для бота. discord.js — это оболочка API для Discord, упрощающая создание бота Discord в Node.js/JavaScript.
Как создать реплику и установить discord.js
Вы можете разработать бота на локальном компьютере с помощью любого редактора кода. Однако в этом уроке мы будем использовать Repl.it, потому что это упростит следование всем. Repl.it — это онлайн-среда разработки, которую вы можете использовать в своем веб-браузере.
Начните с Repl.it. Создайте новый Repl и выберите «Node.js» в качестве языка. Это означает, что языком программирования будет JavaScript.
Чтобы использовать библиотеку discord.js, просто добавьте const Discord = require("discord.js"); в верхней части main.js. Repl.it автоматически установит эту зависимость, когда вы нажмете кнопку «Выполнить».
Как настроить события Discord для своего бота
discord.js вращается вокруг концепции событий. Событие — это то, что вы слушаете, а затем реагируете. Например, когда приходит сообщение, вы получаете событие, на которое можете ответить.
Давайте создадим бота, который отвечает на определенное сообщение. Этот простой код бота взят непосредственно из документации discord.js. Позже мы добавим в бота дополнительные функции.
Добавьте этот код в main.js. Вскоре я объясню, что делает весь этот код.
Когда вы создали своего пользователя-бота в Discord, вы скопировали токен. Теперь мы собираемся создать файл .env для хранения токена.
Файлы.env используются для объявления переменных среды. На Repl.it большинство создаваемых вами файлов видны всем, но файлы .env видны только вам. Другие люди, просматривающие общедоступную реплику, не смогут увидеть содержимое файла .env.
Поэтому, если вы разрабатываете Repl.it, включайте в файл .env только личную информацию, такую как токены или ключи.
Нажмите кнопку "Добавить файл" и создайте файл с именем .env .
Внутри файла добавьте следующую строку, включая фактический токен, который вы скопировали ранее:
Теперь давайте рассмотрим, что делает каждая строка кода в коде вашего бота Discord.
Первая строка импортирует библиотеку discord.js. Далее мы создаем экземпляр Client . Это связь с Discord.
client.on() используется для проверки событий. Он принимает имя события, а затем функцию обратного вызова, которая будет вызываться при возникновении события. В этом коде событие ready вызывается, когда бот готов к использованию. Затем, когда на сервере Discord появляется новое сообщение, вызывается событие сообщения.
Код проверяет, равно ли msg.content 'ping' . Если да, то бот отвечает каналу "pong".
Теперь, когда бот настроен, последняя строка запускает бота с токеном входа. Он получает токен из файла .env.
У нас есть код для бота, так что теперь нам просто нужно его запустить.
Как запустить бота
Теперь нажмите кнопку запуска вверху, чтобы запустить бота в repl.it.
Теперь перейдите в свою комнату Discord и введите "ping". Ваш бот должен вернуть "pong".
Как улучшить бота
Теперь, когда у нас есть работающий базовый бот, мы улучшим его. Не зря он называется «Поощрение бота».
Этот бот будет отвечать ободряющим сообщением всякий раз, когда кто-то отправляет сообщение, содержащее грустное или удручающее слово.
Любой желающий сможет добавлять ободряющие сообщения для использования ботом, а отправленные пользователями сообщения будут храниться в базе данных Repl.it.
Бот также возвращает случайную вдохновляющую цитату из API, когда кто-то вводит в чат сообщение "$inspire".
Начнем с добавления функции "$inspire".
Как добавить вдохновляющие цитаты в бота
Мы будем получать вдохновляющие цитаты из API под названием zenquotes.io. Нам нужно импортировать модуль node-fetch, добавить функцию getQuote() и обновить код нашего бота, чтобы он вызывал эту функцию.
Вот обновленный код. После кода я объясню новые части.
Функция getQuote() довольно проста. Во-первых, он использует модуль node-fetch для запроса данных из URL-адреса API. API возвращает случайную вдохновляющую цитату. Эту функцию можно легко переписать для получения котировок из другого API, если текущий перестанет работать.
Затем функция преобразует ответ API в формат JSON и создает возвращаемую строку. Методом проб и ошибок я понял, как преобразовать цитату из JSON в нужный формат строки. Цитата возвращается функцией в виде строки.
На этом этапе вы можете запустить свой код и попробовать его.
Как добавить боту вдохновляющие сообщения
Теперь мы реализуем функцию, при которой бот отвечает ободряющими сообщениями, когда пользователь публикует сообщение с грустным словом.
Как добавить боту грустные слова
Сначала нам нужно создать массив, содержащий грустные слова, на которые будет реагировать бот.
Добавьте следующую строку после создания переменной клиента:
sadWords = ["грустный", "подавленный", "несчастный", "сердитый", "несчастный"]
Вы можете добавить в список больше слов.
Как добавить ободряющие сообщения в бот
Теперь мы добавим массив ободряющих сообщений, на которые бот ответит.
Добавьте следующий массив после созданного вами списка sadWords:
Как и раньше, не стесняйтесь добавлять в массив другие фразы по вашему выбору. Пока я использую только три элемента, потому что позже мы добавим пользователям возможность добавлять более ободряющие фразы для использования ботом.
Как отвечать на сообщения
Теперь нам нужно обновить нашего бота, чтобы он использовал два списка, которые мы создали.
Теперь мы обновим функцию сообщений, чтобы проверять все сообщения на наличие в них слова из списка sadWords. Если будет найдено грустное слово, бот отправит случайное поощрительное сообщение.
Вот обновленный код:
Сейчас самое время протестировать бота. Теперь вы знаете достаточно, чтобы создать собственного бота. Но далее вы узнаете, как реализовать более продвинутые функции и хранить данные с помощью базы данных Repl.it.
Как включить отправку сообщений пользователями
Бот полностью функционален, но теперь давайте сделаем возможность обновлять бота прямо из Discord. Пользователь должен иметь возможность добавлять больше ободряющих сообщений, которые бот будет использовать при обнаружении грустного слова.
Мы собираемся использовать встроенную базу данных Repl.it для хранения отправленных пользователями сообщений. Эта база данных представляет собой хранилище ключей и значений, встроенное в каждую реплику.
В верхней части кода под другими операторами импорта добавьте:
Это позволит нам использовать базу данных Repl.it. Когда вы запускаете код, Repl.it должен автоматически установить модуль базы данных. Если по какой-то причине это не так, вам, возможно, придется перейти на вкладку «Оболочка» (а не в консоль) и ввести «npm install @replit/database».
После создания массива поощрений вставьте следующий код, чтобы при необходимости добавить поощрения в базу данных:
Кроме того, переименуйте массив поощрений вверх в starterEncouragements .
Пользователи смогут добавлять собственные ободряющие сообщения для бота, чтобы использовать их непосредственно из чата Discord. Прежде чем мы добавим новые команды для бота, давайте создадим две вспомогательные функции, которые будут добавлять пользовательские сообщения в базу данных и удалять их.
Добавьте следующий код после функции getQuote():
Функция updateEncouragements() принимает в качестве аргумента ободряющее сообщение.
Сначала он получает "поощрения" из базы данных. Затем он добавляет новое поощрение в массив и сохраняет обновленный массив обратно в базу данных под ключом "поощрения".
Функция deleteEncouragement() принимает индекс в качестве аргумента.
Он получает список поощрений из базы данных, хранящейся под ключом "поощрения". Если длина больше, чем индекс, то элемент списка по этому индексу удаляется. Наконец, обновленный список сохраняется в базе данных под ключом "поощрения".
Вот обновленный код функции сообщения. После кода я объясню новые разделы.
Раздел грустных слов был обновлен, чтобы использовать ободряющие сообщения из базы данных, чтобы можно было использовать сообщения, отправленные пользователями.
Следующий новый раздел кода используется для добавления в базу данных нового сообщения, отправленного пользователем. Если сообщение Discord начинается с «$new», то текст после «$new» будет использоваться как новое ободряющее сообщение.
Код msg.content.split('$new ')[1] отделяет сообщение от команды "$new" и сохраняет сообщение в переменной. В этой строке кода обратите внимание на пробел в «$new». Нам нужно все после пробела.
Мы вызываем вспомогательную функцию updateEncouragements с новым сообщением, а затем бот отправляет сообщение в чат раздора, подтверждая, что сообщение было добавлено.
Третий новый раздел (в конце приведенного выше кода) проверяет, начинается ли новое сообщение Discord с «$del». Это команда для удаления элемента из списка "поощрений" в базе данных.
Индекс отделен от сообщения Discord, начинающегося с "$del". Затем вызывается функция deleteEncouragement(), передающая индекс для удаления. Обновленный список поощрений загружается в переменную поощрений, после чего бот отправляет сообщение в Discord с текущим списком.
Последние возможности бота
Бот должен работать, поэтому самое время его протестировать. Сейчас мы добавим несколько заключительных функций.
Мы добавим возможность получать список отправленных пользователем сообщений прямо из Discord, а также добавим возможность отключать и включать, отвечает ли бот на грустные слова.
Я дам вам полный окончательный код программы, а затем я расскажу об обновлениях под кодом.
Первый раздел, добавленный в код, находится прямо под списком starterEncouragements:
Мы создаем новый ключ в базе данных под названием "responding" и устанавливаем для него значение "true". Мы будем использовать это, чтобы определить, должен ли бот реагировать на грустные слова или нет. Поскольку база данных сохраняется даже после остановки программы, мы создаем новый ключ только в том случае, если он еще не существует.
Следующая новая часть кода находится в разделе, который отвечает на грустные слова, теперь находится внутри этого оператора if. Бот будет реагировать на грустные слова, только если db.get("responding") = true . Возможность обновить это значение появляется после следующего раздела.
Далее, после кода, заставляющего бота отвечать на команду "$del", идет новый код, отвечающий на команду "$list" при отправке в виде сообщения Discord.
Бот отправляет список поощрений в виде сообщения Discord.
Затем следует последний новый раздел. Этот код заставляет бота реагировать на команду «$responding». Эта команда принимает аргумент «true» или «false». Вот пример использования: "$responding true".
Код сначала извлекает аргумент со значением = msg.content.split("$responding ")[1] (как и раньше, обратите внимание на пробел в "$responding " ). Затем есть оператор if/else, который соответствующим образом устанавливает «отвечающий» ключ в базе данных и отправляет уведомление обратно в Discord. Если аргумент не "истина", код предполагает "ложь".
Код для бота готов! Теперь вы можете запустить бота и попробовать его. Но есть еще один важный шаг, который мы обсудим далее.
Как настроить непрерывную работу бота
Если вы запустите своего бота в repl.it, а затем закроете вкладку, в которой он работает, ваш бот перестанет работать.
Но есть два способа поддерживать непрерывную работу бота даже после закрытия браузера.
Первый и самый простой способ — подписаться на платный план в Repl.it. Их самый дешевый платный план называется Hacker Plan и включает в себя пять постоянных повторений.
После того, как вы подписались на этот план, откройте Repl и щелкните имя вверху. Затем выберите вариант «Всегда включен».
Есть еще один способ обеспечить работоспособность вашего кода даже на уровне бесплатного пользования, но он немного сложнее. Repl.it продолжит работу веб-сервера даже после закрытия вкладки. Но даже веб-сервер будет работать не более часа без использования.
Вот что говорят документы repl.it:
После развертывания сервер продолжит работу в фоновом режиме даже после закрытия вкладки браузера. Сервер будет оставаться бодрствующим и активным в течение часа после последнего запроса, после чего он перейдет в спящий режим.Спящие реплики будут разбужены, как только получат очередной запрос; нет необходимости повторно запускать repl. Однако если вы вносите изменения в свой сервер, вам нужно будет перезапустить реплику, чтобы эти изменения отразились в реальной версии.
Uptime Robot можно настроить так, чтобы он проверял связь с веб-сервером бота на repl.it каждые 5 минут. При постоянном эхо-тесте бот никогда не перейдет в спящий режим и продолжит работу.
Поэтому нам нужно сделать еще две вещи, чтобы наш бот работал непрерывно:
- создать веб-сервер в repl.it и
- настройте Uptime Robot для непрерывной проверки связи с веб-сервером.
Как создать веб-сервер в repl.it
Создать веб-сервер проще, чем вы думаете.
Для этого создайте в проекте новый файл с именем server.js .
Затем добавьте следующий код:
В этом коде мы используем экспресс для запуска веб-сервера. Сервер возвращает "Бот работает!" всем, кто его посещает. Сервер будет работать в отдельном потоке от нашего бота. Мы не будем обсуждать здесь все, так как остальное не имеет отношения к нашему боту.
Теперь нам просто нужен бот для запуска этого веб-сервера.
Добавьте следующую строку вверху файла index.js, чтобы импортировать сервер.
Чтобы запустить веб-сервер при запуске index.js, добавьте следующую строку в качестве предпоследней строки непосредственно перед запуском бота.
При запуске бота на repl.it после добавления этого кода откроется новое окно веб-сервера. Отображается URL-адрес веб-сервера. Скопируйте URL-адрес, чтобы использовать его в следующем разделе.
Как настроить робота Uptime
Теперь нам нужно настроить Uptime Robot для проверки связи с веб-сервером каждые пять минут. Это заставит бота работать непрерывно.
После входа в свою учетную запись нажмите "Добавить новый монитор".
Для нового монитора выберите "HTTP(s)" в качестве типа монитора и назовите его как хотите. Затем вставьте URL-адрес вашего веб-сервера из repl.it. Наконец, нажмите «Создать монитор».
Готово! Теперь бот будет работать непрерывно, поэтому люди всегда смогут взаимодействовать с ним на Repl.it.
Заключение
Теперь вы знаете, как создать бота Discord с помощью JavaScript и постоянно запускать его в облаке.
Есть много статей, в которых рассказывается о Python или JavaScript, а не о Java, поэтому я думаю, что это проще сделать. Я не понимаю Python или JavaScript, поэтому пишу на Java. Если вы понимаете Python или JavaScript, не читайте эту статью и пишите на Python или JavaScript.
jre 1.8.0_241 jdk 1.8.0_241 Сообщество идей Intellij 2019.3.3 Все, что вы можете написать
При создании бота вам понадобится токен, так что подготовьте эту сторону
Выберите «Новое приложение» в поле «Приложения»
Введите имя приложения (допустимо любое, если его можно различить) в поле ИМЯ и создайте его.
Выберите бота в левом столбце и выберите Добавить бота
Значок имени пользователя Требуемые права доступа Измените настройки бота, например укажите, является ли он общедоступным
Наконец, выберите «Копировать из токена бота» и вставьте его в «Блокнот». ** Если этот токен просочится наружу, ботом можно будет злоупотреблять, поэтому будьте осторожны при обращении с ним ** Особенно при публикации исходного кода на GitHub и т. д., вам нужно поместить токен только тогда, когда вы используете его отдельно для свойств и т. д. .
Теперь открываем долгожданную кодировку Intellij
Легко писать в Maven или Gradle
Господь делает с Мейвеном
Пока я перепишу pom
На этот раз он начинается с пакетного файла, так что перепишите его так же, как создайте исполняемый файл jar с манифестом
Зависимой библиотекой может быть Discord4j или JDA, но обработка событий и т. д. — это буря лямбда-выражений и т. д. На этот раз я собираюсь использовать библиотеку под названием JavaCord, потому что зависимости раздражают.
На данный момент pom с зависимостями и т. д. выглядит следующим образом
pom.xml
Измените основные элементы и содержимое манифеста в соответствии с вашим проектом
Пакет src также подходит для этого
Наконец-то это главная тема
Какого бота делать зависит от человека, поэтому объясню только основы
Получить API
Получить API от JavaCord По сути, это похоже на взаимодействие с Discord с помощью этого
Используйте токен, который вы записали при создании бота. Если вы не публикуете исходный код, вы можете написать его прямо в классе
Если вы не измените уровень языка, вы, вероятно, получите красную черту. Alt + Enter решает эту проблему.
Обнаружение событий
Просто дайте API прослушиватель события, но в небольшом масштабе вы можете написать лямбду. Если вы считаете удобство сопровождения, вам следует создать еще один класс прослушивателя
MessageCreateListener может обнаруживать передачу сообщений, что является основой системы команд. Систему команд проще использовать, если сделать ее самостоятельно
В приведенном выше примере, если говорящий не является ботом, оператор повторяется. Он написан на лямбда-выражении, но то же самое верно и для MessageCreateListener.
Repeat.java
Это нормально, и с его помощью можно обнаружить все остальные события.
Отправить сообщение
Я уже написал это на мероприятии, но вы можете отправить его, получив канал, который хотите отправить, и используя sendMessage()
Честно говоря, если вы знаете обработку событий, вы можете пойти сами. Если вы не понимаете, вы можете решить все, прочитав JavaDoc в JavaCord.
Для голосовых и более сложных операций следует использовать Discord 4j или JDA. JavaCord, вероятно, не разрабатывается и не будет обновляться в будущем
Тогда зачем вы его использовали! Просто API был прост в использовании. Это тонкая статья, но спасибо, что прочитали
По состоянию на 21 июля 2020 г. домен Discord API недавно изменился. Я не уверен, что эту библиотеку нельзя использовать, возможно, ее можно получить из discord4j
Читайте также: