Как создать бота в Discord

В статье мы расскажем о том, как создается приложение для бота, выполняется первая авторизация на сервере и пишется общий код для нормализации работы. Имея «каркас», вы уже можете добавлять пользовательские команды и сразу проверять, как они работают.

Создание приложения и авторизация бота

Далее речь пойдет о двух разных методах создания бота — при помощи JavaScript и Python. Каждый из них имеет свои особенности и нюансы, но вот метод создания приложения и авторизации бота на сервере остается одинаков, поскольку не зависит от выбранного языка программирования. После этого вы сможете перейти к подбору библиотеки и работе с кодом.

Перейти на Discord Developer Portal

  1. Перейдите по ссылке выше, чтобы оказаться на главной странице портала для разработчиков в Discord. Используйте личные авторизационные данные для входа в аккаунт.
  2. Авторизация на портале разработчиков для создания бота в Discord

  3. Создайте новое приложение, нажав кнопку «New Application».
  4. Переход к созданию нового приложения на портале разработчиков для создания бота в Discord

  5. Введите имя приложения и подтвердите его создание.
  6. Создание нового приложения на портале разработчиков для создания бота в Discord

  7. Разверните меню сайта, щелкнув по кнопке с тремя горизонтальными линиями.
  8. Открытие меню приложения на портале разработчиков для создания бота в Discord

  9. Из появившегося списка выберите раздел настроек «Bot».
  10. Переход в раздел Бот на портале разработчиков для создания бота в Discord

  11. Приступите к добавлению нового бота для данного приложения.
  12. Кнопка для создания бота в Discord на портале разработчиков

  13. Подтвердите отобразившееся уведомление, нажав «Yes, do it».
  14. Использование кнопки подтверждения для создания бота в Discord на портале разработчиков

  15. По завершении сайт обновится и откроется страница бота, где вы можете изменить его название, скопировать токен или добавить иконку, которая будет отображаться и в Дискорде.
  16. Основные параметры приложения для создания бота в Discord

  17. Однако сейчас бот еще не отмечен таковым и для него не установлены разрешения, поэтому через то же самое меню перейдите в раздел «OAuth2».
  18. Переход к выбору типа приложения для создания бота в Discord на портале разработчиков

  19. В списке «Scopes» отметьте галочкой «bot», обозначив тип созданного приложения.
  20. Выбор типа приложения для создания бота в Discord на портале разработчиков

  21. Найдите следующий блок — «Bot Permissions» и установите галочки напротив всех разрешений, которые вы хотите предоставить создаваемому боту.
  22. Выбор разрешений для создания бота в Discord на портале разработчиков

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

  25. Теперь бот готов для авторизации. На этой же странице найдите строку со ссылкой и скопируйте ее.
  26. Копирование ссылки для создания бота в Discord на портале разработчиков

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

    Подробнее: Создание сервера в Discord

  28. Авторизация для создания бота в Discord через портал разработчиков

  29. Ознакомьтесь со списком всех разрешений и нажмите на «Авторизовать».
  30. Принятие списка с правами для создания бота в Discord через портал разработчиков

  31. Осталось только подтвердить появившуюся на экране капчу.
  32. Подтверждение капчи для создания бота в Discord через портал разработчиков

  33. Откройте соответствующий сервер в Discord и убедитесь в том, что бот находится в списке участников. Пока что он еще офлайн, а запуск станет доступен после написания «тела» бота при помощи Python или JS, чем мы и займемся далее.
  34. Проверка списка участников в сети для создания бота в Discord через портал разработчиков

Выбор среды разработки

Перед началом работы с кодом в упомянутых языках программирования уточним, что вам понадобится установить текстовый редактор или специальную среду разработки, поддерживающую синтаксис Python или JavaScript (в зависимости от выбранного). Конечно, можно использовать просто «Блокнот», но по удобству он уступает специализированным программам. Просмотрите их списки в обзорах по следующим ссылкам и выберите для себя подходящий софт.

Подробнее:
Выбор среды разработки для программирования
Текстовые редакторы для Windows

Выбор среды разработки для создания бота в Discord

Вариант 1: Python и библиотека discord

Если ранее вы не сталкивались с языками программирования или знакомы с ними только поверхностно, создание бота для Discord на Python — лучший выбор. Этот ЯП проще учится, компактный и имеет логически понятный синтаксис, поэтому идеально подходит новичкам. К тому же в сети есть огромное количество исходников с различными командами или уже готовыми ботами, которые ничего не мешает скопировать и использовать в своих целях. В следующих шагах вы узнаете, как создать «каркас» бота на Python и запустить его, чтобы проверить работу.

Шаг 1: Установка Python и библиотеки discord

По умолчанию в Windows нет встроенных функций и утилит, предназначенных для работы с Питоном, поэтому их придется установить отдельно, не забыв про подключаемую библиотеку discord, которая позволит взаимодействовать с полезными функциями и командами, связанными исключительно с Дискордом.

Перейти на официальный сайт Python

  1. Воспользуйтесь ссылкой выше, чтобы перейти на официальный сайт Python и нажмите кнопку для загрузки его последней версии.
  2. Кнопка скачивания компонентов языка программирования для создания бота в Discord при помощи Python

  3. На новой странице отыщите инсталлятор для Windows и начните его загрузку.
  4. Выбор версии языка программирования для создания бота в Discord при помощи Python

  5. Дождитесь завершения скачивания и запустите установщик.
  6. Загрузка установочного файла компонентов языка программирования для создания бота в Discord при помощи Python

  7. Можно запустить установку без изменений, но обязательно отметьте галочкой «Add Python X.X to PATH», чтобы все переменные среды добавились автоматически и не возникло проблем при дальнейшем вводе команд.
  8. Кнопка установки компонентов языка программирования для создания бота в Discord при помощи Python

  9. Ожидайте завершения установки и на всякий случай перезагрузите компьютер, чтобы все изменения вступили в силу.
  10. Процесс установки компонентов языка программирования для создания бота в Discord при помощи Python

  11. Откройте «Командную строку» удобным для вас способом, например, отыскав приложение в меню «Пуск».
  12. Переход в Командную строку для установки библиотек ЯП для создания бота в Discord при помощи Python

  13. Напишите команду pip install discord и подтвердите ее нажатием клавиши Enter.
  14. Команда установки библиотек ЯП для создания бота в Discord при помощи Python

  15. Начнется загрузка файлов и в консоли «побегут» строки. Не закрывайте данное окно до завершения скачивания.
  16. Процесс установки библиотек ЯП для создания бота в Discord при помощи Python

  17. Как только появилась информация «Successfully installed», закрывайте «Командную строку» и переходите далее.
  18. Успешная установка компонентов ЯП для создания бота в Discord при помощи Python

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

Подробнее: Обновление PIP для Python

Шаг 2: Создание словаря бота

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

  1. Начните с запуска IDLE, отыскав добавленное приложение через меню «Пуск». Если вы скачали другую среду разработки, откройте ее и создайте новый проект на базе Python.
  2. Запуск среды разработки для создания бота в Discord при помощи Python

  3. После открытия нового окна вызовите меню «File» и выберите пункт «New File». Сделать это можно и при помощи комбинации клавиш Ctrl + N.
  4. Открытие нового файла в среде разработки для создания бота в Discord при помощи Python

  5. В новом окне, которое и предназначено для написания кода, вставьте блок

    settings = {
    'token': 'Ваш токен',
    'bot': 'Имя бота',
    'id': Client ID бота, без кавычек,
    'prefix': 'Префикс бота'
    }

  6. Вставка кода словаря для создания бота в Discord при помощи Python

  7. Теперь понадобится отыскать информацию для ее замены в словаре. Сначала найдите Client ID приложения на сайте разработчиков. Скопируйте его и замените в соответствующую строку.
  8. Копирование ИД на сайте приложения для создания бота в Discord при помощи Python

  9. Вызовите меню и перейдите в раздел «Bot».
  10. Переход к копированию токена для создания бота в Discord при помощи Python

  11. Скопируйте его уникальный токен, щелкнув по специально отведенной для этого кнопке.
  12. Копирование токена для создания бота в Discord при помощи Python

  13. Вставьте токен вместо надписи, сделайте то же самое с именем бота и используемым префиксом (префикс нужен для вызова команд и всегда идет перед ними, например !play, а вы можете заменить восклицательный знак на любые другие символы).
  14. Замена строк в файле словаря для создания бота в Discord при помощи Python

  15. Как только вся информация была заменена, снова вызовите меню «File» и выберите вариант «Save As».
  16. Переход к сохранению файла словаря для создания бота в Discord при помощи Python

  17. Создайте отдельную папку для файлов бота, назовите этот как config и подтвердите сохранение.
  18. Сохранение файла словаря для создания бота в Discord при помощи Python

Шаг 3: Создание тела бота

Для обеспечения базового функционирования бота ему нужно создать «тело» — основной код для запуска и работы на сервере. Понадобится отдельный файл, который можно назвать как угодно, но обязательно сохранить его в том же месте, где находится созданный ранее словарь.

  1. В среде разработки откройте меню «File» и создайте новый файл.
  2. Создание файла тела для создания бота в Discord при помощи Python

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

    import discord
    from discord.ext import commands
    from config import settings

  4. Импорт библиотек и словаря в файл тела для создания бота в Discord при помощи Python

  5. Добавьте строку bot = commands.Bot(command_prefix = settings['prefix']) # Так как мы указали префикс в settings, обращаемся к словарю с ключом prefix.
  6. Объявление бота в основном файле для создания бота в Discord при помощи Python

  7. Основной код таков:

    @bot.command() # Не передаём аргумент pass_context, так как он был нужен в старых версиях.
    async def hello(ctx): # Создаём функцию и передаём аргумент ctx.
    author = ctx.message.author # Объявляем переменную author и записываем туда информацию об авторе.

    await ctx.send(f'Hello, {author.mention}!') # Выводим сообщение с упоминанием автора, обращаясь к переменной author.

  8. Обращайте внимание на комментарии, идущие после знака «#» — они позволят разобраться с предназначением каждой строки.
  9. Добавление команд в основной файл для создания бота в Discord при помощи Python

  10. Команда для запуска выглядит так: bot.run(settings['token']) # Обращаемся к словарю settings с ключом token, для получения токена.
  11. Строка запуска приложения для создания бота в Discord при помощи Python

  12. По завершении снова откройте уже знакомое меню и перейдите к сохранению файла.
  13. Переход к сохранению основного файла для создания бота в Discord при помощи Python

  14. Задайте для него любое название и поместите в папку с конфигом.
  15. Сохранение основного файла для создания бота в Discord при помощи Python

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

Использование альтернативного кода для создания бота в Discord при помощи Python

import discord
from discord.ext import commands
from config import settings

bot = commands.Bot(command_prefix = settings['prefix'])

@bot.command() # Не передаём аргумент pass_context, так как он был нужен в старых версиях.
async def hello(ctx): # Создаём функцию и передаём аргумент ctx.
author = ctx.message.author # Объявляем переменную author и записываем туда информацию об авторе.
await ctx.send(f'Hello, {author.mention}!') # Выводим сообщение с упоминанием автора, обращаясь к переменной author.

bot.run(settings['token']) # Обращаемся к словарю settings с ключом token, для получения токена

Дополнительно уточним, что вы можете использовать альтернативную схему, избавившись от файла со словарем и получив немного другое «тело» для бота. Решите, подходит ли вам этот код больше. Указанные строки с токеном нужно будет отредактировать под себя.

import discord
from discord.ext import commands

TOKEN = 'Ваш токен'
bot = commands.Bot(command_prefix='!')

@bot.command(pass_context=True) # разрешаем передавать аргументы
async def test(ctx, arg): # создаем асинхронную функцию бота
await ctx.send(arg) # отправляем обратно аргумент

bot.run(TOKEN)

Шаг 4: Запуск бота

Теперь можно запустить бота для проверки, для чего понадобится созданный в Шаге 3 основной файл. Скомпилируйте его прямо через среду разработки или вызовите «Командную строку» и введите там python bot.py, где bot.py — название созданного файла. Если файл найти не удалось, укажите его полный путь, например python C:\Users\USER_NAME\bot.py.

Запуск основного файла для создания бота в Discord при помощи Python

Перейдите в Дискорд и проверьте текущее состояние бота. Он должен отображаться в списке участников в разделе «В сети» вместе с зеленой точкой.

Проверка статуса бота для создания в Discord после его создания при помощи Python

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

Вариант 2: JavaScript и discord.js

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

Шаг 1: Установка Node.js и discord.js

Расширить функциональность JS и превратить его в язык программирования общего назначения поможет платформа Node.js, установкой которой и рекомендуем заняться в первую очередь. Для этого выполните простейший алгоритм действий:

Перейти на официальный сайт Node.js

  1. Откройте страницу Node.js в интернете и выберите последнюю рекомендованную версию для скачивания.
  2. Кнопка скачивания расширенной платформы для создания бота в Discord при помощи JavaScript

  3. Дождитесь получения исполняемого файла и запустите его.
  4. Процесс загрузки расширенной платформы для создания бота в Discord при помощи JavaScript

  5. Следуйте появившимся на экране инструкциям, завершите установку и перезагрузите компьютер.
  6. Установка расширенной платформы для создания бота в Discord при помощи JavaScript

  7. Раскройте «Пуск» и через поиск отыщите классическое приложение «Командная строка».
  8. Переход в Командную строку для создания бота в Discord при помощи JavaScript

  9. В ней напишите команду npm init и активируйте ее нажатием Enter.
  10. Команда установки файлов пакетов для создания бота в Discord при помощи JavaScript

  11. Создайте стандартный пакет с пользовательской информацией, нажимая Enter после ввода каждого параметра, или оставьте все по умолчанию.
  12. Процесс установки файлов пакетов для создания бота в Discord при помощи JavaScript

  13. Когда все параметры пакета окажутся заданы, вы получите предупреждение, которое нужно подтвердить, снова нажав Enter.
  14. Успешная установка файлов пакетов для создания бота в Discord при помощи JavaScript

  15. Введите команду npm install для установки недостающих стандартных компонентов.
  16. Команда установки основных компонентов библиотек для создания бота в Discord при помощи JavaScript

  17. Дождитесь завершения их загрузки и появления строки ввода.
  18. Успешная установка компонентов библиотек для создания бота в Discord при помощи JavaScript

  19. Напишите npm install discord.js.
  20. Установка библиотеки для создания бота в Discord при помощи JavaScript

  21. Как только и эта команда выполнена, откройте папку своего пользователя и убедитесь в наличии созданных файлов пакета формата JSON.
  22. Проверка добавленных пакетов для создания бота в Discord при помощи JavaScript

Шаг 2: Работа с файлами бота

Все действия, связанные с файлами бота и программным кодом, рассмотрим в рамках одного этапа, поскольку делить их на несколько просто не имеет смысла. Вам понадобятся три основных файла, куда и вписываются все необходимые функции: один отвечает за конфигурацию бота, второй — за «тело», а третий хранит список добавленных команд.

  1. Для начала создайте файлы «bot.js» и «config.json» в одном каталоге.
  2. Создание основных файлов для создания бота в Discord при помощи JavaScript

  3. Откройте через текстовый редактор или среду разработки «config.json» и добавьте туда такие строки:

    {
    "token" : "Ваш_токен",
    "prefix" : "Ваш_префикс"
    }

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

  4. Редактирование конфигурационного файла для создания бота в Discord при помощи JavaScript

  5. Откройте для редактирования файл «bot.js» (кстати, его название может быть любым). Вставьте туда данный блок кода.

    const Discord = require('discord.js'); // Подключаем библиотеку discord.js
    const robot = new Discord.Client(); // Объявляем, что robot - бот
    const comms = require("./comms.js"); // Подключаем файл с командами для бота
    const fs = require('fs'); // Подключаем родной модуль файловой системы node.js
    let config = require('./config.json'); // Подключаем файл с параметрами и информацией
    let token = config.token; // «Вытаскиваем» из него токен
    let prefix = config.prefix; // «Вытаскиваем» из него префикс

    robot.on("ready", function() {
    /* При успешном запуске, в консоли появится сообщение «[Имя бота] запустился!» */
    console.log(robot.user.username + " запустился!");
    });

    robot.on('message', (msg) => { // Реагирование на сообщения
    if (msg.author.username != robot.user.username && msg.author.discriminator != robot.user.discriminator) {
    var comm = msg.content.trim() + " ";
    var comm_name = comm.slice(0, comm.indexOf(" "));
    var messArr = comm.split(" ");
    for (comm_count in comms.comms) {
    var comm2 = prefix + comms.comms[comm_count].name;
    if (comm2 == comm_name) {
    comms.comms[comm_count].out(robot, msg, messArr);
    }
    }
    }
    });

    robot.login(token); // Авторизация бота

    Читайте комментарии к строчкам, идущие после слэшей («//»), чтобы самостоятельно разобраться с предназначением каждой.

  6. Редактирование файла тела для создания бота в Discord при помощи JavaScript

  7. Создайте третий файл — «comms.js», в котором в будущем будут храниться все необходимые команды.
  8. Создание файла с командами для создания бота в Discord при помощи JavaScript

  9. В него вставьте основной блок, который в будущем будет расширяться:

    const config = require('./config.json'); // Подключаем файл с параметрами и информацией
    const Discord = require('discord.js'); // Подключаем библиотеку discord.js
    const prefix = config.prefix; // «Вытаскиваем» префикс

    // Команды //

    function test(robot, mess, args) {
    mess.channel.send('Test!')
    }

    // Список команд //

    var comms_list = [{
    name: "test",
    out: test,
    about: "Тестовая команда"
    }];

    // Name - название команды, на которую будет реагировать бот
    // Out - название функции с командой
    // About - описание команды

    module.exports.comms = comms_list;

  10. Редактирование файла с командами для создания бота в Discord при помощи JavaScript

Для дальнейшей работы с командами достаточно будет объявить их функции и пополнить список соответствующими блоками кода. На примере готовый файл «comms.js» выглядит так:

const config = require('./config.json');
const Discord = require('discord.js');
const prefix = config.prefix;
const versions = config.versions;

// Команды //

function test(robot, mess, args) {
mess.channel.send("Тест!")
}

function hello(robot, mess, args) {
mess.reply("Привет!")
}

// Список команд //

var comms_list = [{
name: "test",
out: test,
about: "Тестовая команда"
},
{
name: "hello",
out: hello,
about: "Команда для приветствия!"
}
}

module.exports.comms = comms_list;

Шаг 3: Запуск бота

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

  1. Откройте меню «Пуск» через поиск отыщите «Командную строку» и запустите ее.
  2. Переход к запуску приложения для создания бота в Discord при помощи JavaScript

  3. Введите node bot.js, где bot.js — название основного файла с кодом для бота. Если он находится не в вашей домашней папке, указывайте полный путь к файлу или сначала перейдите к расположению, используя команду cd.
  4. Запуск приложения для создания бота в Discord при помощи JavaScript через командную строку

Примеры полезных команд

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

const arggs = mess.content.split(' ').slice(1); // Все аргументы за именем команды с префиксом
const amount = arggs.join(' '); // Количество сообщений, которые должны быть удалены
if (!amount) return mess.channel.send('Вы не указали, сколько сообщений нужно удалить!'); // Проверка, задан ли параметр количества
if (isNaN(amount)) return mess.channel.send('Это не число!'); // Проверка, является ли числом ввод пользователя

if (amount > 100) return mess.channel.send('Вы не можете удалить 100 сообщений за раз'); // Проверка, является ли ввод пользователя числом больше 100
if (amount {
mess.channel.bulkDelete(messages)
mess.channel.send(`Удалено ${amount} сообщений!`)
})
};
delete_messages(); // Вызов асинхронной функции

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

mess.channel.send('Монета подбрасывается...')

var random = Math.floor(Math.random() * 4) + 1; // Объявление переменной random - она вычисляет случайное число от 1 до 3

if (random === 1) { // Если вычислено число 1, то выпадает орёл.
mess.channel.send(':full_moon: Орёл!')
} else if (random === 2) { // Если вычислено число 2, то выпадает решка.
mess.channel.send(':new_moon: Решка!')
} else if (random === 3) { // Если вычислено число 3, то монета падает ребром.
mess.channel.send(':last_quarter_moon: Монета упала ребром!')
}

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

Закрыть Мы рады, что смогли помочь Вам в решении проблемы.
Закрыть Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

ДА НЕТ

Поделиться статьей в социальных сетях:



Еще статьи по данной теме:


Задайте вопрос или оставьте свое мнение

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