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

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

Содержание

  • Создание приложения и авторизация бота
  • Выбор среды разработки
  • Вариант 1: Python и библиотека discord
    • Шаг 1: Установка Python и библиотеки discord
    • Шаг 2: Создание словаря бота
    • Шаг 3: Создание тела бота
    • Шаг 4: Запуск бота
  • Вариант 2: JavaScript и discord.js
    • Шаг 1: Установка Node.js и discord.js
    • Шаг 2: Работа с файлами бота
    • Шаг 3: Запуск бота
    • Примеры полезных команд
  • Вопросы и ответы

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

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

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

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

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

  • Создайте новое приложение, нажав кнопку «New Application».
  • Как создать бота в Discord

  • Введите имя приложения и подтвердите его создание.
  • Как создать бота в Discord

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

  • Из появившегося списка выберите раздел настроек «Bot».
  • Как создать бота в Discord

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

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

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

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

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

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

  • То же самое сделайте и с остальными типами разрешений, они соответствуют доступным непосредственно в Discord для ролей.
  • Как создать бота в Discord

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

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

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

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

  • Ознакомьтесь со списком всех разрешений и нажмите на «Авторизовать».
  • Как создать бота в Discord

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

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

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

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

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

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

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

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

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

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

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

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

  • На новой странице отыщите инсталлятор для Windows и начните его загрузку.
  • Как создать бота в Discord

  • Дождитесь завершения скачивания и запустите установщик.
  • Как создать бота в Discord

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

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

  • Откройте «Командную строку» удобным для вас способом, например, отыскав приложение в меню «Пуск».
  • Как создать бота в Discord

  • Напишите команду pip install discord и подтвердите ее нажатием клавиши Enter.
  • Как создать бота в Discord

  • Начнется загрузка файлов и в консоли «побегут» строки. Не закрывайте данное окно до завершения скачивания.
  • Как создать бота в Discord

  • Как только появилась информация «Successfully installed», закрывайте «Командную строку» и переходите далее.
  • Как создать бота в Discord

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

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

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

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

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

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

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

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

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

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

  • Вызовите меню и перейдите в раздел «Bot».
  • Как создать бота в Discord

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

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

  • Как только вся информация была заменена, снова вызовите меню «File» и выберите вариант «Save As».
  • Как создать бота в Discord

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

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

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

  • В среде разработки откройте меню «File» и создайте новый файл.
  • Как создать бота в Discord

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

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

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

  • Добавьте строку bot = commands.Bot(command_prefix = settings[‘prefix’]) # Так как мы указали префикс в settings, обращаемся к словарю с ключом prefix.
  • Как создать бота в Discord

  • Основной код таков:

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

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

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

  • Команда для запуска выглядит так: bot.run(settings[‘token’]) # Обращаемся к словарю settings с ключом token, для получения токена.
  • Как создать бота в Discord

  • По завершении снова откройте уже знакомое меню и перейдите к сохранению файла.
  • Как создать бота в Discord

  • Задайте для него любое название и поместите в папку с конфигом.
  • Как создать бота в Discord

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

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

    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:UsersUSER_NAMEbot.py.

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

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

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

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

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

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

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

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

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

  • Откройте страницу Node.js в интернете и выберите последнюю рекомендованную версию для скачивания.
  • Как создать бота в Discord

  • Дождитесь получения исполняемого файла и запустите его.
  • Как создать бота в Discord

  • Следуйте появившимся на экране инструкциям, завершите установку и перезагрузите компьютер.
  • Как создать бота в Discord

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

  • В ней напишите команду npm init и активируйте ее нажатием Enter.
  • Как создать бота в Discord

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

  • Когда все параметры пакета окажутся заданы, вы получите предупреждение, которое нужно подтвердить, снова нажав Enter.
  • Как создать бота в Discord

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

  • Дождитесь завершения их загрузки и появления строки ввода.
  • Как создать бота в Discord

  • Напишите npm install discord.js.
  • Как создать бота в Discord

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

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

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

  • Для начала создайте файлы «bot.js» и «config.json» в одном каталоге.
  • Как создать бота в Discord

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

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

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

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

  • Откройте для редактирования файл «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); // Авторизация бота

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

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

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

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

    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;

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

    Для дальнейшей работы с командами достаточно будет объявить их функции и пополнить список соответствующими блоками кода. На примере готовый файл «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 завершены, а значит, можно запустить его и проверить работу. Для этого вам понадобится выполнить следующее:

  • Откройте меню «Пуск» через поиск отыщите «Командную строку» и запустите ее.
  • Как создать бота в Discord

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

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

    В завершение этого варианта вкратце расскажем о двух полезных командах, которые могут пригодиться при настройке бота. Их можно использовать в качестве тестовых, когда работа над проектом еще находится на стадии развития. Первая команда — !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, чтобы самостоятельно исправлять ошибки или редактировать код под себя.

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

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