В статията ще разкажем как се създава приложение за бота, извършва се първата авторизация на сървъра и се пише общ код за нормализиране на работата. Имайки "каркас", вече можете да добавяте потребителски команди и веднага да проверявате как работят те.

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

Следва да се говори за два различни метода за създаване на бота — с помощта на 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. След завършване сайтът ще се обнови и ще се отвори страницата на бота, където можете да промените името му, да копирате токена или да добавите икона, която ще се показва и в Discord.
  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. Копиране на ИД на сайта на приложението за създаване на бот в 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('Тест!')
    }

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

    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, за да можете сами да коригирате грешки или да редактирате кода според себе си.