/Umstieg cooldown hinzugefügt

Discord hat diesen nervigen cooldown von 2 mal channel umbennen innerhalb von 10min. In dem cooldown hier ist es 1 mal pro 10 minuten, zur Sicherheit...
This commit is contained in:
Kaaninchen
2026-07-17 18:30:48 +02:00
parent 743ef62720
commit ffec60ecc2
4 changed files with 17 additions and 5 deletions
+8 -3
View File
@@ -1,6 +1,7 @@
import discord import discord
import random import random
from discord.ext import tasks import time
from discord.ext import tasks, commands
from config import config from config import config
from src.handlers import rename_vc from src.handlers import rename_vc
from src.commands import setup_commands from src.commands import setup_commands
@@ -10,7 +11,7 @@ from src.data.status import discord_status
bot = discord.Bot(intents=discord.Intents.all()) bot = discord.Bot(intents=discord.Intents.all())
setup_commands(bot) setup_commands(bot)
@tasks.loop(minutes=1) @tasks.loop(minutes=5)
async def change_status(): async def change_status():
status = random.choice(discord_status) status = random.choice(discord_status)
await bot.change_presence(activity=discord.Game(name=status)) await bot.change_presence(activity=discord.Game(name=status))
@@ -24,7 +25,11 @@ async def on_ready():
@bot.event @bot.event
async def on_application_command_error(ctx, error): async def on_application_command_error(ctx, error):
embed = build_error_embed(f"Ein Fehler ist aufgetreten: {error}") if isinstance(error, commands.CommandOnCooldown):
retry_timestamp = int(time.time() + error.retry_after)
embed = build_error_embed(f"Dein Umstieg ist erst <t:{retry_timestamp}:R> da! (Discord Cooldown)")
else:
embed = build_error_embed(f"Ein Fehler ist aufgetreten: {error}")
await ctx.respond(embed=embed) await ctx.respond(embed=embed)
try: try:
+2
View File
@@ -1,9 +1,11 @@
import discord import discord
from discord.ext import commands
from src.handlers import rename_vc from src.handlers import rename_vc
from src.embeds import build_info_embed, build_error_embed from src.embeds import build_info_embed, build_error_embed
def setup_commands(bot: discord.Bot): def setup_commands(bot: discord.Bot):
@bot.slash_command(description="Steige in den nächsten Zug! Beachte das Discord Spam limit (2x in 10min)") @bot.slash_command(description="Steige in den nächsten Zug! Beachte das Discord Spam limit (2x in 10min)")
@commands.cooldown(1, 600, commands.BucketType.guild)
async def umstieg(ctx): async def umstieg(ctx):
success = await rename_vc(bot) success = await rename_vc(bot)
if not success: if not success:
-1
View File
@@ -57,7 +57,6 @@ def build_info_embed() -> discord.Embed | None:
"Daten großzügig bereitgestellt von dbf.finalrewind.org" "Daten großzügig bereitgestellt von dbf.finalrewind.org"
) )
embed.set_footer(text=footer_text, icon_url="https://dbf.finalrewind.org/static/icons/icon-96x96.png") embed.set_footer(text=footer_text, icon_url="https://dbf.finalrewind.org/static/icons/icon-96x96.png")
return embed return embed
def build_error_embed(errormsg) -> discord.Embed: def build_error_embed(errormsg) -> discord.Embed:
+7 -1
View File
@@ -1,4 +1,5 @@
import discord import discord
import time
from config import config from config import config
from src.utils import random_connection from src.utils import random_connection
@@ -25,6 +26,11 @@ async def rename_vc(bot: discord.Bot) -> bool:
train = current['train'].split()[1] train = current['train'].split()[1]
train_name = f"{train} nach {current['destination']}" train_name = f"{train} nach {current['destination']}"
print(f"Umstieg: {train_name} von {current['station']} \nüber: {current['via']}") print("-----------------------------------------")
current_time = time.strftime('%X')
print(f"{current_time}: Umstieg: {train_name} (Typ {train_type}) von {current['station']}")
print(f"{current_time}: Wenn hier keine Nachricht mehr kommt bin ich im Cooldown")
await channel.edit(name=f"{config['formatting']}{train_name}",) await channel.edit(name=f"{config['formatting']}{train_name}",)
print(f"{current_time}: Name geändert!")
print("-----------------------------------------")
return True return True