Napisanie bota Discord w Pythonie zajmuje jeden wieczór. Utrzymanie go online 24/7 wymaga pakietu hostingowego. Poniżej pełna droga: od utworzenia aplikacji bota do działającego bota na panelu gry HostValues.
Krok 1: tworzenie aplikacji bota
- Przejdź do Discord Developer Portal i kliknij „New Application".
- Nadaj aplikacji nazwę i kliknij „Create".
- Przejdź do zakładki „Bot" i kliknij „Reset Token", aby wygenerować token. Skopiuj token i przechowaj go w bezpiecznym miejscu. Zobaczysz go tylko raz.
- W sekcji „Privileged Gateway Intents" włącz następujące opcje: Presence Intent, Server Members Intent i Message Content Intent.
- Przejdź do „OAuth2", zaznacz w Scopes „bot", a w Bot Permissions uprawnienia, których Twój bot potrzebuje (minimum: Send Messages, Read Message History).
- Skopiuj wygenerowany URL i otwórz go w przeglądarce, aby dodać bota do swojego serwera.
Krok 2: kod
Utwórz folder z dwoma plikami:
requirements.txt
discord.py>=2.5 python-dotenv
bot.py
import os
import discord
from discord.ext import commands
from dotenv import load_dotenv
load_dotenv()
bot = commands.Bot(
command_prefix="!",
intents=discord.Intents.all()
)
@bot.event
async def on_ready():
print(f"Online jako {bot.user}")
@bot.command()
async def ping(ctx):
await ctx.send(f"Pong! Latency: {round(bot.latency * 1000)}ms")
@bot.command()
async def czesc(ctx):
await ctx.send(f"Hej {ctx.author.display_name}!")
bot.run(os.getenv("DISCORD_TOKEN"))
.env
DISCORD_TOKEN=twoj_token_tutaj
Przetestuj lokalnie: pip install -r requirements.txt, następnie python bot.py. Wpisz !ping na swoim serwerze Discord. Działa? Pora na hosting.
Krok 3: hosting na panelu gry
- Zamów pakiet Discord bot.
- Prześlij
bot.py,requirements.txti.envprzez zakładkę Files. Nie przesyłaj folderu__pycache__ani środowiska wirtualnego. - W zakładce Startup ustaw plik startowy na
bot.pyi wybierz Python 3.12. - Uruchom serwer. Panel automatycznie zainstaluje pakiety z
requirements.txt. - W konsoli pojawi się „Online jako NazwaBota". Twój bot jest teraz dostępny 24/7.
Dodawanie slash commands
Slash commands to nowoczesny sposób interakcji z botami. Pojawiają się w menu Discord po wpisaniu /:
@bot.tree.command(name="info", description="Wyswietla informacje o serwerze")
async def info(interaction: discord.Interaction):
guild = interaction.guild
await interaction.response.send_message(
f"{guild.name} ma {guild.member_count} czlonkow."
)
# Dodaj do on_ready:
@bot.event
async def on_ready():
await bot.tree.sync()
print(f"Online jako {bot.user}")
Trzy błędy, które popełnia każdy
- Token w kodzie. Umieść token w pliku
.env, nie wbot.py. Token, który trafi na GitHub, zostanie automatycznie unieważniony przez Discord. - Intents niewłączone. Jeśli używasz
discord.Intents.all(), ale nie zaznaczysz intents w Developer Portal, bot uruchomi się, ale nie będzie na nic reagował. - Brak requirements.txt. Panel nie może zainstalować pakietów bez tego pliku. Lokalnie działa, bo instalowałeś ręcznie.
Ile RAM potrzebuje mój bot?
Prosty bot komendowy lub moderacyjny: mniej niż 256 MB. Najmniejszy pakiet 1 GB jest w pełni wystarczający. Bot muzyczny na wielu serwerach: 2 GB.
Czy mogę uruchomić wiele botów na jednym pakiecie?
Tak. Użyj pm2 (npm install -g pm2), aby uruchomić wiele skryptów Python jednocześnie. Trzy małe boty zmieszczą się w 1 GB.
discord.py czy discord.js?
Python, jeśli dopiero zaczynasz programować: składnia jest bardziej czytelna. JavaScript, jeśli masz już doświadczenie z webem lub chcesz zbudować dashboard. Obie biblioteki są aktywnie utrzymywane i równoważne pod względem funkcjonalności.
Zobacz pakiety Discord bot lub KVM VPS, jeśli oprócz bota chcesz również prowadzić stronę internetową lub bazę danych.