Thanks for your question :clap:, if someone gives you an answer it would be great if you thanked them with a :white_check_mark: in response. This response will earn you both points for special roles on this server.
#Interactions Py Disocrd Aktualisiert sich nicht
1 messages · Page 1 of 1 (latest)
from asyncio import tasks
from interactions import Client, Intents, listen
from interactions import slash_command, SlashContext
from interactions import Permissions, slash_default_member_permission
from interactions import Embed, Colour
from datetime import datetime, timedelta
import json
import os
import asyncio
###### GIVEAWAY ######
@slash_command(name="giveaway", description="Starte ein Giveaway")
async def giveaway(ctx: SlashContext):
await ctx.send("Wie lautet der Gewinn?")
try:
prize_msg = await bot.wait_for('message', check=lambda m: m.author == ctx.author, timeout=60.0)
prize = prize_msg.content
await ctx.send("Wann ist die Verlosung? (Format: YYYY-MM-DD HH:MM) Bsp.:2024-12-24 20:04")
try:
draw_time_msg = await bot.wait_for('message', check=lambda m: m.author == ctx.author, timeout=60.0)
draw_time = datetime.strptime(draw_time_msg.content, "%Y-%m-%d %H:%M")
countdown_task = asyncio.create_task(countdown(ctx, prize, draw_time))
await ctx.send("Giveaway wird gestartet!")
except asyncio.TimeoutError:
await ctx.send("Zeitüberschreitung. Bitte versuche es erneut.")
except asyncio.TimeoutError:
await ctx.send("Zeitüberschreitung. Bitte versuche es erneut.")
async def countdown(ctx: SlashContext, prize: str, draw_time: datetime):
while True:
now = datetime.now()
if now < draw_time:
remaining_time = draw_time - now
remaining_str = format_timedelta(remaining_time)
embed = Embed(title="Giveaway", description=f"Preis: {prize}\nVerbleibende Zeit: {remaining_str}", color=0x00ff00)
await ctx.edit_original_message(embed=embed)
await asyncio.sleep(1)
else:
embed = Embed(title="Giveaway beendet", description=f"Der Gewinner des Giveaways für {prize} wurde ermittelt!", color=0xff0000)
await ctx.send(embed=embed)
break
def format_timedelta(td: timedelta) -> str:
seconds = td.total_seconds()
intervals = (
('Wochen', 60*60*24*7),
('Tage', 60*60*24),
('Stunden', 60*60),
('Minuten', 60),
('Sekunden', 1),
)
result = []
for name, count in intervals:
value = seconds // count
if value:
seconds -= value * count
result.append(f"{int(value)} {name}")
return ', '.join(result)
###### SETUP SERVEER START ######
@slash_command(name="boteinrichten", description="Server einrichtung")
@slash_default_member_permission(Permissions.ADMINISTRATOR)
async def bot_setup(ctx):
member = ctx.author
embed = Embed(title=f"Vielen Dank, dass Sie sich für AsFa entschieden haben",
description='Wir werden versuchen ihnen das beste Benutzererlebnis zu bieten.',
color=0x49d7e7)
embed.set_author(name=str(member), icon_url=member.avatar_url)
embed.add_field(name=" 🔹 **Was wir Bieten**",
value="🔸 Ein sicheres Ticket-Support System \n🔸 Selbst löschende Nachrichten \n🔸 Praktische Befehle für Moderatoren (/helpM)")
# ➊➋➌➍➎➏➐➑➒‣
embed.set_thumbnail(url="https://cdn.discordapp.com/attachments/......
")
await ctx.send(embed=embed, ephemeral=True)
bot.start("TOKEN")
Weiß jemand woran das liegen kann?
@river spire fabvali's Question:
Weißt du woran es lieg
Es scheint, dass Ihre Frage unvollständig ist. Bitte geben Sie mehr Informationen oder Kontext, damit ich Ihnen besser helfen kann.
@river spire fabvali's Question:
Ich habe die etwas neuere discord bot Interactions Gallerie ausprobiert und es funktioniert auch mit dem Befehl /boteinrichten. aber alle anderen neuen slash commands die ich einfüge werden nicht aktzeptiert und auch nicht mal unter slash angezeigt.
Wenn Sie Probleme mit Slash-Befehlen bei der Entwicklung von Discord-Bots haben und Ihre neu hinzugefügten Befehle nicht angezeigt werden, könnten folgende Punkte das Problem sein:
-
Registrierung der Befehle: Überprüfen Sie, ob Sie die Befehle richtig bei Discord registriert haben. Dies kann entweder über einen HTTP-Request an die Discord-API oder durch ein Tool/Bibliothek, das/die Sie verwenden (wie discord.js, discord.py), geschehen.
-
Cache: Discord manchmal dauert es eine Weile, bis neue Slash-Befehle im Client sichtbar werden. Warten Sie einige Minuten, oder versuchen Sie, den Client neu zu starten.
-
Berechtigungen: Stellen Sie sicher, dass Ihr Bot die richtigen Berechtigungen hat, um Slash-Befehle im jeweiligen Server zu erstellen und zu verwalten.
-
Guild vs. Global: Wenn Sie Befehle nur für einen bestimmten Server (Guild) registrieren, erscheinen sie nicht global. Befehle, die global registriert werden, können bis zu einer Stunde dauern, um bei allen Servern zu erscheinen.
-
Aktualisierung der Bots-Rechte: Wenn Änderungen an den Berechtigungen vorgenommen wurden, könnte es notwendig sein, den Bot erneut zum Server hinzuzufügen, damit die neuen Berechtigungen wirksam werden.
-
API-Version: Discord aktualisiert regelmäßig ihre API und es könnte sein, dass sich Änderungen auf die Funktionsweise der Slash-Befehle ausgewirkt haben. Stellen Sie sicher, dass Sie die neueste Version der Bibliothek verwenden, die die aktuellen API-Änderungen unterstützt.
-
Code Überprüfung: Gehen Sie sicher, dass Ihr Code keine Fehler enthält und dass die Befehle korrekt an die Discord API gesendet werden.
Wenn dieser allgemeine Rat nicht hilft,