Navigatie overslaan

Discord Chatbot

PythonBotDiscord

Bij mijn scoutsgroep was er het idee om Discord te gebruiken als nieuw communicatiekanaal. Ik gebruikte Discord al en wist dus dat veel servers op Discord chatbots hebben en wou voor de Discord van onze scouts ook zo’n bot proberen maken.

Ik had ontdekt dat ik met Python zo’n bot kon schrijven en ging dus snel aan de slag. Ik had nog nooit zelfstandig aan zo’n grote applicatie gewerkt, laat staan een applicatie die online draait in een chat omgeving. Tot nu toe had ik vooral ervaring met tekstmanipulatie en bestanden in- en uitlezen in Python. Met behulp van vele online tutorials bleek dit echter genoeg te zijn om een Discordbot aan de praat te krijgen.

Nadat ik een werkende versie had die op één simpel commando kon reageren, bleef ik de bot de komende weken uitbreiden met meer commando’s en functionaliteiten. In oktober werd de Discord server al door verschillende personen binnen de leidingsgroep van mijn scouts gebruikt. In januari werden ook ouders toegevoegd aan de server op Discord. Toen heb ik specifiek voor de ouders voor een laatste keer extra commando’s geïmplementeerd. Uiteindelijk kon de Discordbot reageren op chatberichten die begonnen met het commando met prefix ‘!’, zoals “!poll” om een pol te starten in de chat. Het aantal commando’s dat een gebruiker kon aanwenden, was afhankelijk van twee dingen: de rechten die de gebruiker had en het chatkanaal waarin hij/zij het commando toepaste.

Voor sommige commando’s was het prefix niet nodig wanneer de woorden ‘wie’, ‘is’ of ‘zijn’ en ‘kapoenenleiding’ gedetecteerd werden binnen eenzelfde zin. Als laatste kon ik ook persoonlijke berichten die naar de bot werden gestuurd, doorsturen naar mezelf of andere chatmoderators en konden zij dan namens de bot ook terug antwoorden.

Tijdsverloop

Ik begon aan dit project in augustus voor het academie jaar 2020-2021. Intensief tot oktober en in januari kleine aanpassingen. Geschat werkte ik hier in totaal 90 uur aan.

Screenshots

Discord Bot commando voorbeeld

Links

View code on GitHub