Explorar o código

editing embed and adding a 1h cooldown

baumsplitter41 hai 3 días
pai
achega
4bbad2ef54
Modificáronse 1 ficheiros con 13 adicións e 5 borrados
  1. 13 5
      VPD_BOT/cogs/matesearch.py

+ 13 - 5
VPD_BOT/cogs/matesearch.py

@@ -65,11 +65,10 @@ class Matesearch(commands.Cog):
 
         #Output of the Modal form
         async def callback(self, interaction: discord.Interaction):
-            #Public embed with less information
             role = self._get_role(interaction)
-            #ping_value = role.mention if role is not None else "Role not found"
 
             embed = discord.Embed(title="Mitspieler gesucht!")
+            embed.add_field(name="", value="Es werden Mitspieler für eine gemeinsame Schicht gesucht! Wenn du mitmachen willst, reagiere mit ✅ auf diese Nachricht. Bei offenen Fragen kannst du per Rechtsklick auf diese Nachricht einen Thread eröffnen. Alle Nachrichten und Threads zur Spielersuche sind Out of Character (OOC).", inline=False)
             embed.add_field(name="Ersteller", value=interaction.user.mention, inline=False)
             embed.add_field(name="Tag", value=self.children[0].value, inline=False)
             embed.add_field(name="Zeit", value=self.children[1].value, inline=False)
@@ -88,18 +87,27 @@ class Matesearch(commands.Cog):
 
     #Slash command to trigger the Modal form
     @slash_command()
+    @commands.cooldown(1, 3600, commands.BucketType.default)  # 1-mal alle 3600 Sek. GLOBAL für den gesamten Bot
     async def spielersuche(self, ctx: discord.ApplicationContext):
         """Start a search for players."""
 
-## Only be able to send if last request is min 20h old
-
         config = self.Form._load_config(self)
         enable_search = config.getboolean("Matesearch","enable_search_mates")
         if not enable_search:
             return
-
         modal = self.Form(self.bot, title="Fill the form to search for players.") # type: ignore
         await ctx.send_modal(modal)
+
+    @spielersuche.error
+    async def spielersuche_error(self, ctx: discord.ApplicationContext, error: discord.DiscordException):
+        if isinstance(error, commands.CommandOnCooldown):
+            minuten, sekunden = divmod(int(error.retry_after), 60)
+            await ctx.respond(
+                f"Dieser Befehl ist global gesperrt. Bitte warte noch {minuten} Minuten und {sekunden} Sekunden, bis er wieder verfügbar ist.", 
+                ephemeral=True
+            )
+        else:
+            raise error
  
 
 def setup(bot: discord.Bot):