Script uit laten voeren door bot

Extra verdieping bij het programmeren in Python

Je hebt nu alles klaar om jouw bot te laten werken:

Token opzoeken

Om straks het script te laten gebruiken door de bot hebben we de access token nodig van de bot. Deze token geeft een script toegang tot alle servers waar je de bot hebt toegevoegd. Het is daarom belangrijk om deze token geheim te houden.

Client script maken

Je hebt nu een script gekoppeld aan de bot met deze enkele regels! Het Python script wat we nu uitvoeren noemen we ook wel de client. We maken hier een client aan en zeggen dat de client moet gaan werken.

Dit script kan je uitvoeren door de terminal te openen in de juiste folder (kan via CMD of in Visual Studio) en type python discord_bot.py. Je zal zien dat er helemaal niks gebeurt. Er lijkt tenminste niks te gebeuren want jouw script maakt verbinding met jouw discord bot. Alleen je zegt nog niet dat de bot dan iets moet uitprinten wanneer hij verbinding heeft. Je kan het script laten stoppen door op Control+C te drukken.

Event Handlers.

Om jouw bot iets te laten doen moet je weten wanneer hij iets gaat doen. Een event handler is zoals de naam al zegt, iets wat een event (gebeurtenis) af handelt. Er zijn een heleboel events en deze zijn (niet heel erg goed) beschreven in de documentatie van discord.py.

De meest voorzelfsprekende zijn de volgende:

Eerste event handler

De eerste event handler die we gaan gebruiken is on_ready. Deze wordt aangeroepen wanneer de client helemaal gereed is en alles functioneel is. Als er dus iets nog niet helemaal goed is zal de functie niks doen.

Zet deze functie code boven client.run("<TOKEN>")

Dit is niet de beste of mooiste methode van het vinden van een guild want we pakken gewoon de eerste guild/server die we kunnen vinden. Later gaan we kijken naar betere methodes.

@client.event
async def on_ready():
    # De bot kan op veel verschillende servers draaien. Met deze regel code pak je de eerste server die deze bot heeft. Als jouw bot maar 1 server heeft is het makkelijk.
    guild = client.guilds[0]
    # De naam van de server printen we gelijk uit.
    print(guild.name, "is the name of the server")

    # We printen de naam van de bot user uit.
    print(client.user, "has connected to the client")

Voer je script uit en bewonder het resultaat!

Je hebt nu je eigen bot gemaakt en een script verbinding laten maken met de bot. Je hebt zelfs al informatie van de bot uitgelezen. We gaan nu de code uploaden naar github. Hier gaat iets heel leuks gebeuren.

Volgende stap