Bot discord w pythonie – discord.py od podstaw #1

Dzisiaj wam pokażę jak napisać bota discord w pythonie, a dokładniej w bibliotece discord.py.

Na początku potrzebujemy zaimportować bibliotekę discord.py, poprzez polecenie

pip install -U discord.py

Bibliotekę w pliku importujemy w taki sposób:

from discord.ext import commands

Następnie potrzebujemy jakąś zmienną, której po prostu przypiszemy naszego bota, najczęściej nazywa się ona bot lub client. command_prefix oznacza prefix naszego bota, w tym przypadku jest to znak dolara.

bot = commands.Bot(command_prefix='$')

Komendy w discord.py (aktualnie nie używam cogsów, uważam, że to dla nowych osób za trudne na początek) zaczynamy dekoratorem

@bot.command()

bot to oczywiście nasza zmienna, którą zdefiniowaliśmy wyżej 🙂

Pod dekoratorem musi znajdywać się asynchroniczna funkcja, jej nazwa to nazwa komendy, jaką użytkownik wpisze, aby ją wywołać. W argumencie funkcji przyjmujemy różne rzeczy, najczęściej ctx. Jest to kontekst, który zawiera odwołanie do innych klas takich jak użytkownik, który wywołał komendę, kanał, na którym komenda została wywołana itd.

async def nazwa_komendy(ctx):

Następnie w funkcji piszemy kod, który ma się wywołać po wywołaniu funkcji. Może to być na przykład wysłanie jakiejś wiadomości, dodanie użytkownika do bazy itd. W tym artykule robimy bardzo podstawowego bota w discord.py, więc po prostu wyślemy wiadomość na ten sam kanał, gdzie komenda została wykonana. Zrobimy to w następujący sposób:

await ctx.send('Jakaś wiadomość :)')

Aktualnie nasz kod wygląda tak

from discord.ext import commands

bot = commands.Bot(command_prefix='$')

@bot.command()
async def nazwa_komendy(ctx):
    await ctx.send('Jakaś wiadomość :)')

Musimy jeszcze uruchomić bota, do tego potrzebujemy tokenu, który weźmiemy ze strony discorda. wybieramy tutaj naszego bota i kopiujemy token. Bota uruchomimy poprzez poniższy kod

bot.run('TOKEN')

A tak wygląda skończony bot

from discord.ext import commands

bot = commands.Bot(command_prefix='$')

@bot.command()
async def nazwa_komendy(ctx):
    await ctx.send('Jakaś wiadomość :)')

bot.run('TOKEN')

Po uruchomieniu pliku z kodem bot się uruchomi, jeżeli wszystko przepisaliście poprawnie. Po wpisaniu $nazwa_komendy bot powinien odesłać nam wiadomość.

Exit mobile version