Как сделать логгер бота в дискорд

Обновлено: 07.07.2024

Начнём. Ссылка на мой 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

Image alt

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

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

Для начала вам нужно создать новый сервер в Discord (или получить права администратора на уже существующем). Откройте страницу вашей учетной записи Discord в браузере — так будет удобнее перемещаться между страницами настроек.

1. Нажмите на «+» на левой панели.

2. Выберите шаблон сервера в зависимости от вашей сферы или создайте собственный.

3. Укажите, для каких целей хотите его использовать.

4. Выберите изображение будущего сервера и укажите его название (1), затем нажмите Create. (2).

5. Сервер создан. По умолчанию в него уже добавлены два канала — текстовый и голосовой (1). Чтобы изменить настройки канала, нажмите значок шестеренки (2). Добавить новый канал можно, нажав на «+» рядом с названием раздела. Мы не будем создавать новый канал и для подключения нашего бота используем уже существующий канал general.

6. Теперь нужно получить ID выбранного канала. Для этого нужно сначала включить режим разработчика в настройках вашего профиля. Нажмите на значок шестеренки рядом с вашим никнеймом и фотографией.

7. Перейдите в раздел APP SETTINGS, на вкладку Advanced (1) и переместите селектор Developer mode — режим разработчика активируется (2).

8. Вернитесь из меню настроек и кликните по нужному каналу правой клавишей мыши (1), во всплывающем меню выберите Copy ID — идентификатор вашего канала будет скопирован (2). Сохраните его в любом текстовом документе, чтобы не возвращаться к этому шагу.

Создать бота и добавить его на сервер, скопировать токен бота

Сначала вам нужно создать приложение, затем в этом приложении создать бота и настроить для него разрешения, и только после этого — добавлять бота на сервер.

1. На вкладке Applications выберите New Application.

2. Введите название будущего приложения (1) и нажмите Create (2).

3. Приложение создано. Перейдите не вкладку Bot (1) и нажмите Add Bot, чтобы добавить нового бота.

4. Согласитесь добавить бота в ваше приложение.

5. Бот создан. На вкладке Bot отобразится вся информация о нем. Тут можно изменить его имя, добавить изображение и скопировать токен бота (1). Этот токен понадобится вам для настройки модуля Discord на платформе Appmaster.i. Каждый раз при внесении изменений портал разработчика будет предлагать вам сохранить их (2).

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

7. Вставьте скопированную ссылку в адресную строку браузера и перейдите по ней — откроется окошко вашего приложения. Выберите ваш сервер в раскрывающемся списке (1) и нажмите Continue (2).

8. Убедитесь, что приложению (а значит, и созданному в нем боту) даны только необходимые разрешения, после чего добавьте его на ваш сервер.

Через AppMaster.io Studio подключить бота в приложение

Подробнее о том, что такое модули и как их настраивать — в обучающем видеокурсе AppMaster.io 101.

Что делать если мне написали вот это:

как сделать так что бы он был в сети

Лучше скачай BDFD там запусти его за просмотр рекламы

Реклама = 2 часа
Капча = 30 минут

я вроде сделал все как надо, как узнать на какую команду, скажем так "откликается" бот?

Я сделал всё что было задано создал новый сервер вставил сыллку на приглашение вставлял айди канала ничего не даёт

Коротко: цифровой сервис для планирования путешествий по России

Выбор туров, маршрутов и экскурсий в одном месте, покупка авиа- и ж/д-билетов и бронирование столиков.

Поездка началась: как сервис по заказу такси DiDi вышел на рынки Мексики, Чили и Новой Зеландии

И почему этот опыт помог ему закрепиться в России.

Управляющая компания ГК INGRAD передала мои персональные данные сотрудникам Beeline, которые начали спам-атаку Современная жизнь человека - это лаборатория по проверке гипотез Монолог обоснования моего желания сменить профессию в 50 лет. Как вывести бизнес по перепродаже вещей на оборот в 2 млн рублей в месяц

Рассказывает руководитель проекта Svalka.

Как мы улучшили общение с пользователями и оптимизировали внутренние процессы работы службы поддержки

Вы можете нарушить нормы сообщества фейсбука. самим фактом своего существования

Честно говоря, частенько подтрунивала над vc и считала, что уж я то не буду сюда писать. Даже если столкнусь с очередной лажей, то буду разбираться с полицией там, с иными уполномоченными органами, а строчить в интернете . ну чего ты этим добьешься? Однако вот столкнулась. Началось все с моего дедушки. С того, что он захотел зарегистрироваться…


Пользователи часто спрашивают, как создать бота в Дискорде и тем самым получить программу с необходимыми функциями. Сразу отметим, что достижение такой цели — непростая задача, а реализовать ее можно несколькими способами, к примеру, на основе discord.js, на Python или с помощью программы Discord Bot Maker.

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

На практике API Discord представляет собой удобный инструмент, позволяющий создать, а впоследствии использовать бота. С его помощью легко разработать помощника для решения разных задач, а далее задать необходимый набор команд. Для примера рассмотрим общий алгоритм создания бота для музыки. При правильном подходе он сможет проигрывать, пропускать и останавливать музыкальные файлы. Кроме того, в его функции будет входить поддержка очереди на проигрывание мелодии.

Выполните следующие шаги:



  1. Введите название будущего бота Дискорд, к примеру, Music Bot.
  2. Перейдите на вкладку Bot, а после жмите на кнопку Add Bot.



Этих действий достаточно, чтобы создать бота Дискорд, после чего нужно его добавить на сервер с помощью OAuth2 URL-генератора. Сделайте следующие шаги:

  1. Переместитесь в раздел OAuth2 и выберите Bot в панели Scopes.


  1. Укажите необходимые разрешения для проигрывания музыки и чтения.
  2. Копируйте созданный URL и вставьте его в веб-проводник.
  3. Выберите сервер, куда нужно добавить URL.
  4. Жмите на кнопку авторизации (Authorize).



На следующем этапе нужно создать проект с применением терминала. Для этого создайте директорию и перейдите ее с помощью следующих команд — mkdir musicbot && cd musicbot. Далее сделайте следующее:

  1. Создайте модули проекта с применением nmp init.
  2. Ответьте на несколько вопросов, которые необходимы, чтобы создать бота в Дискорд.
  3. Сделайте два файла, где будет вестись работа — touch index.js && touch config.json.
  4. Откройте проект в редакторе, к примеру, с помощью VS Code с применением приказа code.
  5. Установите группу зависимостей, необходимых для дальнейшей работы — npm install discord.js ffmpeg-binaries opusscript ytdl-core –save.
  6. Продолжите создание файла на config.json. На этом этапе сохраните префикс и токен для бота.
  1. Войдите на портал создания Дискорд и копируйте токен из раздела Bot (жмите на кнопку Copy).

Теперь нужно создать код javascript. Для этого копируйте следующие зависимости:

const Discord = require(‘discord.js’);

const ytdl = require(‘ytdl-core’);

После этого нужно создать с применением токена клиент и логин.

const client = new Discord.Client();

Далее добавьте несколько listeners, которые выполняют console.log при пуске.

После этого начните работать с ботом Дискорд с применением node. Важно, чтобы вновь созданный Discord-бот был онлайн. В консоли появится Ready!. Команда — node index.js.

Задание команд для бота Дискорд

Теперь остается задать необходимые команды.

Чтобы Дискорд-бот мог читать, напишите функцию.

client.on(‘message’, async message =>

if (message.author.bot) return;

if (!message.content.startsWith(prefix)) return;

Далее проверьте команду, которую нужно активировать. Используйте следующие команды.

> else if (message.content.startsWith(`$skip`))

> else if (message.content.startsWith(`$stop`))

После получения списка команд, которые можно запустить, переходите к их созданию.

Добавление песен

Здесь нужна гильдия, песня и библиотека ytdl (должна быть установлена заранее). Сделайте map с названием очереди, где будут храниться песни.

const queue = new Map();

async function execute(message, serverQueue)

const args = message.content.split(‘ ‘);

const voiceChannel = message.member.voiceChannel;

if (!permissions.has(‘CONNECT’) || !permissions.has(‘SPEAK’))

Перейдите к получению данных о песне и сохраните ее в song. Для этого потребуется ytdl-библиотека, получающая данные по ютуб-ссылке.

const songInfo = await ytdl.getInfo(args[1]);

В раздел serverQueue, если он пустой, добавьте трек. В случае, когда serverQueue имеет параметр null, сделайте контракт.

// Creating the contract for our queue

// Setting the queue using our contract

// Pushing the song to our songs array

// Here we try to join the voicechat and save our connection into our object.

var connection = await voiceChannel.join();

// Calling the play function to start a song

// Printing the error message if the bot fails to join the voicechat

Проигрывание трека

Теперь нужно создать опцию play для бота Дискорд с параметрами гильдия и песня, а также проверкой объекта song.

function play(guild, song)

const serverQueue = queue.get(guild.id);

Если да, нужно уйти с голосового канала и удалить очередь.

Далее трек играет с применением URL и playStream.

const dispatcher = serverQueue.connection.playStream(ytdl(song.url))

// Deletes the finished song from the queue

// Calls the play function again with the next song

Здесь создается stream, а его URL передается адресу песни.

Пропуск трека

Здесь оформите завершение диспетчера, который был сделан в опции play. Такое действие необходимо, чтобы начал играть очередной трек.

function skip(message, serverQueue)

Здесь проверяется, есть ли пользователь в голосовом канале, и имеется ли трек для пропуска.

Остановка

Опция stop подразумевает очистку массива song, удаления очереди и выхода из чата.

Создаем бота для Discord

В этом ознакомительном HOWTO я расскажу, как можно немного занять себя на время карантина и сделать бота для своего Discord-сервера. Мы развернем NodeJS в Docker под Ubuntu 18.04 и запустим в нем бота с парочкой простых команд. В конце я оставлю ссылки на полезные источники информации, чтобы вы могли дальше развивать бота, наделяя его полезными функциями.

Программное обеспечение сервера, используемое в этом уроке:

  • Ubuntu 18.04
  • Docker 19.03.6
  • npm 6.14.5

В этой статье подразумевается, что вы обладаете навыками работы в командной строке Linux.

Первые шаги

New application

В появившемся окне нужно придумать имя своему приложению (будущему боту):

Бот Дискорд

После указания имени и создания приложения мы можем перейти к созданию бота. Для этого в левом меню выберите пункт “Bot” и нажмите на кнопку “Add Bot”.

Добавить бота в Discord

Последним шагом здесь будет копирование token по кнопке “Copy”. Держите в секрете ваш token и сохраните его куда-нибудь — он понадобится позже.

Токен Discord

Подготовка сервера

В качестве площадки для размещения бота я использую VDS под управлением операционной системы Ubuntu 18.04. Вы можете разместить бота и на других дистрибутивах, убедившись в том, что в них установлены нужные пакеты.

Команды для установки в Ubuntu 18.04:

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

Настройка Iptables для чайников

Как установить и настроить NTP на сервере

Создание основных файлов

Как я указал в начале статьи, мы будем использовать NodeJS для запуска бота. Дополнительно нам потребуются две библиотеки:

  • discord.js (основная библиотека для работы бота);
  • dotenv (будет использоваться для конфигурационного файла).

Создадим рабочую директорию проекта и файл package.json. В моем случае рабочая директория располагается в директории /home, но вы можете выбрать любую другую на свое усмотрение.

Примерный вид файла:

В нем мы указали имя будущего пакета (name), версию (version), описание (description), автора (author), основной файл (app.js) и список зависимостей (dependencies).

Запустим npm install и убедимся, что создался файл package-lock.json, который потом также будет скопирован в контейнер.

Теперь создадим файл самого бота app.js и запишем в него следующий код:

Учитывая, что здесь используется конфигурационный файл, создадим в рабочей директории .env и запишем в него:

Вместо “tokenbot” подставляется token бота, который был сохранен в начале статьи, а в качестве prefix указывается символ, после которого будут вводиться команды. Я выбрал в качестве префикса “!”, но вы можете выбрать другой удобный символ, если только он не используется самим Discord, как например “@” или “/”.

Создание Docker-контейнера

Теперь в рабочей директории нам нужно создать Dockerfile, который будет содержать инструкции для сборки образа, на основе которого будет запущен контейнер. В него мы запишем:

Создадим файл .dockerignore и запишем туда несколько локальных файлов, которые будут игнорироваться:

Соберем образ и запустим на его основе контейнер:

Вместо “authorname” можно ввести имя пользователя, от которого создается бот, и через “/” указать имя бота.

Проверим, что контейнер запустился, специальной командой:

Добавление бота на сервер

Бот запущен и работает в контейнере. Осталось только пригласить его на сервер и проверить его работу.

Для приглашения необходимо:

Выбор сервера для бота

Теперь мы можем проверить работу двух команд, созданных ранее:

Проверка команд бота

Заключение

В этой ознакомительной статье мы зарегистрировали новое приложение, создали бота, написали несколько простых команд, запустили контейнер и пригласили бота на сервер.

Далее бота можно развивать, наполняя его другими более сложными и полезными функциями. Для этого вам пригодятся знания JavaScript и следующие ссылки:

Надеюсь, этот материал будет полезен для всех, кто давно хочет создать собственного бота в Discord, но не знает, с чего начать.

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