У статті ми розповімо про те, як створюється додаток для бота, виконується перша авторизація на сервері та пишеться загальний код для нормалізації роботи. Маючи "каркас", ви вже можете додавати користувацькі команди та одразу перевіряти, як вони працюють.

Створення додатку та авторизація бота

Далі йтиметься про два різні методи створення бота — за допомогою 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 (в залежності від вибраного). Звичайно, можна використовувати просто "Блокнот", але за зручністю він поступається спеціалізованим програмам.

Докладніше:
Вибір середовища розробки для програмування

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

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

Якщо раніше ви не стикалися з мовами програмування або знайомі з ними лише поверхнево, створення бота для Discord на Python — найкращий вибір. Ця ЯП простіша для навчання, компактна і має логічно зрозумілий синтаксис, тому ідеально підходить новачкам. До того ж в мережі є величезна кількість вихідників з різними командами або вже готовими ботами, які нічого не заважає скопіювати і використовувати у своїх цілях.У наступних кроках ви дізнаєтеся, як створити "каркас" бота на Python і запустити його, щоб перевірити роботу.

Крок 1: Встановлення Python та бібліотеки discord

За замовчуванням у Windows немає вбудованих функцій і утиліт, призначених для роботи з Python, тому їх потрібно буде встановити окремо, не забувши про підключену бібліотеку discord, яка дозволить взаємодіяти з корисними функціями та командами, пов'язаними виключно з 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. Копіювання ID на сайті додатку для створення бота в 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:UsersUSER_NAMEbot.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, щоб самостійно виправляти помилки або редагувати код під себе.