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

Cześć, przedstawię tutaj jak stworzyć bota na discorda w pythonie, używają discord.py w wersji 2 ze slash komendami, przyciskami, modalami i innymi nowościami!

Instalacja modułu

Najpierw musimy zainstalować discord.py, aby zaimportować i używać go w naszym kodzie, możemy to zrobić, uruchamiając komendę

pip install git+https://github.com/Rapptz/discord.py

Pierwsze kroki

Najpierw w naszym kodzie musimy zaimportować discord.py

import discord

często będziemy też używać dodatku commands z discord.ext, więc od razu zróbmy

from discord.ext import commands

Możemy też (oczywiście opcjonalnie) dodać nasłuchiwanie logów od discord.py (np. zalogowanie bota czy rejestracja slash komendy). Będziemy do tego potrzebować modułu logging (import logging). Przykładowa konfiguracja:

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s'
    '[\033[96;1m%(levelname)-8s\033[0m][\033[96m%(name)-20s\033[0m] '
    '%(message)s'
)

Teraz najwyższy czas, aby stworzyć instancje klienta (obiekt naszego bota)

bot = commands.Bot(
    command_prefix='!',
    intents=discord.Intents.all(),
    application_id=123
)
  • command_prefix – prefix dla zwykłych komend naszego bota
  • intents – intenty naszego bota, to takie globalne uprawnienia np. do odbierania eventów o wysłaniu wiadomości przez użytkownika, ja tu dałem od razu wszystkie, ale trzeba je włączyć w panelu bota
  • application_id – id naszego bota

Następnie musimy podać token i zalogować bota, jest to jednak nieco bardziej skompilowane niż w poprzednich wersjach discord.py. Od teraz metoda start jest asynchroniczna, więc musimy zaimportować moduł asyncio i albo zrobić tak

asyncio.run(bot.start('token'))

albo od razu stworzyć asynchroniczną funkcję main, która będzie awaitować metodę start

async def main():
    await bot.start('token')

if __name__ == '__main__':
    asyncio.run(main())

Slash komendy opiszę w następnych artykułach 😛

Chcesz być na bieżąco? Obserwuj nas w google news lub polub nas na Facebooku.
Losowy artykuł
Jak odzyskać hasło FTP z Total Commander?