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 😛