49 lines
1.7 KiB
Python
49 lines
1.7 KiB
Python
import os
|
|
import discord
|
|
from discord.ext import commands
|
|
from dotenv import load_dotenv
|
|
|
|
# Lade die Umgebungsvariablen aus der .env-Datei
|
|
load_dotenv()
|
|
TOKEN = os.getenv('DISCORD_TOKEN')
|
|
|
|
# Definiere die Intents (Berechtigungen), die dein Bot benötigt.
|
|
intents = discord.Intents.default()
|
|
intents.members = True # Notwendig für Willkommensnachrichten
|
|
intents.message_content = True # Notwendig, um Nachrichten zu lesen
|
|
|
|
# Erstelle die Bot-Instanz
|
|
bot = commands.Bot(command_prefix=None, intents=intents)
|
|
|
|
# Event, das beim Starten des Bots ausgeführt wird
|
|
@bot.event
|
|
async def on_ready():
|
|
"""Wird aufgerufen, wenn der Bot erfolgreich mit Discord verbunden ist."""
|
|
print(f'Erfolgreich eingeloggt als {bot.user.name} (ID: {bot.user.id})')
|
|
print('--------------------------------------------------')
|
|
await load_cogs()
|
|
# Synchronisiere die Slash-Commands mit Discord
|
|
try:
|
|
synced = await bot.tree.sync()
|
|
print(f'{len(synced)} Slash-Command(s) wurden synchronisiert.')
|
|
except Exception as e:
|
|
print(f'Fehler beim Synchronisieren der Commands: {e}')
|
|
|
|
async def load_cogs():
|
|
"""Sucht im 'cogs'-Ordner nach Python-Dateien und lädt sie als Erweiterungen."""
|
|
print("Lade Cogs...")
|
|
for filename in os.listdir('./cogs'):
|
|
if filename.endswith('.py'):
|
|
try:
|
|
await bot.load_extension(f'cogs.{filename[:-3]}')
|
|
print(f'-> Cog "{filename[:-3]}" wurde geladen.')
|
|
except Exception as e:
|
|
print(f'Fehler beim Laden von Cog "{filename[:-3]}": {e}')
|
|
|
|
# Starte den Bot mit dem Token
|
|
if __name__ == "__main__":
|
|
if TOKEN is None:
|
|
print("FEHLER: DISCORD_TOKEN wurde nicht in der .env-Datei gefunden!")
|
|
else:
|
|
bot.run(TOKEN)
|