Obsah:
V článku se dozvíte, jak se vytváří aplikace pro bota, provádí první autorizace na serveru a píše se společný kód pro normalizaci práce. Mít "kostru", můžete již přidávat uživatelské příkazy a ihned kontrolovat, jak fungují.
Vytvoření aplikace a autorizace bota
Dále se budeme zabývat dvěma různými metodami vytváření bota — pomocí JavaScriptu a Pythonu. Každá z nich má své specifika a nuance, ale metoda vytváření aplikace a autorizace bota na serveru zůstává stejná, protože nezávisí na zvoleném programovacím jazyce.Po tomto kroku budete moci přejít k výběru knihovny a práci s kódem.
Přejít na Discord Developer Portal
- Přejděte na odkaz výše, abyste se dostali na hlavní stránku portálu pro vývojáře v Discord. Použijte své osobní přihlašovací údaje pro přihlášení do účtu.
- Vytvořte novou aplikaci kliknutím na tlačítko "Nová aplikace".
- Zadejte název aplikace a potvrďte její vytvoření.
- Rozbalte menu webu kliknutím na tlačítko se třemi vodorovnými čarami.
- Zobrazí se seznam, ve kterém vyberte sekci nastavení "Bot".
- Začněte přidávat nového bota pro tuto aplikaci.
- Potvrďte zobrazenou notifikaci kliknutím na "Ano, udělej to".
- Po dokončení se stránka aktualizuje a otevře se stránka bota, kde můžete změnit jeho název, zkopírovat token nebo přidat ikonu, která se bude zobrazovat i v Discordu.
- Nicméně nyní bot ještě není označen jako takový a pro něj nejsou nastavena oprávnění, proto přejděte do sekce "OAuth2" prostřednictvím stejného menu.
- V seznamu "Scopes" zaškrtněte "bot", čímž označíte typ vytvořené aplikace.
- Najděte následující blok — "Bot Permissions" a zaškrtněte všechna oprávnění, která chcete poskytnout vytvářenému botu.
- Totéž udělejte i s ostatními typy oprávnění, které odpovídají dostupným přímo v Discordu pro role.
- Nyní je bot připraven k autorizaci. Na této stránce najděte řádek se odkazem a zkopírujte ho.
- Vložte do adresního řádku a přejděte na něj. V zobrazeném formuláři vyberte server pro autorizaci. Pokud ještě nemáte vlastní server, vytvořte ho a poté se vraťte k procesu připojení bota.
Podrobnosti: Vytvoření serveru v Discordu
- Seznamte se se seznamem všech oprávnění a klikněte na "Autorizovat".
- Zbývá pouze potvrdit captcha, která se objevila na obrazovce.
- Otevřete příslušný server v Discordu a ujistěte se, že bot je v seznamu účastníků. Zatím je ještě offline, a spuštění bude možné až po napsání "těla" bota pomocí Pythonu nebo JS, čemuž se budeme věnovat dále.

















Výběr vývojového prostředí
Před zahájením práce s kódem v uvedených programovacích jazycích si ujasníme, že budete potřebovat nainstalovat textový editor nebo speciální vývojové prostředí, které podporuje syntaxi Pythonu nebo JavaScriptu (v závislosti na výběru). Samozřejmě, můžete použít prostý "Poznámkový blok", ale co se týče pohodlí, zaostává za specializovanými programy.
Podrobnosti:
Výběr vývojového prostředí pro programování

Varianta 1: Python a knihovna discord
Pokud jste se dříve nesetkali s programovacími jazyky nebo je znáte pouze povrchně, vytvoření bota pro Discord v Pythonu je nejlepší volba. Tento programovací jazyk se snadněji učí, je kompaktní a má logicky srozumitelnou syntaxi, takže je ideální pro začátečníky. Navíc je na internetu obrovské množství zdrojových kódů s různými příkazy nebo již hotovými boty, které můžete snadno zkopírovat a použít pro své účely.V následujících krocích se dozvíte, jak vytvořit "kostru" bota v Pythonu a spustit ho, abyste ověřili jeho funkčnost.
Krok 1: Instalace Pythonu a knihovny discord
Ve Windows nejsou ve výchozím nastavení zabudované funkce a nástroje určené pro práci s Pythonem, proto je nutné je nainstalovat samostatně, nezapomeňte na knihovnu discord, která umožní interakci s užitečnými funkcemi a příkazy, které se týkají výhradně Discordu.
Přejít na oficiální stránky Pythonu
- Využijte výše uvedený odkaz, abyste přešli na oficiální stránky Pythonu a klikněte na tlačítko pro stažení jeho nejnovější verze.
- Na nové stránce najděte instalátor pro Windows a začněte jeho stahování.
- Počkejte na dokončení stahování a spusťte instalátor.
- Instalaci můžete spustit bez změn, ale nezapomeňte zaškrtnout "Add Python X.X to PATH", aby se všechny proměnné prostředí přidaly automaticky a nevznikly problémy při dalším zadávání příkazů.
- Očekávejte dokončení instalace a pro jistotu restartujte počítač, aby se všechny změny projevily.
- Otevřete "Příkazový řádek" způsobem, který vám vyhovuje, například vyhledáním aplikace v nabídce "Start".
- Napište příkaz
pip install discord
a potvrďte ho stisknutím klávesy Enter. - Začne stahování souborů a v konzoli "poběží" řádky. Nezavírejte toto okno, dokud se stahování nedokončí.
- Jakmile se objeví informace "Successfully installed", zavřete "Příkazový řádek" a pokračujte dále.









Pokud máte Python nainstalovaný, ale příkaz pro přidání knihovny nefunguje, proveďte aktualizaci komponenty PIP, o čemž se píše v jiném článku na našich stránkách.Tam najdete také instrukce pro změnu proměnných prostředí, pokud k tomu nedošlo během instalace.
Podrobnosti: Aktualizace PIP pro Python
Krok 2: Vytvoření slovníku bota
V této variantě budeme používat slovník pro bota, což je konfigurační soubor, který uchovává hodnoty tokenu, prefixu a jména bota pod různými názvy. To výrazně zjednodušuje celý proces psaní kódu a nevyžaduje, abyste si pokaždé pamatovali údaje aplikace, abyste je mohli zadat do jednoho řádku.
- Začněte spuštěním IDLE, vyhledejte přidanou aplikaci v nabídce "Start". Pokud jste stáhli jinou vývojovou prostředí, otevřete ji a vytvořte nový projekt na bázi Pythonu.
- Po otevření nového okna vyvolejte nabídku "File" a vyberte položku "New File". To lze provést také pomocí klávesové zkratky Ctrl + N.
- V novém okně, které je určeno pro psaní kódu, vložte blok
settings = {
'token': 'Váš token',
'bot': 'Jméno bota',
'id': Client ID bota, bez uvozovek,
'prefix': 'Prefix bota'
} - Nyní bude potřeba najít informace pro jejich nahrazení ve slovníku. Nejprve najděte Client ID aplikace na webu vývojářů. Zkopírujte ho a nahraďte v odpovídajícím řádku.
- Vyvolejte nabídku a přejděte do sekce "Bot".
- Zkopírujte jeho unikátní token kliknutím na speciálně určené tlačítko.
- Vložte token místo nápisu, udělejte to samé s jménem bota a používaným prefixem (prefix je potřebný pro vyvolání příkazů a vždy jde před nimi, například
!play
, a můžete nahradit vykřičník jakýmikoli jinými symboly). - Jakmile byly všechny informace nahrazeny, znovu vyvolejte nabídku "File" a vyberte možnost "Save As".
- Vytvořte samostatnou složku pro soubory bota, pojmenujte ji jako
config
a potvrďte uložení.









Krok 3: Vytvoření těla bota
Pro zajištění základního fungování bota je potřeba vytvořit "tělo" — hlavní kód pro spuštění a práci na serveru.Bude potřeba samostatný soubor, který můžete pojmenovat jakkoliv, ale je nutné ho uložit na stejné místo, kde se nachází dříve vytvořený slovník.
- V prostředí vývoje otevřete menu "Soubor" a vytvořte nový soubor.
- Vložte tam tři příkazy, které slouží k importu nainstalovaných knihoven a dříve vytvořeného souboru:
import discord
from discord.ext import commands
from config import settings - Přidejte řádek
bot = commands.Bot(command_prefix = settings['prefix']) # Protože jsme uvedli prefix v settings, odkazujeme na slovník s klíčem prefix
. - Hlavní kód vypadá takto:
@bot.command() # Nepředáváme argument pass_context, protože byl potřebný ve starších verzích.
async def hello(ctx): # Vytváříme funkci a předáváme argument ctx.
author = ctx.message.author # Deklarujeme proměnnou author a zapisujeme do ní informace o autorovi.await ctx.send(f'Ahoj, {author.mention}!') # Zobrazujeme zprávu s zmínkou autora, odkazujíc na proměnnou author.
- Věnujte pozornost komentářům, které následují za znakem "#" — ty vám pomohou pochopit účel každého řádku.
- Příkaz pro spuštění vypadá takto:
bot.run(settings['token']) # Odkazujeme na slovník settings s klíčem token, abychom získali token
. - Po dokončení znovu otevřete již známé menu a přejděte k uložení souboru.
- Zadejte pro něj libovolný název a umístěte ho do složky s konfigurací.







Dále vidíte kompletní kód, o kterém byla řeč výše, takže pokud bude potřeba, můžete ho jednoduše zkopírovat.

import discord
from discord.ext import commands
from config import settings
bot = commands.Bot(command_prefix = settings['prefix'])
@bot.command() # Nepředáváme argument pass_context, protože byl potřebný ve starších verzích.
async def hello(ctx): # Vytváříme funkci a předáváme argument ctx.
author = ctx.message.author # Deklarujeme proměnnou author a zapisujeme do ní informace o autorovi.
await ctx.send(f'Ahoj, {author.mention}!') # Zobrazujeme zprávu s zmínkou autora, odkazujíc na proměnnou author.
bot.run(settings['token']) # Odkazujeme na slovník settings s klíčem token, abychom získali token
Doplňkově upřesníme, že můžete použít alternativní schéma, zbavit se souboru se slovníkem a získat trochu jiné "tělo" pro bota.Rozhodněte, zda vám tento kód více vyhovuje. Uvedené řádky s tokenem je třeba upravit podle sebe.
import discord
from discord.ext import commands
TOKEN = 'Váš token'
bot = commands.Bot(command_prefix='!')
@bot.command(pass_context=True) # povolujeme předávat argumenty
async def test(ctx, arg): # vytváříme asynchronní funkci bota
await ctx.send(arg) # posíláme zpět argument
bot.run(TOKEN)
Krok 4: Spuštění bota
Nyní můžete spustit bota pro kontrolu, k čemuž budete potřebovat hlavní soubor vytvořený v Kroku 3. Sestavte ho přímo přes vývojové prostředí nebo vyvolejte "Příkazový řádek" a zadejte tam python bot.py
, kde bot.py je název vytvořeného souboru. Pokud se soubor nenajde, uveďte jeho úplnou cestu, například python C:UsersUSER_NAMEbot.py
.

Přejděte do Discordu a zkontrolujte aktuální stav bota. Měl by se zobrazovat v seznamu účastníků v sekci "Online" spolu se zeleným bodem.

Využijte otevřené zdroje nebo své vlastní znalosti k napsání příkazů pro bota nebo k realizaci dalších úkolů, které by měl vykonávat. K tomu upravujte jeho hlavní soubor nebo vytvářejte další, propojující vše do jednoho projektu.
Varianta 2: JavaScript a discord.js
Další možností vytvoření bota pro Discord je použití JS a připojovací knihovny discord.js, která přidává všechny potřebné komponenty pro práci s boty. Princip činnosti se liší od předchozí varianty pouze nástroji a rozdílem v syntaxi programovacích jazyků, ale zůstává přibližně stejný.
Krok 1: Instalace Node.js a discord.js
Rozšíření funkčnosti JS a přetvoření na jazyk programování obecného určení pomůže platforma Node.js, jejíž instalaci doporučujeme provést jako první.Pro tento účel proveďte nejjednodušší algoritmus kroků:
Přejít na oficiální stránku Node.js
- Otevřete stránku Node.js na internetu a vyberte poslední doporučenou verzi ke stažení.
- Počkejte na stažení spustitelného souboru a spusťte ho.
- Postupujte podle pokynů, které se objeví na obrazovce, dokončete instalaci a restartujte počítač.
- Otevřete "Start" a pomocí vyhledávání najděte klasickou aplikaci "Příkazový řádek".
- Do ní napište příkaz
npm init
a aktivujte ho stisknutím Enter. - Vytvořte standardní balíček s uživatelskými informacemi stisknutím Enter po zadání každého parametru, nebo ponechte vše jako výchozí.
- Jakmile budou všechny parametry balíčku nastaveny, obdržíte upozornění, které je třeba potvrdit opětovným stisknutím Enter.
- Zadejte příkaz
npm install
pro instalaci chybějících standardních komponentů. - Počkejte na dokončení jejich stahování a zobrazení vstupního řádku.
- Napište
npm install discord.js
. - Jakmile bude tento příkaz také proveden, otevřete složku svého uživatelského účtu a ujistěte se, že jsou vytvořeny soubory balíčku ve formátu JSON.











Krok 2: Práce se soubory bota
Všechny akce spojené se soubory bota a programovým kódem probereme v rámci jedné fáze, protože jejich dělení na několik částí nemá smysl.Budete potřebovat tři základní soubory, do kterých se zapisují všechny potřebné funkce: jeden odpovídá za konfiguraci bota, druhý — za "tělo", a třetí uchovává seznam přidaných příkazů.
- Nejprve vytvořte soubory "bot.js" a "config.json" ve stejném adresáři.
- Otevřete soubor "config.json" v textovém editoru nebo vývojovém prostředí a přidejte tam následující řádky:
{
"token" : "Váš_token",
"prefix" : "Váš_předpona"
}Odpovídajícím způsobem nahraďte výrazy v dvojitých uvozovkách unikátním tokenem bota a preferovanou předponou.
- Otevřete k úpravě soubor "bot.js" (mimochodem, jeho název může být libovolný). Vložte tam tento blok kódu.
const Discord = require('discord.js'); // Připojujeme knihovnu discord.js
const robot = new Discord.Client(); // Označujeme, že robot je bot
const comms = require("./comms.js"); // Připojujeme soubor s příkazy pro bota
const fs = require('fs'); // Připojujeme nativní modul souborového systému node.js
let config = require('./config.json'); // Připojujeme soubor s parametry a informacemi
let token = config.token; // "Vytahujeme" z něj token
let prefix = config.prefix; // "Vytahujeme" z něj prefixrobot.on("ready", function() {
/* Při úspěšném spuštění se v konzoli objeví zpráva "[Jméno bota] se spustil!" */
console.log(robot.user.username + " se spustil!");
});robot.on('message', (msg) => { // Reagování na zprávy
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); // Autorizace bota
Přečtěte si komentáře k řádkům, které následují po lomítkách ("//"), abyste se sami seznámili s účelem každého.
- Vytvořte třetí soubor — "comms.js", ve kterém budou v budoucnu uloženy všechny potřebné příkazy.
- Do něj vložte hlavní blok, který se v budoucnu rozšíří:
const config = require('./config.json'); // Připojujeme soubor s parametry a informacemi
const Discord = require('discord.js'); // Připojujeme knihovnu discord.js
const prefix = config.prefix; // "Vytahujeme" prefix// Příkazy //
function test(robot, mess, args) {
mess.channel.send('Test!')
}// Seznam příkazů //
var comms_list = [{
name: "test",
out: test,
about: "Testovací příkaz"
}];// Name - název příkazu, na který bude bot reagovat
// Out - název funkce s příkazem
// About - popis příkazumodule.exports.comms = comms_list;





Pro další práci s příkazy bude stačit vyhlásit jejich funkce a doplnit seznam odpovídajícími bloky kódu.Na příkladu hotového souboru "comms.js" vypadá takto:
const config = require('./config.json');
const Discord = require('discord.js');
const prefix = config.prefix;
const versions = config.versions;
// Příkazy //
function test(robot, mess, args) {
mess.channel.send("Test!")
}
function hello(robot, mess, args) {
mess.reply("Ahoj!")
}
// Seznam příkazů //
var comms_list = [{
name: "test",
out: test,
about: "Testovací příkaz"
},
{
name: "hello",
out: hello,
about: "Příkaz pro pozdrav!"
}
}
module.exports.comms = comms_list;
Krok 3: Spuštění bota
První kroky s botem v JavaScriptu jsou dokončeny, a proto ho můžete spustit a zkontrolovat jeho funkčnost. K tomu budete potřebovat provést následující:
- Otevřete nabídku "Start" a pomocí vyhledávání najděte "Příkazový řádek" a spusťte ho.
- Zadejte
node bot.js
, kde bot.js je název hlavního souboru s kódem pro bota. Pokud se nenachází ve vaší domovské složce, uveďte úplnou cestu k souboru nebo nejprve přejděte na umístění pomocí příkazucd
.


Příklady užitečných příkazů
Na závěr této varianty stručně představíme dva užitečné příkazy, které se mohou hodit při nastavování bota. Lze je použít jako testovací, když je práce na projektu ještě v rozvoji. První příkaz — !clear
— odstraňuje zadaný počet zpráv v chatu.Její kód vypadá takto:
const arggs = mess.content.split(' ').slice(1); // Všechny argumenty za názvem příkazu s prefixem
const amount = arggs.join(' '); // Počet zpráv, které mají být smazány
if (!amount) return mess.channel.send('Nezadali jste, kolik zpráv má být smazáno!'); // Kontrola, zda je parametr počtu zadán
if (isNaN(amount)) return mess.channel.send('To není číslo!'); // Kontrola, zda je vstup uživatele číslem
if (amount > 100) return mess.channel.send('Nemůžete smazat více než 100 zpráv najednou'); // Kontrola, zda je vstup uživatele číslem větším než 100
if (amount {
mess.channel.bulkDelete(messages)
mess.channel.send(`Smazáno ${amount} zpráv!`)
})
};
delete_messages(); // Volání asynchronní funkce
Druhý příkaz slouží k hodu mincí a spouští se zadáním !heads_or_tails
v chatu. Kód zde není tak složitý, protože je málo akcí a bot by měl reagovat pouze na jeden požadavek bez velkého množství proměnných.
mess.channel.send('Mince se hází...')
var random = Math.floor(Math.random() * 4) + 1; // Deklarace proměnné random - počítá náhodné číslo od 1 do 3
if (random === 1) { // Pokud bylo vygenerováno číslo 1, padá orel.
mess.channel.send(':full_moon: Orel!')
} else if (random === 2) { // Pokud bylo vygenerováno číslo 2, padá rub.
mess.channel.send(':new_moon: Rub!')
} else if (random === 3) { // Pokud bylo vygenerováno číslo 3, mince padá na hranu.
mess.channel.send(':last_quarter_moon: Mince spadla na hranu!')
}
Na internetu můžete najít další užitečné příkazy, které chcete zahrnout do svého bota, avšak pro práci s nimi budete potřebovat pokročilé znalosti v JavaScriptu nebo Pythonu, abyste mohli sami opravovat chyby nebo upravovat kód podle svých potřeb.