Vsebina:
V članku bomo predstavili, kako se ustvari aplikacija za bota, izvede prva avtentikacija na strežniku in napiše skupna koda za normalizacijo delovanja. Z "okvirjem" lahko že dodate uporabniške ukaze in takoj preverite, kako delujejo.
Ustvarjanje aplikacije in avtentikacija bota
Nato bomo govorili o dveh različnih metodah ustvarjanja bota — s pomočjo JavaScript in Pythona. Vsaka od njiju ima svoje posebnosti in nianse, vendar pa metoda ustvarjanja aplikacije in avtentikacije bota na strežniku ostaja enaka, saj ni odvisna od izbranega programskega jezika.Po tem boste lahko prešli na izbiro knjižnice in delo s kodo.
Pojdi na Discord Developer Portal
- Pojdite na zgornjo povezavo, da pridete na glavno stran portala za razvijalce v Discord. Uporabite svoje osebne avtentikacijske podatke za prijavo v račun.
- Ustvarite novo aplikacijo, tako da pritisnete gumb "Nova aplikacija".
- Vnesite ime aplikacije in potrdite njeno ustvarjanje.
- Razvijte meni spletne strani, tako da kliknete na gumb s tremi vodoravnimi črtami.
- Iz prikazanega seznama izberite razdelek nastavitev "Bot".
- Začnite z dodajanjem novega bota za to aplikacijo.
- Potrdite prikazano obvestilo, tako da pritisnete "Da, naredi to".
- Ko končate, se bo spletna stran osvežila in odprla se bo stran bota, kjer lahko spremenite njegovo ime, kopirate žeton ali dodate ikono, ki se bo prikazovala tudi v Discordu.
- Vendar pa bot trenutno še ni označen kot tak in zanj niso nastavljena dovoljenja, zato preko istega menija preidite v razdelek "OAuth2".
- Na seznamu "Scopes" označite "bot", s čimer označite tip ustvarjene aplikacije.
- Poiščite naslednji blok — "Bot Permissions" in označite vsa dovoljenja, ki jih želite dodeliti ustvarjenemu botu.
- Enako storite tudi z ostalimi tipi dovoljenj, ki ustrezajo dostopnim dovoljenjem v Discordu za vloge.
- Zdaj je bot pripravljen za avtentikacijo. Na tej strani poiščite vrstico s povezavo in jo kopirajte.
- Prilepite jo v naslovno vrstico in pojdite po njej. V prikazani obliki izberite strežnik za avtentikacijo. Če še nimate svojega strežnika, ga ustvarite, nato pa se vrnite k postopku povezovanja bota.
Podrobnosti: Ustvarjanje strežnika v Discordu
- Seznanite se s seznamom vseh dovoljenj in kliknite na "Avtorizirati".
- Ostalo je le še potrditi captcha, ki se je pojavila na zaslonu.
- Odprite ustrezen strežnik v Discordu in se prepričajte, da je bot na seznamu udeležencev. Zaenkrat je še vedno offline, zagon pa bo mogoč po tem, ko bomo napisali "telo" bota s pomočjo Pythona ali JS, s čimer se bomo ukvarjali naprej.

















Izbira razvojnega okolja
Pred začetkom dela s kodo v omenjenih programskih jezikih pojasnimo, da boste morali namestiti urejevalnik besedil ali posebno razvojno okolje, ki podpira sintakso Pythona ali JavaScripta (odvisno od izbranega). Seveda lahko uporabite tudi "Opombe", vendar je v primerjavi s specializiranimi programi manj priročen.
Podrobnosti:
Izbira razvojnega okolja za programiranje

Možnost 1: Python in knjižnica discord
Če se prej niste srečali s programskimi jeziki ali jih poznate le površno, je ustvarjanje bota za Discord v Pythonu najboljša izbira. Ta programski jezik je enostavnejši za učenje, kompakten in ima logično razumljivo sintakso, zato je idealen za začetnike. Poleg tega je na spletu ogromno izvornih kod z različnimi ukazi ali že pripravljenimi boti, ki jih lahko preprosto kopirate in uporabite za svoje namene.V naslednjih korakih boste izvedeli, kako ustvariti "okvir" bota v Pythonu in ga zagnati, da preverite delovanje.
Korak 1: Namestitev Pythona in knjižnice discord
Privzeto v Windows ni vgrajenih funkcij in orodij, namenjenih delu s Pythonom, zato jih bo treba namestiti ločeno, ne pozabite na knjižnico discord, ki omogoča interakcijo s koristnimi funkcijami in ukazi, povezanimi izključno z Discordom.
Pojdite na uradno spletno stran Pythona
- Izkoristite zgornjo povezavo, da preidete na uradno spletno stran Pythona in kliknite gumb za prenos njegove najnovejše različice.
- Na novi strani poiščite namestitveni program za Windows in začnite prenos.
- Počakajte, da se prenos konča, in zaženite namestitveni program.
- Namestitev lahko začnete brez sprememb, vendar obvezno označite "Add Python X.X to PATH", da se vse okoljske spremenljivke dodajo samodejno in da ne pride do težav pri nadaljnjem vnosu ukazov.
- Počakajte, da se namestitev konča, in za vsak primer ponovno zaženite računalnik, da začnejo veljati vse spremembe.
- Odprite "Ukazno vrstico" na vam ustrezen način, na primer tako, da poiščete aplikacijo v meniju "Start".
- Vpišite ukaz
pip install discord
in ga potrdite s pritiskom na tipko Enter. - Začne se prenos datotek in v konzoli "tečejo" vrstice. Ne zapirajte tega okna, dokler se prenos ne konča.
- Ko se prikaže informacija "Successfully installed", zaprite "Ukazno vrstico" in nadaljujte.









Če imate Python nameščen, vendar ukaz za dodajanje knjižnice ne deluje, posodobite komponento PIP, o čemer pišemo v drugem članku na naši spletni strani.Tam boste našli navodila tudi za spreminjanje okolijskih spremenljivk, če to med namestitvijo ni bilo storjeno.
Podrobnosti: Posodobitev PIP za Python
Korak 2: Ustvarjanje besednjaka bota
V tej različici bomo uporabili besednjak za bota, torej konfiguracijsko datoteko, ki shranjuje vrednosti žetona, predpone in imena bota pod različnimi imeni. To bistveno poenostavi celoten postopek pisanja kode in ne zahteva, da se vsakič spomnimo podatkov aplikacije, da jih vnesemo v eno vrstico.
- Začnite z zagonom IDLE, tako da poiščete dodano aplikacijo v meniju "Start". Če ste prenesli drugo razvojno okolje, ga odprite in ustvarite nov projekt na osnovi Pythona.
- Po odprtju novega okna pokličite meni "File" in izberite možnost "New File". To lahko storite tudi s kombinacijo tipk Ctrl + N.
- V novem oknu, ki je namenjeno pisanju kode, prilepite blok
settings = {
'token': 'Vaš žeton',
'bot': 'Ime bota',
'id': ID stranke bota, brez narekovajev,
'prefix': 'Predpona bota'
} - Zdaj boste morali poiskati informacije za zamenjavo v besednjaku. Najprej poiščite ID stranke aplikacije na spletni strani razvijalcev. Kopirajte ga in zamenjajte v ustrezni vrstici.
- Pokličite meni in pojdite v razdelek "Bot".
- Kopirajte njegov edinstveni žeton, tako da kliknete na posebno dodeljeno gumb.
- Prilepite žeton namesto napisa, storite enako z imenom bota in uporabljeno predpono (predpona je potrebna za klicanje ukazov in vedno gre pred njimi, na primer
!play
, lahko pa zamenjate klicaj z drugimi simboli). - Ko so vsi podatki zamenjani, ponovno pokličite meni "File" in izberite možnost "Save As".
- Ustvarite ločeno mapo za datoteke bota, poimenujte to kot
config
in potrdite shranjevanje.









Korak 3: Ustvarjanje telesa bota
Za zagotovitev osnovnega delovanja bota je potrebno ustvariti "telo" — osnovno kodo za zagon in delovanje na strežniku.Potrebovali boste ločeno datoteko, ki jo lahko poimenujete poljubno, vendar jo morate obvezno shraniti na isto mesto, kjer se nahaja prej ustvarjen slovar.
- V razvojnem okolju odprite meni "File" in ustvarite novo datoteko.
- Tja prilepite tri ukaze, ki so namenjeni uvozu nameščenih knjižnic in prej ustvarjene datoteke:
import discord
from discord.ext import commands
from config import settings - Dodajte vrstico
bot = commands.Bot(command_prefix = settings['prefix']) # Ker smo v settings navedli predpono, se sklicujemo na slovar s ključem prefix
. - Osnovna koda je naslednja:
@bot.command() # Ne predajamo argumenta pass_context, ker je bil potreben v starejših različicah.
async def hello(ctx): # Ustvarimo funkcijo in predamo argument ctx.
author = ctx.message.author # Razglasimo spremenljivko author in vanjo shranimo informacije o avtorju.await ctx.send(f'Hello, {author.mention}!') # Izpišemo sporočilo z omembo avtorja, sklicujoč se na spremenljivko author.
- Pozorni bodite na komentarje, ki sledijo znaku "#" — ti vam bodo pomagali razumeti namen vsake vrstice.
- Ukaz za zagon izgleda takole:
bot.run(settings['token']) # Sklicujemo se na slovar settings s ključem token, da pridobimo žeton
. - Po končanem delu ponovno odprite že znani meni in preidite k shranjevanju datoteke.
- Dajte ji poljubno ime in jo postavite v mapo s konfiguracijo.







Nato vidite celotno kodo, o kateri smo govorili zgoraj, zato jo lahko po potrebi preprosto kopirate.

import discord
from discord.ext import commands
from config import settings
bot = commands.Bot(command_prefix = settings['prefix'])
@bot.command() # Ne predajamo argumenta pass_context, ker je bil potreben v starejših različicah.
async def hello(ctx): # Ustvarimo funkcijo in predamo argument ctx.
author = ctx.message.author # Razglasimo spremenljivko author in vanjo shranimo informacije o avtorju.
await ctx.send(f'Hello, {author.mention}!') # Izpišemo sporočilo z omembo avtorja, sklicujoč se na spremenljivko author.
bot.run(settings['token']) # Sklicujemo se na slovar settings s ključem token, da pridobimo žeton
Dodatno pojasnimo, da lahko uporabite alternativno shemo, tako da se znebite datoteke s slovarjem in pridobite nekoliko drugačno "telo" za bota.Rešite, ali vam ta koda bolj ustreza. Določene vrstice s tokenom bo treba urediti po svojih željah.
import discord
from discord.ext import commands
TOKEN = 'Vaš token'
bot = commands.Bot(command_prefix='!')
@bot.command(pass_context=True) # dovolimo prenos argumentov
async def test(ctx, arg): # ustvarimo asinhrono funkcijo bota
await ctx.send(arg) # pošljemo argument nazaj
bot.run(TOKEN)
Korak 4: Zagon bota
Zdaj lahko zaženete bota za preverjanje, za kar boste potrebovali glavno datoteko, ustvarjeno v Koraku 3. Sestavite jo neposredno preko razvojnega okolja ali odprite "Ukazno vrstico" in vnesite python bot.py
, kjer je bot.py ime ustvarjene datoteke. Če datoteke ne najdete, navedite njeno polno pot, na primer python C:UsersUSER_NAMEbot.py
.

Pojdite na Discord in preverite trenutno stanje bota. Moral bi biti prikazan na seznamu udeležencev v razdelku "Na voljo" skupaj z zeleno piko.

Izkoristite odprte vire ali svoje znanje, da napišete ukaze za bota ali izvedete druge naloge, ki jih mora opraviti. Za to uredite njegovo glavno datoteko ali ustvarite druge, povezane v enoten projekt.
Možnost 2: JavaScript in discord.js
Naslednja možnost za ustvarjanje bota za Discord je uporaba JS in knjižnice discord.js, ki dodaja vse potrebne komponente za delo z botom. Načelo delovanja se razlikuje od prejšnje možnosti le v orodjih in razliki v sintaksi programskih jezikov, vendar ostaja približno enako.
Korak 1: Namestitev Node.js in discord.js
Razširitev funkcionalnosti JS in preoblikovanje v jezik splošne rabe bo omogočila platforma Node.js, katere namestitvi priporočamo, da se posvetite najprej.Za to izvedite najpreprostejši algoritem dejanj:
Pojdite na uradno spletno stran Node.js
- Odprite stran Node.js na internetu in izberite najnovejšo priporočeno različico za prenos.
- Počakajte na prejem izvršljive datoteke in jo zaženite.
- Sledite navodilom, ki se prikažejo na zaslonu, dokončajte namestitev in ponovno zaženite računalnik.
- Odprite "Start" in preko iskanja poiščite klasično aplikacijo "Ukazna vrstica".
- V njej vpišite ukaz
npm init
in ga aktivirajte s pritiskom na Enter. - Ustvarite standardni paket s uporabniškimi informacijami, tako da pritisnete Enter po vnosu vsakega parametra, ali pustite vse privzeto.
- Ko bodo vsi parametri paketa določeni, boste prejeli opozorilo, ki ga morate potrditi z novim pritiskom na Enter.
- Vpišite ukaz
npm install
za namestitev manjkajočih standardnih komponent. - Počakajte na zaključek prenosa in pojav vnosne vrstice.
- Vpišite
npm install discord.js
. - Ko bo tudi ta ukaz izveden, odprite mapo svojega uporabnika in se prepričajte o prisotnosti ustvarjenih datotek paketa v formatu JSON.











Korak 2: Delo z datotekami bota
Vse dejavnosti, povezane z datotekami bota in programskim kodo, bomo obravnavali v okviru enega koraka, saj jih deliti na več preprosto nima smisla.Potrebovali boste tri osnovne datoteke, v katere se vpišejo vse potrebne funkcije: ena odgovarja za konfiguracijo bota, druga za "telo", tretja pa hrani seznam dodanih ukazov.
- Najprej ustvarite datoteki "bot.js" in "config.json" v istem imeniku.
- Odprite datoteko "config.json" v besedilnem urejevalniku ali razvojnem okolju in dodajte naslednje vrstice:
{
"token" : "Vaš_token",
"prefix" : "Vaš_prefiks"
}Ustrezno zamenjajte izraze v dvojnih narekovajih z edinstvenim tokenom bota in želenim prefiksom.
- Odprite za urejanje datoteko "bot.js" (mimogrede, njeno ime je lahko poljubno). Vanjo prilepite ta blok kode.
const Discord = require('discord.js'); // Povezujemo knjižnico discord.js
const robot = new Discord.Client(); // Razglašamo, da je robot - bot
const comms = require("./comms.js"); // Povezujemo datoteko s ukazi za bota
const fs = require('fs'); // Povezujemo osnov modula datotečnega sistema node.js
let config = require('./config.json'); // Povezujemo datoteko s parametri in informacijami
let token = config.token; // "Izvlečemo" iz njega žeton
let prefix = config.prefix; // "Izvlečemo" iz njega predponorobot.on("ready", function() {
/* Ob uspešnem zagonu se v konzoli prikaže sporočilo "[Ime bota] se je zagnal!" */
console.log(robot.user.username + " se je zagnal!");
});robot.on('message', (msg) => { // Reagiranje na sporočila
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); // Avtorizacija bota
Bodite pozorni na komentarje k vrsticam, ki sledijo po poševnicah ("//"), da se sami seznanite s pomenom vsake.
- Ustvarite tretjo datoteko — "comms.js", v kateri bodo v prihodnosti shranjeni vsi potrebni ukazi.
- Vanjo vstavite glavni blok, ki se bo v prihodnosti širila:
const config = require('./config.json'); // Povezujemo datoteko s parametri in informacijami
const Discord = require('discord.js'); // Povezujemo knjižnico discord.js
const prefix = config.prefix; // "Izvlečemo" predpono// Ukazi //
function test(robot, mess, args) {
mess.channel.send('Test!')
}// Seznam ukazov //
var comms_list = [{
name: "test",
out: test,
about: "Testni ukaz"
}];// Name - ime ukaza, na katerega bo bot reagiral
// Out - ime funkcije z ukazom
// About - opis ukazamodule.exports.comms = comms_list;





Za nadaljnje delo z ukazi bo dovolj, da razglasite njihove funkcije in dopolnite seznam z ustreznimi bloki kode.Na primeru je pripravljen datoteka "comms.js" videti takole:
const config = require('./config.json');
const Discord = require('discord.js');
const prefix = config.prefix;
const versions = config.versions;
// Ukazi //
function test(robot, mess, args) {
mess.channel.send("Test!")
}
function hello(robot, mess, args) {
mess.reply("Živjo!")
}
// Seznam ukazov //
var comms_list = [{
name: "test",
out: test,
about: "Testni ukaz"
},
{
name: "hello",
out: hello,
about: "Ukaz za pozdrav!"
}
}
module.exports.comms = comms_list;
Korak 3: Zagon bota
Prvi koraki z botom v JavaScriptu so zaključeni, kar pomeni, da ga lahko zaženete in preverite delovanje. Za to boste morali izvesti naslednje:
- Odprite meni "Start" in preko iskanja poiščite "Ukazno vrstico" ter jo zaženite.
- Vnesite
node bot.js
, kjer je bot.js — ime glavne datoteke s kodo za bota. Če se ne nahaja v vaši domači mapi, navedite polno pot do datoteke ali se najprej premaknite na lokacijo z ukazomcd
.


Primeri uporabnih ukazov
Na koncu te različice bomo na kratko predstavili dva uporabna ukaza, ki vam lahko koristita pri nastavitvi bota. Uporabite ju lahko kot testne, ko je delo na projektu še v razvoju. Prvi ukaz — !clear
— izbriše določeno število sporočil v klepetu.Njen koda izgleda takole:
const arggs = mess.content.split(' ').slice(1); // Vsi argumenti za imenom ukaza s predpono
const amount = arggs.join(' '); // Število sporočil, ki jih je treba izbrisati
if (!amount) return mess.channel.send('Niste navedli, koliko sporočil je treba izbrisati!'); // Preverjanje, ali je parameter količine določen
if (isNaN(amount)) return mess.channel.send('To ni številka!'); // Preverjanje, ali je uporabnikov vnos številka
if (amount > 100) return mess.channel.send('Ne morete izbrisati več kot 100 sporočil naenkrat'); // Preverjanje, ali je uporabnikov vnos številka večja od 100
if (amount {
mess.channel.bulkDelete(messages)
mess.channel.send(`Izbrisano ${amount} sporočil!`)
})
};
delete_messages(); // Klic asinkrone funkcije
Druga ukaz je namenjena metanju kovanca in se zažene z vnosom !heads_or_tails
v klepetu. Tukaj koda ni tako zapletena, saj je dejanj malo in bot se mora odzvati le na en zahtevek brez ogromnega števila spremenljivk.
mess.channel.send('Kovanec se meče...')
var random = Math.floor(Math.random() * 4) + 1; // Deklaracija spremenljivke random - izračuna naključno število od 1 do 3
if (random === 1) { // Če je izračunano število 1, pade orel.
mess.channel.send(':full_moon: Orel!')
} else if (random === 2) { // Če je izračunano število 2, pade grb.
mess.channel.send(':new_moon: Grb!')
} else if (random === 3) { // Če je izračunano število 3, kovanec pade na rob.
mess.channel.send(':last_quarter_moon: Kovanec je padel na rob!')
}
Na internetu lahko najdete druge koristne ukaze, ki jih želite vključiti v svoj bot, vendar boste za delo z njimi potrebovali napredna znanja v JavaScriptu ali Pythonu, da boste lahko sami odpravljali napake ali urejali kodo po svojih željah.