Discord Bot mit Python
Python-Bot mit discord.py für eine Online-Silvesterfeier

Silvester 2020 konnte nur online stattfinden. Zusammen mit Marcel von Buddster.de habe ich deshalb an einem Wochenende einen Discord-Bot in Python gebaut, der eine Online-Feier moderiert. Er startet Minispiele, wählt Teilnehmer aus und führt Buch darüber, wer wann wie viel getrunken hat. Gesteuert wird er über Befehle, Stichwörter im Chat und Emoji-Reaktionen. Meine Rolle war die Entwicklung. Nach der ersten Feier haben wir den Bot für weitere Feiern erweitert.
Wie es funktioniert
Aufbau mit discord.py
Der Bot basiert auf discord.py. Kern ist eine Instanz von commands.Bot mit dem Prefix „!“. Jeder Befehl ist eine async-Funktion, die mit dem Decorator @gur.command registriert wird. Die Bibliothek parst die eingehende Nachricht, ordnet sie dem Befehl zu und übergibt den Kontext ctx mit Guild, Kanal und Autor. Antworten werden als discord.Embed-Nachrichten gesendet, weil sich Titel, Beschreibung, Felder, Farbe und Zeitstempel damit sauber strukturieren lassen und der Bot im Chat auf einen Blick erkennbar bleibt.
gur = commands.Bot(command_prefix='!')
@gur.command(name="info")
async def info(ctx):
embed = discord.Embed(
title=f"{ctx.guild.name}",
description="Corona Silvester Party (Online)",
timestamp=datetime.datetime.now(),
color=discord.Color.blue(),
)
embed.add_field(name="Server owner", value=f"{ctx.guild.owner}")
await ctx.send(embed=embed)
Der Befehl !info liest Servername und Server-Owner aus dem Kontext und schickt ein blaues Embed mit Zeitstempel zurück. Die weiteren Befehle folgen demselben Muster.
Interaktion über Befehle, Stichwörter und Emojis
Der Bot reagiert auf drei Arten von Eingaben: auf Befehle mit dem Prefix „!“, auf Stichwörter im normalen Chat und auf Emoji-Reaktionen. Befehle laufen über commands.Bot und @gur.command; Stichwörter im Chat und Emoji-Reaktionen kommen ohne Prefix aus.
Minispiele und faires Trink-Tracking
Die Minispiele arbeiten mit einem Zufallsfaktor und einem Ausschlussverfahren. Das Trink-Tracking merkt sich, wer wann wie viel getrunken hat, und berücksichtigt diese Werte bei der nächsten Auswahl. So trifft die Auswahl nicht immer dieselben Personen, und das Trink-Tracking bleibt fair.
Technik im Detail
- Sprache: Python
- Bibliothek: discord.py, commands.Bot mit Prefix „!“
- Befehle als async-Funktionen, registriert mit @gur.command
- Antworten als discord.Embed mit Titel, Beschreibung, Feldern, Farbe und Zeitstempel
- Eingaben: Befehle, Stichwörter im Chat, Emoji-Reaktionen
- Minispiele mit Zufallsfaktor und Ausschlussverfahren
- Trink-Tracking: speichert, wer wann wie viel getrunken hat, und berücksichtigt das bei der nächsten Auswahl
- Entwicklung gemeinsam mit Marcel (Buddster.de)
- Entstanden als Wochenendprojekt zu Silvester 2020
Status
Der Bot ist an einem Wochenende zu Silvester 2020 entstanden und wurde danach für weitere Feiern erweitert. Echte Gäste gaben sofort Feedback. Der Bot ist ein eigenes Projekt ohne Auftraggeber.
Projekt-Details
- Jahr
- 2022
- Rolle
- Entwicklung (mit Buddster.de)
- Stack
- Discord API, Python
Interesse an so einem Projekt?
Ich baue Websites, Tools und Apps – schnell, sauber, pixelgenau.
Projekt anfragen

