Kako napraviti Discord bota
Na ovoj stranici
Discord bot je program koji se prijavljuje u Discord vlastitim računom i odgovara na naredbe, moderira, pokreće igre ili objavljuje novosti. Za izradu su potrebne tri stvari: aplikacija u Discordovom Developer Portalu, nekoliko redaka koda i mjesto na kojem će se taj kod izvršavati.
U ovom vodiču izrađujemo funkcionalnog bota sa slash naredbom /ping, u Pythonu (discord.py) ili JavaScriptu (discord.js) — odaberite jezik koji poznajete.
Korak 1: Izradite aplikaciju i token bota
- Otvorite Developer Portal. Idite na discord.com/developers/applications, izradite novu aplikaciju i dajte joj ime.
- Preuzmite token. Na stranici Bot kliknite Reset Token i kopirajte ga. Discord ga prikazuje samo jednom; ako ga izgubite, ponovno ga resetirajte.
- Čuvajte token u tajnosti. To je lozinka bota: tko ga ima, upravlja vašim botom. Nikad ga ne lijepite u kod koji dijelite i ne spremajte ga u Git.
Korak 2: Pozovite bota na svoj server
- Otvorite stranicu Installation svoje aplikacije.
- U zadanim postavkama instalacije za servere (guilds) dodajte opsege
botiapplications.commandste dozvole koje botu trebaju — za ovaj vodič dovoljna je Send Messages. - Otvorite dobivenu poveznicu za instalaciju, odaberite svoj server i odobrite. Bot se pojavljuje na popisu članova, offline dok se vaš kod ne pokrene.
Stariji vodiči koriste OAuth2 > URL Generator s ista dva opsega; i to još uvijek radi.
Korak 3a: Napišite bota u Pythonu (discord.py)
discord.py 2.7 zahtijeva Python 3.8 ili noviji. Instalirajte ga i izradite bot.py:
pip install discord.py
import os
import discord
from discord import app_commands
class Bot(discord.Client):
def __init__(self):
super().__init__(intents=discord.Intents.default())
self.tree = app_commands.CommandTree(self)
async def setup_hook(self):
await self.tree.sync()
bot = Bot()
@bot.tree.command(description="Replies with Pong!")
async def ping(interaction: discord.Interaction):
await interaction.response.send_message("Pong!")
bot.run(os.environ["DISCORD_TOKEN"])
Pokrenite ga s tokenom u varijabli okruženja, na primjer DISCORD_TOKEN=your-token python bot.py na Linuxu ili macOS-u.
Korak 3b: Napišite bota u JavaScriptu (discord.js)
discord.js 14 zahtijeva Node.js 18 ili noviji. U novoj mapi pokrenite npm install discord.js i izradite index.js:
const { Client, Events, GatewayIntentBits, REST, Routes, SlashCommandBuilder } = require('discord.js');
const commands = [new SlashCommandBuilder().setName('ping').setDescription('Replies with Pong!').toJSON()];
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.once(Events.ClientReady, async (c) => {
await new REST().setToken(process.env.DISCORD_TOKEN).put(Routes.applicationCommands(c.user.id), { body: commands });
console.log(`Logged in as ${c.user.tag}`);
});
client.on(Events.InteractionCreate, async (interaction) => {
if (interaction.isChatInputCommand() && interaction.commandName === 'ping') await interaction.reply('Pong!');
});
client.login(process.env.DISCORD_TOKEN);
Pokrenite ga naredbom DISCORD_TOKEN=your-token node index.js. Kad konzola prikaže Logged in, upišite /ping na svom serveru.
Držite token izvan koda
- Koristite varijablu okruženja ili datoteku
.envi dodajte.envu.gitignoreprije prvog commita. - Ako token procuri, resetirajte ga odmah na stranici Bot. Stari token prestaje raditi, a novi upišete ondje gdje bot radi.
- GitHub pretražuje javne repozitorije u potrazi za tokenima Discord botova i prijavljuje ih Discordu, koji ih može opozvati — pa token koji ste greškom objavili često prestane raditi prije nego što to primijetite.
Korak 4: Držite bota online
Vaš bot je online samo dok se njegov kod izvršava. Zatvorite terminal ili ugasite računalo i bot odlazi offline. Imate tri mogućnosti:
- Vlastito računalo — besplatno, dobro za izradu i testiranje, ali bot spava kad i računalo.
- Besplatni paket — većina uspavljuje ili ograničava botove koji rade cijeli mjesec; kompromise uspoređujemo u vodiču besplatni hosting za Discord bota.
- Hosting za botove — mali server koji je stalno uključen. Na HytHost hostingu za Discord botove učitate projekt, odaberete Node.js, Python ili drugo okruženje, a panel pokreće bota i ponovno ga pokreće ako se sruši.
Cijeli postupak, od učitavanja do automatskog ponovnog pokretanja, nalazi se u vodiču kako hostati Discord bota 24/7.
Pokrećite bota bez upaljenog računala: HytHost hosting za Discord botove podržava Node.js, Python, Java, Go, C#, Bun i Lavalink — od €0.89/mj.
Pogledajte planove za botoveČesto postavljana pitanja
Da. Izrada aplikacije, tokena i koda ne košta ništa, a discord.py i discord.js su besplatni. Plaćate samo ako želite hosting na mjestu koje ostaje online.
Onaj koji već znate. discord.py i discord.js su zreli i pokrivaju cijeli Discord API. Ako ne znate nijedan, Python se jednostavnije čita; JavaScript ima veći ekosustav biblioteka.
Provjerite jeste li ga pozvali s opsegom applications.commands i je li kod sinkronizirao naredbe. Globalnim naredbama može trebati trenutak da se pojave; ako se ne pojave, ponovno pokrenite Discord.
Za čitanje teksta običnih poruka potreban je intent Message Content, uključen u Developer Portalu i zatražen u kodu. Bez njega bot i dalje prima slash naredbe, spominjanja i privatne poruke.
Odmah ga resetirajte na stranici Bot u Developer Portalu. Stari token prestaje raditi; novi upišite svugdje gdje bot radi, a stari uklonite iz koda i povijesti.
Vaš bot online, bez vašeg računala
HytHost hosting za Discord botove pokreće Node.js, Python, Java, Go, C#, Bun ili Lavalink s MySQL bazom podataka i sigurnosnim kopijama — od €0.89/mj.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursJe li ti ovaj vodič pomogao?