diff --git a/bot.py b/bot.py index e77984d..2f751b8 100644 --- a/bot.py +++ b/bot.py @@ -401,19 +401,25 @@ async def check_giveaway(giveaway_id): @client.event async def on_interaction(interaction): """Bearbeitet die Teilnahme an einem Giveaway.""" - if interaction.data["custom_id"].startswith("giveaway_"): - giveaway_id = int(interaction.data["custom_id"].split("_")[1]) - giveaway = giveaways.get(giveaway_id) - - if giveaway: - if giveaway.is_finished(): - await interaction.response.send_message("Dieses Giveaway ist bereits beendet.", ephemeral=True) - else: - added = giveaway.add_participant(interaction.user) - if added: - await interaction.response.send_message("Du hast erfolgreich am Giveaway teilgenommen!", ephemeral=True) + # Überprüfen, ob es sich um eine Button-Interaktion handelt und ein custom_id vorhanden ist + if interaction.type == discord.InteractionType.component and "custom_id" in interaction.data: + if interaction.data["custom_id"].startswith("giveaway_"): + giveaway_id = int(interaction.data["custom_id"].split("_")[1]) + giveaway = giveaways.get(giveaway_id) + + if giveaway: + if giveaway.is_finished(): + await interaction.response.send_message("Dieses Giveaway ist bereits beendet.", ephemeral=True) else: - await interaction.response.send_message("Du nimmst bereits am Giveaway teil.", ephemeral=True) + added = giveaway.add_participant(interaction.user) + if added: + await interaction.response.send_message("Du hast erfolgreich am Giveaway teilgenommen!", ephemeral=True) + else: + await interaction.response.send_message("Du nimmst bereits am Giveaway teil.", ephemeral=True) + else: + # Logge Interaktionen, die nicht den erwarteten Typ haben + logger.error(f"Unbekannte Interaktion: {interaction.type}, Daten: {interaction.data}") + def read_introduction(): try: