Присоединяйся к нашей реферальной системе и начни зарабатывать! Мы предлагаем выгодные условия для наших партнеров. Присоединиться
Позиций:
19 854

Создание Discord-бота: от регистрации до первого запуска

Дата создания статьи: 03.06.2025
Категория: Discord
Просмотров: 379

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

1. Создание приложения для бота. Перед тем как приступить к написанию кода, необходимо зарегистрировать приложение бота в Discord. Этот шаг является обязательным и не зависит от выбранного языка программирования — будь то JavaScript, Python или любой другой.

Инструкция:

1.1. Откройте браузер и перейдите на портал разработчиков Discord.

discord_bot

1.2.  Авторизуйтесь под своей учётной записью Discord. Если у вас ещё нет аккаунта, предварительно пройдите регистрацию.

1.3. На главной странице нажмите кнопку «New Application» (в правом верхнем углу).

discord_bot_1

1.4. Введите уникальное имя для вашего приложения (оно будет отображаться как имя бота) и нажмите «Create». Рекомендуем выбирать осмысленные названия, отражающие назначение бота.
discord_bot_2

2. Настройка бота

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

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

discord_bot_3

2.2. Выберите раздел «Bot».
discord_bot_4

2.3. На странице настроек бота нажмите кнопку «Add Bot».

discord_bot_5

2.4. Появится предупреждение о том, что это действие необратимо. Подтвердите его, нажав «Yes, do it!».
discord_bot_6

2.5. Теперь ваш бот создан. На этой странице вы можете:

  • изменить отображаемое имя бота (кнопка «Edit»);
  • скопировать токен (очень важная информация!);
  • загрузить аватарку (рекомендуемый размер 512x512 пикселей);
  • включить/отключить публичный статус бота.
    discord_bot_7

3. Настройка прав доступа

Для корректной работы боту нужно предоставить соответствующие права на сервере.

3.1. В левом меню выберите раздел «OAuth2», затем перейдите в подраздел «URL Generator».
discord_bot_8

3.2. В блоке «Scopes» отметьте галочкой пункт «bot». Это основные права, необходимые для работы бота.
discord_bot_9

3.3. В разделе «Bot Permissions» выберите разрешения, которые потребуются вашему боту. Для более продвинутых ботов могут потребоваться дополнительные права:


discord_bot_10

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

После настройки прав добавьте бота на ваш сервер.

4.1. В верхней части страницы «URL Generator» скопируйте сгенерированную ссылку-приглашение. Она будет содержать все выбранные вами разрешения.
discord_bot_11

4.2. Вставьте эту ссылку в адресную строку браузера и нажмите Enter. Откроется страница авторизации, где из выпадающего списка нужно выбрать сервер.
discord_bot_12

4.3. Внимательно проверьте список запрашиваемых прав. Если всё в порядке, нажмите «Авторизовать». Система может попросить подтвердить, что вы не робот.
discord_bot_13

5. Проверка подключения

После успешной авторизации бот появится на вашем сервере.

5.1. Откройте Discord и перейдите на сервер, куда добавляли бота. В списке участников справа вы должны увидеть своего бота. Пока он будет отображаться как «не в сети», но это нормально, так как мы ещё не написали код для его работы.
discord_bot_14

5.2. Обратите внимание на значок рядом с именем бота: синяя шестерёнка означает, что это приложение-бот. Также отображается список разрешений, которые вы предоставили.
discord_bot_15

Дополнительные рекомендации и советы

1. Безопасность токена: никогда не публикуйте токен бота в открытых репозиториях; храните токен в переменных окружения или в защищённых конфигурационных файлах; при случайной утечке немедленно сгенерируйте новый токен.

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

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

Перед началом программирования бота необходимо подготовить рабочую среду. Вам потребуется установить либо текстовый редактор с поддержкой синтаксиса выбранного языка, либо полноценную интегрированную среду разработки (IDE). Хотя теоретически можно писать код даже в Блокноте, специализированные инструменты предлагают для этого множество полезных функций: подсветку синтаксиса, автодополнение кода, встроенный терминал и отладчик, что значительно ускоряет и упрощает разработку.
discord_bot_16

Путь 1. Python и библиотека discord.py

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

  1. Простой и понятный синтаксис, близкий к естественному языку.
  2. Огромное сообщество и множество готовых решений.
  3. Богатая экосистема библиотек, включая discord.py.
  4. Кроссплатформенность (работает на Windows, macOS, Linux).
  5. Подробная документация и множество обучающих материалов.

Процедура 1: установка Python и библиотеки discord.py

1. Откройте браузер и перейдите на python.org. В верхнем меню выберите раздел «Downloads», где автоматически будет предложена последняя стабильная версия Python для вашей ОС. Нажмите желтую кнопку загрузки.
discord_bot_17

2. После перехода на страницу загрузки прокрутите вниз до раздела «Windows installer». Выберите 64-битную версию (Windows x86-64 executable installer).
   

3. Дождитесь окончания загрузки exe-файла. В зависимости от скорости интернета это может занять от нескольких секунд до пары минут. Не прерывайте процесс скачивания.
discord_bot_18

4. Запустите скачанный установщик. В первом окне обязательно активируйте чекбокс «Add Python X.X to PATH» (внизу экрана). 

discord_bot_19

5. Выберите «Install Now». Процесс займет 2-3 минуты. После завершения не забудьте перезагрузить систему для применения изменений.
discord_bot_20

6. Для проверки установки откройте командную строку через поиск в меню Пуск или комбинацией Win+R → cmd → OK. Убедитесь, что интерфейс командной строки открылся корректно.
discord_bot_21

7. Введите команду «pip install discord.py» (обратите внимание на .py в конце) и нажмите Enter. Начнется загрузка всех необходимых компонентов библиотеки.
discord_bot_22

8. В процессе установки в консоли будут последовательно появляться сообщения о скачивании пакетов. Дождитесь окончания операции и не закрывайте окно раньше времени.
discord_bot_23

9. Успешная установка подтвердится сообщением «Successfully installed discord.py-X.X.X». Теперь можно закрывать командную строку и переходить к написанию кода бота.
discord_bot_24

Если при установке возникают ошибки

  1. Проверьте подключение к интернету.
  2. Обновите pip командой: python -m pip install --upgrade pip.
  3. Убедитесь, что Python прописан в системных переменных PATH.
  4. Для проверки версии Python используйте команду: python –version.

Важно! Всегда устанавливайте последнюю стабильную версию Python. Для сложных проектов рекомендуем использовать виртуальные окружения. Библиотеку discord.py нужно периодически обновлять. При копировании команд обращайте внимание на точность их написания.

Процедура 2: создание для бота конфигурационного словаря

Использование словаря для хранения основных параметров бота – это профессиональный подход, который значительно упрощает дальнейшую разработку и сопровождение кода. Давайте детально разберём этот процесс.

1. Запустите среду разработки Python IDLE через меню «Пуск» (найдите в списке программ «IDLE»). Если вы используете другую IDE (PyCharm, VS Code и т.д.), откройте её и создайте новый Python-файл.
discord_bot_25

2. В основном окне IDLE перейдите в меню «File» → «New File» (или используйте горячие клавиши Ctrl+N) для создания нового файла с кодом.
discord_bot_26

3. В открывшемся редакторе создайте словарь settings с базовой конфигурацией:

settings = {

    'token': 'Ваш_токен_бота',

    'bot': 'Имя_бота',

    'id': 1234567890,  # Client ID вашего бота

    'prefix': '!'  # Префикс для команд

}

discord_bot_27

4. Для заполнения словаря актуальными данными перейдите в раздел «General Information» найдите «Client ID». Скопируйте числовое значение (без кавычек).
discord_bot_28

5. Для доступа к токену в левом меню портала разработчиков выберите раздел «Bot».
discord_bot_29

6. Нажмите кнопку «Copy» рядом с токеном бота (никому не сообщайте этот токен!).
discord_bot_30

7. Заполните словарь: вставьте скопированный токен вместо 'Ваш_токен_бота'; укажите желаемое имя бота (как он будет отображаться в Discord). Вставьте скопированный Client ID (только цифры). Задайте префикс команд (например, ! или ?)
discord_bot_31

8. Сохраните файл через меню «File» → «Save As» (Ctrl+Shift+S).
discord_bot_32

9. Создайте отдельную папку для проекта (например, «discord_bot») и сохраните файл под именем «config.py». Это сделает конфигурацию модульной и легко импортируемой.
discord_bot_33

Важно! Токен – это пароль вашего бота, храните его в безопасности. Client ID - уникальный числовой идентификатор приложения. Префикс может состоять из одного или нескольких символов. Для тестирования разрешено использовать временный токен (но потом замените на основной)

Дополнительные рекомендации

  1. Добавьте файл config.py в .gitignore, если используете Git.
  2. Для больших проектов можно разбить конфиг на несколько словарей.
  3. Регулярно делайте резервные копии конфигурации.
  4. Рассмотрите использование .env файлов для хранения чувствительных данных.

Процедура 3: разработка базового функционала Discord-бота

Создание работоспособного Discord-бота требует реализации его основной логики в виде исполняемого Python-скрипта. Рассмотрим пошаговый процесс разработки с подробными пояснениями.

  1. Подготовка рабочего окружения. Перед началом работы убедитесь, что у вас уже создан: конфигурационный файл settings.pу; установлены необходимые библиотеки (discord.py), а также создано приложение бота на портале Discord Developer.
  2. Создание основного файла бота. В вашей IDE (PyCharm, VS Code или другой) создайте новый Python-файл через меню «File» → «New File».
    discord_bot_34

В начало файла добавьте обязательные импорты:

import discord

from discord.ext import commands

from config import settings

Эти строки подключают основную библиотеку discord.py; модуль commands для работы с командами; наш конфигурационный файл.
discord_bot_35

  1. Инициализация объекта бота. Создайте экземпляр бота, используя префикс из настроек:

python

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

Основные моменты: command_prefix определяет символ для вызова команд; settings['prefix'] берет значение из конфига.

discord_bot_36

  1. Реализация первой команды. Создадим простую команду hello:

@bot.command()

async def hello(ctx):

    author = ctx.message.author

    await ctx.send(f'Приветствую, {author.mention}!')

Разберем детали:

  • @bot.command() - декоратор для создания команд;
  • async/await - асинхронное выполнение;
  • ctx - контекст вызова команды;
  • author.mention - упоминание пользователя.
    discord_bot_37
  1. Запуск бота. Добавьте завершающую строку:

bot.run(settings['token'])

Важно! Токен берется из конфигурации. Бот запускается в бесконечном цикле.
discord_bot_38

  1. Сохранение файла. Сохраните файл через меню «File» → «Save». Дайте понятное имя (например, bot.py). Убедитесь, что файл лежит в одной папке с settings.py.
    discord_bot_39
    discord_bot_40

Дополнительная реализация (без конфига):

Для простых ботов можно обойтись без отдельного конфига:

import discord

from discord.ext import commands

 

bot = commands.Bot(command_prefix='!')

 

@bot.command()

async def echo(ctx, message):

    await ctx.send(f'Вы сказали: {message}')

 

bot.run('ВАШ_ТОКЕН_ЗДЕСЬ')

Полный код основной версии:

import discord

from discord.ext import commands

from config import settings

 

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

 

@bot.command()

async def hello(ctx):

    author = ctx.message.author

    await ctx.send(f'Добро пожаловать, {author.mention}!')

 

bot.run(settings['token'])

discord_bot_41

Рекомендации по разработке

1. Организация кода. Используйте модульную структуру. Разделяйте команды по функционалу. Применяйте систему ког (cogs).

2. Безопасность. Никогда не публикуйте токен в открытом доступе. Используйте .gitignore (для конфигов). Регулярно обновляйте зависимости

3. Производительность. Оптимизируйте запросы к API. Используйте кэширование. Избегайте блокирующих операций

Дополнительные возможности

Для тех, кто хочет получить готовое решение, рекомендуем рассмотреть предложения на Retriv.Market. Здесь вы найдете:

1. Готовые боты: модерация (автоматические баны, предупреждения); музыка (воспроизведение с YouTube, Spotify); экономика (виртуальная валюта, магазины); игры (викторины, RPG-системы).

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

3. Для кого подойдет: владельцы крупных сообществ, организаторы игровых проектов, бизнес-сообщества.

Ознакомиться с полным каталогом можно по ссылке: https://retriv.market/category/discord

Процедура 4: запуск и тестирование работоспособности бота

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

Откройте среду разработки, в которой вы работали над созданием бота. Найдите основной файл с кодом (обычно это bot.py или main.py) и запустите его стандартным для вашей IDE способом. В популярных средах типа PyCharm или VS Code это делается через соответствующую кнопку в интерфейсе или сочетание горячих клавиш.

discord_bot_42

Дополнительный способ запуска: через командную строку операционной системы. Откройте терминал (cmd в Windows или терминал в Linux/Mac), перейдите в папку с файлом бота с помощью команды cd и выполните запуск командой python bot.py. Если система не находит файл, укажите полный путь к нему, например: python C:\Users\Username\bot_development\bot.py.

После успешного запуска перейдите в интерфейс Discord и найдите своего бота в списке участников сервера. О правильной работе будет свидетельствовать статус «В сети» и зеленая индикаторная точка рядом с аватаром бота. Это означает, что бот успешно подключился к серверу и готов к выполнению команд.

discord_bot_43

Для первичного тестирования функциональности используйте созданную ранее команду hello. Введите установленный префикс (например «!») и название команды в любом текстовом канале, где бот имеет права на отправку сообщений. В ответ вы должны получить персонализированное приветствие с упоминанием вашего аккаунта.

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

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

Путь 2. Создание Discord-бота на JavaScript с использованием discord.js

Для разработки Discord-бота на JavaScript потребуется установка дополнительного программного обеспечения. Основное отличие от Python-версии заключается в использовании платформы Node.js и библиотеки discord.js.

Процедура 1: установка необходимых компонентов

1. Первым делом необходимо загрузить и установить Node.js. Откройте официальный сайт nodejs.org и скачайте LTS-версию (рекомендуемую для большинства пользователей).
discord_bot_44

2. После завершения загрузки запустите установочный файл и следуйте инструкциям мастера установки.

discord_bot_45

3. Настоятельно рекомендуем перезагрузить компьютер после завершения процесса.

discord_bot_46

4. Откройте командную строку через меню «Пуск» или через сочетание клавиш Win+R и вводом cmd.
discord_bot_47

5. В командной строке выполните инициализацию нового проекта командой:

npm init

discord_bot_48

6. Заполните параметры проекта (можно оставить значения по умолчанию, нажимая Enter): название пакета (name), версия (version), описание (description), точка входа (entry point), тестовые команды (test command), Git-репозиторий (git repository), ключевые слова (keywords), автор (author), лицензия (license).

discord_bot_49

7. Подтвердите создание package.json, введя yes или просто нажав Enter.
discord_bot_50

Установка зависимостей

8. Установите базовые зависимости проекта командой:

npm install

discord_bot_51

9. Дождитесь завершения процесса установки. Индикатором успешного выполнения будет появление новой строки ввода в командной строке.
discord_bot_52

Установка discord.js

10. Добавьте в проект библиотеку discord.js, выполнив команду:

npm install discord.js

discord_bot_533

11. После установки проверьте наличие файла package.json в папке пользователя. Этот файл содержит все настройки вашего проекта.
discord_bot_54

Создание основного файла бота

  1. В папке проекта создайте новый файл с именем index.js (или другим, указанным при инициализации как entry point).
  2. Добавьте базовый код бота:

const Discord = require('discord.js');

const client = new Discord.Client();

 

client.on('ready', () => {

    console.log(`Бот ${client.user.tag} успешно запущен!`);

});

 

client.on('message', msg => {

    if (msg.content === '!ping') {

        msg.reply('Pong!');

    }

});

 

client.login('ВАШ_ТОКЕН_ЗДЕСЬ');

Запуск и тестирование

1. Запустите бота командой:

node index.js

2. Проверьте работу бота в Discord, отправив сообщение "!ping" в любой канал, где бот имеет права на отправку сообщений.

Важно! Для хранения токена используйте файл .env. Регулярно обновляйте зависимости (npm update). Используйте систему модулей для организации кода. Настройте обработку ошибок. Ведите журнал событий.

Процедура 2: разработка структуры Discord-бота на JavaScript

Создание файловой структуры проекта

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

Создайте новую папку для проекта и в ней разместите следующие файлы:

  • config.json - для хранения настроек;
  • bot.js - основной файл бота;
  • comms.js - файл с командами.
    discord_bot_55

Настройка конфигурационного файла

Откройте файл config.json в любом текстовом редакторе или IDE и добавьте базовые параметры:

{

  "token": "Ваш_токен",

  "prefix": "!"

}

Где «token» – уникальный идентификатор вашего бота, а «prefix» – символ для вызова команд.
discord_bot_56

Разработка основного файла бота

В файл bot.js добавьте следующий код:

const Discord = require('discord.js');

const robot = new Discord.Client();

const comms = require("./comms.js");

const fs = require('fs');

const config = require('./config.json');

 

const token = config.token;

const prefix = config.prefix;

 

robot.on("ready", () => {

  console.log(`${robot.user.username} успешно запущен!`);

});

 

robot.on('message', msg => {

  if (msg.author.bot) return;

 

  const content = msg.content.trim();

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

 

  const args = content.slice(prefix.length).trim().split(/ +/);

  const command = args.shift().toLowerCase();

 

  for (const comm of comms.comms) {

    if (command === comm.name) {

      comm.out(robot, msg, args);

      break;

    }

  }

});

 

robot.login(token);

discord_bot_57

 

Создание системы команд

Файл comms.js будет содержать все команды бота. Начните с базовой структуры:

const config = require('./config.json');

const Discord = require('discord.js');

const prefix = config.prefix;

 

// Команды

function test(robot, mess, args) {

  mess.channel.send('Тестовая команда выполнена!');

}

 

function hello(robot, mess, args) {

  mess.reply(`Приветствую, ${mess.author.username}!`);

}

 

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

const comms_list = [

  {

    name: "test",

    out: test,

    about: "Тестовая команда"

  },

  {

    name: "hello",

    out: hello,

    about: "Приветствие пользователя"

  }

];

 

module.exports.comms = comms_list;

discord_bot_58
discord_bot_59

Запуск и тестирование бота

После завершения настройки всех файлов можно приступать к тестированию:

Откройте командную строку (терминал) и перейдите в папку с проектом:

cd путь_к_папке_проекта

Запустите бота командой:

node bot.js

discord_bot_60
discord_bot_61

Дополнительные возможности и расширение функционала

Для добавления новых команд создайте новую функцию в comms.js. Добавьте ее в массив comms_list и перезапустите бота.

Пример добавления команды помощи:

function help(robot, mess, args) {

  let helpText = "Доступные команды:\n";

  comms_list.forEach(cmd => {

    helpText += `${prefix}${cmd.name} - ${cmd.about}\n`;

  });

  mess.channel.send(helpText);

}

 

// Добавить в comms_list

{

  name: "help",

  out: help,

  about: "Показать список команд"

}

Рекомендации по разработке

1. Безопасность. Никогда не публикуйте токен в открытых репозиториях. Используйте файл .env (для конфиденциальных данных). Ограничивайте права бота.

2. Организация кода. Разделяйте команды по категориям. Для разных функциональных блоков используйте отдельные файлы. Регулярно делайте бэкапы проекта.

3. Производительность. Оптимизируйте обработку сообщений. Используйте кэширование данных. Избегайте блокирующих операций.

После успешного запуска базовой версии можно расширить функционал: добавить систему уровней и опыта; реализовать экономическую систему, а также интеграцию с внешними API; создать панель управления и добавить музыкальные функции.

Реализация полезных команд для Discord-бота

Команда очистки чата (!clear)

Одна из наиболее востребованных функций для бота-модератора – возможность массового удаления сообщений. Рассмотрим реализацию команды !clear:

async function clear(robot, mess, args) {

    const amount = parseInt(args[0]); // Получаем количество сообщений для удаления;

   

    if (!amount) {

        return mess.channel.send('Укажите количество сообщений для удаления!');

    }

   

    if (isNaN(amount)) {

        return mess.channel.send('Параметр должен быть числом!');

    }

   

    if (amount > 100) {

        return mess.channel.send('Максимальное количество – 100 сообщений за раз');

    }

   

    if (amount < 1) {

        return mess.channel.send('Укажите число больше 0');

    }

 

    try {

        const fetched = await mess.channel.messages.fetch({ limit: amount });

        await mess.channel.bulkDelete(fetched);

        const reply = await mess.channel.send(`Удалено ${fetched.size} сообщений!`);

       

        // Автоматическое удаление уведомления через 5 секунд;

        setTimeout(() => reply.delete(), 5000);

    } catch (error) {

        console.error('Ошибка при удалении сообщений:', error);

        mess.channel.send('Произошла ошибка при удалении сообщений');

    }

}

Команда «Орел или решка» (!flip)

Для развлекательных целей реализуем простую игру-гадание:

function flip(robot, mess, args) {

    const results = [

        { text: ':full_moon: Выпал орёл!', prob: 49 },

        { text: ':new_moon: Выпала решка!', prob: 49 },

        { text: ':last_quarter_moon: Монета встала ребром!', prob: 2 }

    ];

   

    mess.channel.send('Подбрасываю монетку...').then(sentMsg => {

        setTimeout(() => {

            let total = 0;

            const random = Math.random() * 100;

           

            for (const result of results) {

                total += result.prob;

                if (random <= total) {

                    sentMsg.edit(result.text);

                    break;

                }

            }

        }, 1500); // Задержка для создания эффекта «подбрасывания»

    });

}

Улучшения по сравнению с базовой версией

  1. Реализована система вероятностей (2% шанс на "ребро").
  2. Добавлен визуальный эффект подбрасывания.
  3. Для наглядности использованы emoji.
  4. Оптимизирован код выбора результата.

Дополнительные рекомендации

1. Для модерационных команд: добавьте проверку прав пользователя; реализуйте логирование действий; добавьте подтверждение для массового удаления.

2. Для развлекательных команд: используйте богатые embed-сообщения; добавьте систему статистики; реализуйте кэширование результатов.

3. Общие советы: всегда проверяйте входные параметры; обрабатывайте возможные ошибки; оптимизируйте производительность; документируйте код.

Пример добавления команд в comms.js:

{

    name: "clear",

    out: clear,

    about: "Удаление сообщений (макс. 100)",

    permissions: "MANAGE_MESSAGES"

},

{

    name: "flip",

    out: flip,

    about: "Подбросить монетку"

}

Дальнейшее развитие

Эти команды можно расширить следующими способами.

1. Для !clear: добавить фильтрацию по пользователю; реализовать удаление по временному диапазону; создать систему подтверждения.

2. Для !flip: добавить ставки и экономическую систему; реализовать статистику подбрасываний; создать мультиплеерный режим.