Як створити бота в Discord

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

Створення Програми та авторизація бота

Далі мова піде про двох різних методах створення бота &8212; за допомогою JavaScript і Python. Кожен з них має свої особливості і нюанси, але ось метод створення Програми і авторизації бота на сервері залишається однаковий, оскільки не залежить від обраної мови програмування. Після цього ви зможете перейти до підбору бібліотеки і роботі з кодом.

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

  1. Перейдіть за посиланням вище, щоб опинитися на головній сторінці порталу для розробників в Discord . Використовуйте особисті авторизаційні дані для входу в аккаунт.
  2. Авторизация на портале разработчиков для создания бота в Discord
  3. Створіть новий додаток, натиснувши кнопку &171;New Application&187; .
  4. Переход к созданию нового приложения на портале разработчиков для создания бота в Discord
  5. Введіть назву програми та підтвердьте її створення.
  6. Создание нового приложения на портале разработчиков для создания бота в Discord
  7. Розгорніть меню сайту, клацнувши по кнопці з трьома горизонтальними лініями.
  8. Открытие меню приложения на портале разработчиков для создания бота в Discord
  9. Зі списку виберіть розділ налаштувань &171;Bot&187; .
  10. Переход в раздел Бот на портале разработчиков для создания бота в Discord
  11. Приступите до додавання нового бота для цього додатка.
  12. Кнопка для создания бота в Discord на портале разработчиков
  13. Підтвердьте відображене повідомлення, натиснувши &171;Yes, do it&187; .
  14. Использование кнопки подтверждения для создания бота в Discord на портале разработчиков
  15. По завершенні сайт оновиться і відкриється сторінка бота, де ви можете змінити його назву, скопіювати токен або додати іконку, яка буде відображатися і в Дискорді.
  16. Основные параметры приложения для создания бота в Discord
  17. Однак зараз бот ще не відзначений таким і для нього не встановлені дозволи, тому через те ж саме меню перейдіть в розділ &171;OAuth2&187; .
  18. Переход к выбору типа приложения для создания бота в Discord на портале разработчиков
  19. У списку &171;Scopes&187; позначте галочкою &171;bot&187; , позначивши тип створеного додатка.
  20. Выбор типа приложения для создания бота в Discord на портале разработчиков
  21. Знайдіть наступний блок &8212; &171;Bot Permissions&187; і встановіть галочки навпроти всіх дозволів, які ви хочете надати створюваному боту.
  22. Выбор разрешений для создания бота в Discord на портале разработчиков
  23. Те ж саме зробіть і з іншими типами дозволів, вони відповідають доступним безпосередньо в Discord для ролей.
  24. Выбор других разрешений для создания бота в Discord на портале разработчиков
  25. Тепер Бот готовий до авторизації. На цій же сторінці знайдіть рядок з посиланням і скопіюйте її.
  26. Копирование ссылки для создания бота в Discord на портале разработчиков
  27. Вставте в адресний рядок і перейдіть по ній. У формі, що з'явилася виберіть сервер для авторизації. Якщо у вас ще немає власного сервера, створіть його, а потім поверніться до процесу підключення бота.

    Детальніше: створення сервера в Discord

  28. Авторизация для создания бота в Discord через портал разработчиков
  29. Перегляньте список усіх дозволів і натисніть на & 171; авторизувати & 187; .
  30. Принятие списка с правами для создания бота в Discord через портал разработчиков
  31. Залишилося тільки підтвердити з'явилася на екрані капчу.
  32. Подтверждение капчи для создания бота в Discord через портал разработчиков
  33. Відкрийте відповідний сервер в Discord і переконайтеся в тому, що бот знаходиться в списку учасників. Поки що він ще офлайн, а запуск стане доступний після написання &171;тіла&187; бота за допомогою Python або JS, ніж ми і займемося далі.
  34. Проверка списка участников в сети для создания бота в Discord через портал разработчиков

Вибір середовища розробки

Перед початком роботи з кодом в згаданих мовах програмування уточнимо, що вам знадобиться встановити текстовий редактор або спеціальне середовище розробки, що підтримує синтаксис Python або JavaScript (в залежності від обраного). Звичайно, можна використовувати просто & 171; Блокнот & 187;, але за зручністю він поступається спеціалізованим програмам. Перегляньте їх списки в оглядах за наступними посиланнями і виберіть для себе відповідний софт.

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

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

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

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

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

За замовчуванням в Windows немає вбудованих функцій і утиліт, призначених для роботи з пітоном, тому їх доведеться встановити окремо, не забувши про підключається бібліотеку discord, яка дозволить взаємодіяти з корисними функціями і командами, пов'язаними виключно з Дискордом.

Перейдіть на офіційний веб-сайт Python

  1. Скористайтеся посиланням вище, щоб перейти на офіційний сайт Python і натисніть кнопку для завантаження його останньої версії.
  2. Кнопка скачивания компонентов языка программирования для создания бота в Discord при помощи Python
  3. На новій сторінці відшукайте інсталятор для Windows і почніть його завантаження.
  4. Выбор версии языка программирования для создания бота в Discord при помощи Python
  5. Дочекайтеся завершення завантаження та запустіть інсталятор.
  6. Загрузка установочного файла компонентов языка программирования для создания бота в Discord при помощи Python
  7. Можна запустити установку без змін, але обов'язково поставте галочку &171;Add Python X.X to PATH&187; , щоб всі змінні середовища додалися автоматично і не виникло проблем при подальшому введенні команд.
  8. Кнопка установки компонентов языка программирования для создания бота в Discord при помощи Python
  9. Очікуйте завершення встановлення та перезавантажте комп'ютер, щоб усі зміни набули чинності, про всяк випадок.
  10. Процесс установки компонентов языка программирования для создания бота в Discord при помощи Python
  11. Відкрийте &171;командний рядок&187; зручним для Вас способом, наприклад, відшукавши додаток в меню & 171; Пуск & 187; .
  12. Переход в Командную строку для установки библиотек ЯП для создания бота в Discord при помощи Python
  13. Напишіть команду pip install discord і підтвердьте її натисканням клавіші Enter .
  14. Команда установки библиотек ЯП для создания бота в Discord при помощи Python
  15. Почнеться завантаження файлів і в консолі &171;побіжать&187; рядки. Не закривайте це вікно до завершення скачування.
  16. Процесс установки библиотек ЯП для создания бота в Discord при помощи Python
  17. Як тільки з'явилася інформація &171;Successfully installed&187; , закривайте &171; командний рядок & 187; і переходьте далі.
  18. Успешная установка компонентов ЯП для создания бота в Discord при помощи Python

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

Детальніше: оновлення PIP для Python

Крок 2: Створення словника бота

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

  1. Почніть з запуску IDLE, відшукавши доданий додаток через меню & 171; Пуск & 187; . Якщо ви завантажили інше середовище розробки, відкрийте його та створіть новий проект на базі Python.
  2. Запуск среды разработки для создания бота в Discord при помощи Python
  3. Після відкриття нового вікна викличте меню &171;File&187; і виберіть пункт &171;New File&187; . Зробити це можна і за допомогою комбінації клавіш Ctrl + N .
  4. Открытие нового файла в среде разработки для создания бота в Discord при помощи Python
  5. У новому вікні, яке і призначене для написання коду, вставте блок

    Settings = {
    'token':'ваш токен',
    'bot':'Ім'я бота',
    'id' : client ID бота, без лапок,
    'prefix':'префікс бота'
    }

  6. Вставка кода словаря для создания бота в Discord при помощи Python
  7. Тепер знадобиться відшукати інформацію для її заміни в словнику. Спочатку знайдіть client ID програми на сайті розробників. Скопіюйте його та замініть у відповідний рядок.
  8. Копирование ИД на сайте приложения для создания бота в Discord при помощи Python
  9. Викличте меню і перейдіть в розділ &171;Bot&187; .
  10. Переход к копированию токена для создания бота в Discord при помощи Python
  11. Скопіюйте його унікальний токен, клацнувши по спеціально відведеній для цього кнопці.
  12. Копирование токена для создания бота в Discord при помощи Python
  13. Вставте маркер замість напису, зробіть те ж саме з іменем бота та використовуваним префіксом (префікс потрібен для виклику команд і завжди йде перед ними, наприклад !play , а ви можете замінити знак оклику на будь-які інші символи).
  14. Замена строк в файле словаря для создания бота в Discord при помощи Python
  15. Як тільки вся інформація була замінена, знову викличте меню &171;File&187; і виберіть варіант &171;Save As&187; .
  16. Переход к сохранению файла словаря для создания бота в Discord при помощи Python
  17. Створіть окрему папку для файлів бота, назвіть це як config і підтвердьте збереження.
  18. Сохранение файла словаря для создания бота в Discord при помощи Python

Крок 3: Створення тіла бота

Для забезпечення базового функціонування бота йому потрібно створити &171;тіло&187; &8212; основний код для запуску і роботи на сервері. Знадобиться окремий файл, який можна назвати як завгодно, але обов'язково зберегти його в тому ж місці, де знаходиться створений раніше словник.

  1. У середовищі розробки відкрийте меню &171;File&187; і створіть новий файл.
  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. Зверніть увагу на коментарі, що йдуть після знака &171;&187; &8212; вони дозволять розібратися з призначенням кожного рядка.
  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, для отримання токена

Додатково уточнимо, що ви можете використовувати альтернативну схему, позбувшись файлу зі словником і отримавши трохи інше &171;тіло&187; для бота. Вирішіть, чи підходить вам цей код більше. Зазначені рядки з токеном потрібно буде відредагувати під себе.

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 основний файл. Скомпілюйте його безпосередньо через середовище розробки або зателефонуйте &171;командний рядок&187; і введіть там python bot.py , де bot.py &8212; назва створеного файлу. Якщо файл знайти не вдалося, вкажіть його повний шлях, наприклад python C:\Users\USER_NAME\bot.py .

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

Перейдіть до Discord і Перевірте поточний стан бота. Він повинен відображатися у списку учасників у розділі &171; в мережі & 187; разом із зеленою крапкою.

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

Скористайтеся відкритими джерелами або власними знаннями, щоб написати команди для бота або реалізувати інші завдання, які він повинен виконувати. Для цього редагуйте його основний файл або створюйте інші, пов'язуючи все в єдиний проект.

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

Наступний варіант створення бота для Discord &8212; використання 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. Розкрийте & 171; Пуск & 187; і через пошук відшукайте класичне додаток &171;командний рядок&187; .
  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: Робота з файлами бота

Всі дії, пов'язані з файлами бота і програмним кодом, розглянемо в рамках одного етапу, оскільки ділити їх на кілька просто не має сенсу. Вам знадобляться три основних файли, куди і вписуються всі необхідні функції: один відповідає за конфігурацію бота, другий &8212; за &171;тіло&187;, а третій зберігає список доданих команд.

  1. Для початку створіть файли &171;bot.js&187; і &171;config.json&187; в одному каталозі.
  2. Создание основных файлов для создания бота в Discord при помощи JavaScript
  3. Відкрийте через текстовий редактор або середовище розробки &171;config.json&187; і додайте туди такі рядки:

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

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

  4. Редактирование конфигурационного файла для создания бота в Discord при помощи JavaScript
  5. Відкрийте для редагування файл &171;bot.js&187; (до речі, його назва може бути будь-яким). Вставте туди даний блок коду.

    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) = & gt; {//реагування на повідомлення
    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); / / Авторизація бота

    Читайте коментарі до рядків, що йдуть після слешів ( &171;//&187; ), щоб самостійно розібратися з призначенням кожної.

  6. Редактирование файла тела для создания бота в Discord при помощи JavaScript
  7. Створіть третій файл &8212; &171;comms.js&187; , в якому в майбутньому будуть зберігатися всі необхідні команди.
  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

Для подальшої роботи з командами досить буде оголосити їх функції і поповнити список відповідними блоками коду. На прикладі готовий файл &171;comms.js&187; виглядає так:

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. Відкрийте меню & 171; Пуск & 187; через пошук відшукайте &171;командний рядок&187; і запустіть її.
  2. Переход к запуску приложения для создания бота в Discord при помощи JavaScript
  3. Введіть node bot.js , де bot.js &8212; назва основного файлу з кодом для бота. Якщо він знаходиться не у вашій домашній папці, вказуйте повний шлях до файлу або спочатку перейдіть до розташування, використовуючи команду cd .
  4. Запуск приложения для создания бота в Discord при помощи JavaScript через командную строку

Приклади корисних команд

На завершення цього варіанту коротко розповімо про двох корисних командах, які можуть стати в нагоді при налаштуванні бота. Їх можна використовувати в якості тестових, коли робота над проектом ще знаходиться на стадії розвитку. Перша команда &8212; !clear &8212; видаляє вказану кількість повідомлень у чаті. Її код виглядає наступним чином:

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, щоб самостійно виправляти помилки або редагувати код під себе.

більше статей на цю тему: