Sadržaj:
U članku ćemo govoriti o tome kako se kreira aplikacija za bota, vrši prva autorizacija na serveru i piše zajednički kod za normalizaciju rada. Imajući "kostur", već možete dodavati korisničke komande i odmah proveravati kako one funkcionišu.
Kreiranje aplikacije i autorizacija bota
Dalje će biti reči o dve različite metode kreiranja bota — pomoću JavaScript-a i Pythona. Svaka od njih ima svoje osobine i nijanse, ali metoda kreiranja aplikacije i autorizacije bota na serveru ostaje ista, jer ne zavisi od odabranog programskog jezika.Наконец, можете preći na izbor biblioteke i rad sa kodom.
Pređite na Discord Developer Portal
- Pređite na link iznad da biste došli na glavnu stranicu portala za programere u Discord. Koristite lične autorizacione podatke za prijavu na nalog.
- Kreirajte novu aplikaciju klikom na dugme "Nova aplikacija".
- Unesite ime aplikacije i potvrdite njeno kreiranje.
- Proširite meni sajta klikom na dugme sa tri horizontalne linije.
- Iz pojavljenog spiska izaberite odeljak podešavanja "Bot".
- Započnite dodavanje novog bota za ovu aplikaciju.
- Potvrdite prikazanu obaveštenje klikom na "Da, uradite to".
- Kada završite, sajt će se osvežiti i otvoriti stranicu bota, gde možete promeniti njegovo ime, kopirati token ili dodati ikonu koja će se prikazivati i na Discordu.
- Međutim, trenutno bot još nije označen kao takav i za njega nisu postavljene dozvole, pa kroz isto to meni pređite u odeljak "OAuth2".
- U spisku "Scopes" označite kvačicom "bot", označavajući tip kreirane aplikacije.
- Pronađite sledeći blok — "Bot Permissions" i postavite kvačice pored svih dozvola koje želite da dodelite kreiranom botu.
- Isto to uradite i sa ostalim tipovima dozvola, one odgovaraju dostupnim direktno u Discordu za uloge.
- Sada je bot spreman za autorizaciju. Na istoj stranici pronađite red sa linkom i kopirajte ga.
- Zalepite u adresnu traku i pređite na njega. U pojavljenom obrascu izaberite server za autorizaciju. Ako još nemate svoj server, kreirajte ga, a zatim se vratite procesu povezivanja bota.
Detaljnije: Kreiranje servera na Discordu
- Upoznajte se sa spiskom svih dozvola i kliknite na "Autorizovati".
- Preostaje samo da potvrdite captcha koja se pojavila na ekranu.
- Otvorite odgovarajući server na Discordu i uverite se da je bot na spisku članova. Za sada je još uvek offline, a pokretanje će biti dostupno nakon što napišemo "telo" bota pomoću Pythona ili JS, čime ćemo se dalje baviti.

















Izbor razvojne sredine
Pre nego što počnemo sa radom na kodu u pomenutim programskim jezicima, napominjemo da će vam biti potrebno da instalirate tekstualni editor ili specijalizovanu razvojnu sredinu koja podržava sintaksu Pythona ili JavaScript-a (u zavisnosti od izbora). Naravno, možete koristiti jednostavno "Notepad", ali po udobnosti on zaostaje za specijalizovanim programima.
Detaljnije:
Izbor razvojne sredine za programiranje

Opcija 1: Python i biblioteka discord
Ako se ranije niste susretali sa programskim jezicima ili ih poznajete samo površno, kreiranje bota za Discord na Pythonu je najbolji izbor. Ovaj programski jezik je lakši za učenje, kompaktan i ima logički razumljivu sintaksu, što ga čini idealnim za početnike. Pored toga, na mreži postoji ogroman broj izvora sa raznim komandama ili već gotovim botovima koje možete slobodno kopirati i koristiti u svoje svrhe.U sledećim koracima saznaćete kako da kreirate "okvir" bota na Python-u i pokrenete ga da proverite rad.
Korak 1: Instalacija Python-a i biblioteke discord
Podrazumevano, Windows nema ugrađene funkcije i alate za rad sa Pythonom, pa ih je potrebno instalirati odvojeno, ne zaboravljajući na biblioteku discord koja omogućava interakciju sa korisnim funkcijama i komandama vezanim isključivo za Discord.
Pređite na zvanični sajt Python-a
- Iskoristite link iznad da pređete na zvanični sajt Python-a i kliknite na dugme za preuzimanje njegove najnovije verzije.
- Na novoj stranici pronađite instalator za Windows i započnite njegovo preuzimanje.
- Sačekajte da se preuzimanje završi i pokrenite instalater.
- Možete pokrenuti instalaciju bez izmena, ali obavezno označite opciju "Add Python X.X to PATH", kako bi sve promenljive okruženja bile automatski dodate i da ne bi došlo do problema prilikom daljeg unosa komandi.
- Sačekajte da se instalacija završi i, za svaki slučaj, restartujte računar da bi sve promene stupile na snagu.
- Otvorite "Komandnu liniju" na način koji vam odgovara, na primer, pronalaženjem aplikacije u meniju "Start".
- Upišite komandu
pip install discord
i potvrdite je pritiskom na taster Enter. - Počeće preuzimanje fajlova i u konzoli će se prikazivati linije. Ne zatvarajte ovo okno dok se preuzimanje ne završi.
- Kada se pojavi informacija "Successfully installed", zatvorite "Komandnu liniju" i pređite dalje.









Ako je Python instaliran, ali komanda za dodavanje biblioteke ne radi, izvršite ažuriranje PIP-a, o čemu se govori u drugom članku na našem sajtu.Тамо ћете наћи упутство и за промену променљивих окружења, ако то није учињено током инсталације.
Детаљније: Ажурирање PIP за Python
Корак 2: Креирање речника бота
У овој верзији ћемо користити речник за бота, односно конфигурациони фајл који чува вредности токена, префикса и имена бота под различитим именима. То значајно поједностављује цео процес писања кода и не приморава вас да сваког пута памтите податке апликације како бисте их унели у једној линији.
- Почните покретањем IDLE-а, пронађите додату апликацију преко менија "Почетак". Ако сте преузели другу развојну средину, отворите је и креирајте нови пројекат на бази Python-а.
- Након отварања новог прозора, позовите мени "File" и изаберите опцију "New File". То можете учинити и помоћу комбинације тастера Ctrl + N.
- У новом прозору, који је намењен за писање кода, уметните блок
settings = {
'token': 'Ваш токен',
'bot': 'Име бота',
'id': Client ID бота, без наводника,
'prefix': 'Префикс бота'
} - Сада ће бити потребно пронаћи информације за замену у речнику. Прво пронађите Client ID апликације на сајту програмера. Копирајте га и замените у одговарајућој линији.
- Позовите мени и пређите у секцију "Bot".
- Копирајте његов јединствени токен, кликом на посебно предвиђену за то дугме.
- Уметните токен уместо натписа, учините исто са именом бота и коришћеним префиксом (префикс је потребан за позивање команди и увек иде испред њих, на пример
!play
, а можете заменити узвичник било којим другим симболима). - Када су све информације замењене, поново позовите мени "File" и изаберите опцију "Save As".
- Креирајте посебну фасциклу за фајлове бота, назовите је
config
и потврдите чување.









Корак 3: Креирање тела бота
За основно функционисање бота потребно је креирати "тело" — основни код за покретање и рад на серверу.Biće potreban poseban fajl, koji možete nazvati kako god želite, ali ga obavezno sačuvajte na istom mestu gde se nalazi ranije kreirani rečnik.
- U razvojnog okruženju otvorite meni "File" i kreirajte novi fajl.
- Umetnite tamo tri komande koje su namenjene za uvoz instaliranih biblioteka i ranije kreiranog fajla:
import discord
from discord.ext import commands
from config import settings - Dodajte red
bot = commands.Bot(command_prefix = settings['prefix']) # Pošto smo naveli prefiks u settings, obraćamo se rečniku sa ključem prefix
. - Osnovni kod je sledeći:
@bot.command() # Ne prosleđujemo argument pass_context, jer je bio potreban u starijim verzijama.
async def hello(ctx): # Kreiramo funkciju i prosleđujemo argument ctx.
author = ctx.message.author # Deklariramo promenljivu author i upisujemo u nju informacije o autoru.await ctx.send(f'Hello, {author.mention}!') # Ispisujemo poruku sa pominjanjem autora, obraćajući se promenljivoj author.
- Obratite pažnju na komentare koji se nalaze posle znaka "#" — oni će vam pomoći da razumete svrhu svake linije.
- Komanda za pokretanje izgleda ovako:
bot.run(settings['token']) # Obraćamo se rečniku settings sa ključem token, da bismo dobili token
. - Po završetku ponovo otvorite već poznati meni i pređite na čuvanje fajla.
- Dajte mu bilo koje ime i smestite ga u folder sa konfiguracijom.







Dalje, vidite kompletan kod o kojem je reč, pa ga po potrebi jednostavno možete kopirati.

import discord
from discord.ext import commands
from config import settings
bot = commands.Bot(command_prefix = settings['prefix'])
@bot.command() # Ne prosleđujemo argument pass_context, jer je bio potreban u starijim verzijama.
async def hello(ctx): # Kreiramo funkciju i prosleđujemo argument ctx.
author = ctx.message.author # Deklariramo promenljivu author i upisujemo u nju informacije o autoru.
await ctx.send(f'Hello, {author.mention}!') # Ispisujemo poruku sa pominjanjem autora, obraćajući se promenljivoj author.
bot.run(settings['token']) # Obraćamo se rečniku settings sa ključem token, da bismo dobili token
Dodatno, napominjemo da možete koristiti alternativnu shemu, oslobodivši se fajla sa rečnikom i dobijajući malo drugačije "telo" za bota.Rešite, da li vam ovaj kod više odgovara. Navedene linije sa tokenom treba da uredite prema sebi.
import discord
from discord.ext import commands
TOKEN = 'Vaš token'
bot = commands.Bot(command_prefix='!')
@bot.command(pass_context=True) # dozvoljavamo prosleđivanje argumenata
async def test(ctx, arg): # kreiramo asinhronu funkciju bota
await ctx.send(arg) # šaljemo nazad argument
bot.run(TOKEN)
Korak 4: Pokretanje bota
Sada možete pokrenuti bota za proveru, za šta će vam biti potreban glavni fajl kreiran u Koraku 3. Kompajlirajte ga direktno kroz razvojno okruženje ili pozovite "Komandnu liniju" i unesite python bot.py
, gde je bot.py — naziv kreiranog fajla. Ako fajl nije pronađen, navedite njegovu punu putanju, na primer python C:UsersUSER_NAMEbot.py
.

Pređite na Discord i proverite trenutno stanje bota. Trebalo bi da se prikazuje na listi članova u odeljku "Online" zajedno sa zelenom tačkom.

Iskoristite otvorene izvore ili svoja znanja da napišete komande za bota ili realizujete druge zadatke koje treba da izvršava. Za to uredite njegov glavni fajl ili kreirajte druge, povezujući sve u jedinstven projekat.
Opcija 2: JavaScript i discord.js
Sledeća opcija za kreiranje bota za Discord je korišćenje JS i biblioteke discord.js, koja dodaje sve potrebne komponente za rad sa botovima. Princip rada se razlikuje od prethodne opcije samo po alatima i razlici u sintaksama programskih jezika, ali ostaje otprilike isti.
Korak 1: Instalacija Node.js i discord.js
Proširite funkcionalnost JS i pretvorite ga u jezik opšte namene pomoću platforme Node.js, čijom instalacijom preporučujemo da se prvo pozabavite.Za to izvršite najjednostavniji algoritam radnji:
Pređite na zvaničnu stranicu Node.js
- Otvorite stranicu Node.js na internetu i izaberite najnoviju preporučenu verziju za preuzimanje.
- Sačekajte da dobijete izvršni fajl i pokrenite ga.
- Pratite uputstva koja se pojave na ekranu, završite instalaciju i restartujte računar.
- Otvorite "Start" i putem pretrage pronađite klasičnu aplikaciju "Komandna linija".
- U njoj napišite komandu
npm init
i aktivirajte je pritiskom na Enter. - Kreirajte standardni paket sa korisničkim informacijama, pritiskajući Enter nakon unosa svakog parametra, ili ostavite sve po defaultu.
- Kada svi parametri paketa budu postavljeni, dobićete upozorenje koje treba potvrditi ponovnim pritiskom na Enter.
- Unesite komandu
npm install
za instalaciju nedostajućih standardnih komponenti. - Sačekajte da se njihovo preuzimanje završi i da se pojavi linija za unos.
- Napišite
npm install discord.js
. - Kada se i ova komanda izvrši, otvorite folder svog korisnika i proverite da li su kreirani fajlovi paketa u JSON formatu.











Korak 2: Rad sa fajlovima bota
Sve radnje vezane za fajlove bota i programski kod razmotrićemo u okviru jedne faze, jer ih deliti na više jednostavno nema smisla.Biće vam potrebna tri osnovna fajla, u koje se upisuju sve potrebne funkcije: jedan odgovara za konfiguraciju bota, drugi — za "telo", a treći čuva spisak dodatih komandi.
- Za početak, kreirajte fajlove "bot.js" i "config.json" u istom direktorijumu.
- Otvorite kroz tekst editor ili razvojno okruženje "config.json" i dodajte tamo sledeće redove:
{
"token" : "Vaš_token",
"prefix" : "Vaš_prefiks"
}Shodno tome, izraze u dvostrukim navodnicima zamenite jedinstvenim tokenom bota i preferiranim prefiksom.
- Otvorite za uređivanje fajl "bot.js" (usput, njegovo ime može biti bilo koje). Umetnite tamo ovaj blok koda.
const Discord = require('discord.js'); // Пovezujemo biblioteku discord.js
const robot = new Discord.Client(); // Objavljujemo da je robot - bot
const comms = require("./comms.js"); // Povezujemo fajl sa komandama za bota
const fs = require('fs'); // Povezujemo ugrađeni modul za rad sa datotekama node.js
let config = require('./config.json'); // Povezujemo fajl sa parametrima i informacijama
let token = config.token; // "Izvlačimo" iz njega token
let prefix = config.prefix; // "Izvlačimo" iz njega prefiksrobot.on("ready", function() {
/* Kada se uspešno pokrene, u konzoli će se pojaviti poruka "[Ime bota] je pokrenut!" */
console.log(robot.user.username + " je pokrenut!");
});robot.on('message', (msg) => { // Reagovanje na poruke
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); // Autorizacija bota
Pročitajte komentare uz redove koji dolaze posle kose crte ("//"), kako biste samostalno razumeli svrhu svake.
- Kreirajte treći fajl — "comms.js", u kojem će u budućnosti biti smeštene sve potrebne komande.
- U njega umetnite osnovni blok, koji će se u budućnosti proširivati:
const config = require('./config.json'); // Povezujemo fajl sa parametrima i informacijama
const Discord = require('discord.js'); // Povezujemo biblioteku discord.js
const prefix = config.prefix; // "Izvlačimo" prefiks// Komande //
function test(robot, mess, args) {
mess.channel.send('Test!')
}// Lista komandi //
var comms_list = [{
name: "test",
out: test,
about: "Test komanda"
}];// Name - naziv komande na koju će bot reagovati
// Out - naziv funkcije sa komandom
// About - opis komandemodule.exports.comms = comms_list;





Za dalji rad sa komandama biće dovoljno da objavite njihove funkcije i dopunite listu odgovarajućim blokovima koda.Na primeru, gotov fajl "comms.js" izgleda ovako:
const config = require('./config.json');
const Discord = require('discord.js');
const prefix = config.prefix;
const versions = config.versions;
// Komande //
function test(robot, mess, args) {
mess.channel.send("Test!")
}
function hello(robot, mess, args) {
mess.reply("Zdravo!")
}
// Spisak komandi //
var comms_list = [{
name: "test",
out: test,
about: "Test komanda"
},
{
name: "hello",
out: hello,
about: "Komanda za pozdrav!"
}
}
module.exports.comms = comms_list;
Korak 3: Pokretanje bota
Prve radnje sa botom na JavaScript-u su završene, što znači da ga možete pokrenuti i proveriti rad. Za to će vam biti potrebno da uradite sledeće:
- Otvorite meni "Start" i putem pretrage pronađite "Komandnu liniju" i pokrenite je.
- Unesite
node bot.js
, gde je bot.js — naziv glavnog fajla sa kodom za bota. Ako se ne nalazi u vašem domaćem direktorijumu, navedite punu putanju do fajla ili prvo pređite na lokaciju koristeći komanducd
.


Primeri korisnih komandi
Na kraju ovog primera, ukratko ćemo govoriti o dve korisne komande koje mogu biti od pomoći prilikom podešavanja bota. Mogu se koristiti kao testne, kada rad na projektu još uvek traje. Prva komanda — !clear
— briše navedeni broj poruka u čatu.Njen kod izgleda ovako:
const arggs = mess.content.split(' ').slice(1); // Svi argumenti posle imena komande sa prefiksom
const amount = arggs.join(' '); // Broj poruka koje treba obrisati
if (!amount) return mess.channel.send('Niste naveli koliko poruka treba obrisati!'); // Provera da li je parametar količine postavljen
if (isNaN(amount)) return mess.channel.send('To nije broj!'); // Provera da li je unos korisnika broj
if (amount > 100) return mess.channel.send('Ne možete obrisati više od 100 poruka odjednom'); // Provera da li je unos korisnika broj veći od 100
if (amount {
mess.channel.bulkDelete(messages)
mess.channel.send(`Obrisano je ${amount} poruka!`)
})
};
delete_messages(); // Poziv asinkrone funkcije
Druga komanda je namenjena bacanju novčića i pokreće se unosom !heads_or_tails
u čatu. Ovdje kod nije tako složen, jer je radnji malo i bot treba da odgovori samo na jedan zahtev bez velikog broja promenljivih.
mess.channel.send('Novčić se baca...')
var random = Math.floor(Math.random() * 4) + 1; // Deklaracija promenljive random - ona izračunava slučajan broj od 1 do 3
if (random === 1) { // Ako je izračunat broj 1, pada orao.
mess.channel.send(':full_moon: Orao!')
} else if (random === 2) { // Ako je izračunat broj 2, pada pismo.
mess.channel.send(':new_moon: Pismo!')
} else if (random === 3) { // Ako je izračunat broj 3, novčić pada na ivicu.
mess.channel.send(':last_quarter_moon: Novčić je pao na ivicu!')
}
Na internetu možete pronaći druge korisne komande koje želite da uključite u svog bota, međutim, za rad sa njima će vam ipak biti potrebna napredna znanja u JavaScript-u ili Python-u, kako biste sami ispravili greške ili prilagodili kod.