63 lines
1.5 KiB
Python
63 lines
1.5 KiB
Python
import logging
|
|
import asyncio
|
|
import os
|
|
|
|
import discord
|
|
from discord import Guild
|
|
from discord import app_commands
|
|
from discord import Interaction
|
|
|
|
from client import Client
|
|
import secret_handler
|
|
|
|
bot_info = {'version': '1.1.0', 'date': '20.02.2024'}
|
|
|
|
logger = logging.getLogger('discord')
|
|
logger.setLevel(logging.DEBUG)
|
|
|
|
logging.getLogger('discord.http').setLevel(logging.INFO)
|
|
|
|
handler = logging.FileHandler(filename='data/log/discord.log', encoding='utf-8', mode='a')
|
|
formatter = logging.Formatter('%(asctime)s|%(levelname)s|%(name)s|:%(message)s')
|
|
|
|
handler.setFormatter(formatter)
|
|
logger.addHandler(handler)
|
|
|
|
bot = Client(intents=discord.Intents.all(), command_prefix="!", log=logger, bot_info=bot_info)
|
|
|
|
|
|
async def load_cogs():
|
|
for filename in os.listdir("./cogs"):
|
|
if filename.endswith("py") and filename != "__init__.py":
|
|
await bot.load_extension(f"cogs.{filename[:-3]}")
|
|
|
|
|
|
@bot.event
|
|
async def on_guild_join(guild: Guild):
|
|
logger.info("Joined guild")
|
|
|
|
|
|
@bot.event
|
|
async def on_guild_remove(guild: Guild):
|
|
logger.info("Left guild")
|
|
|
|
|
|
@bot.event
|
|
async def on_ready():
|
|
logger.info(f"Logged in as: {bot.user.name} with ID {bot.user.id}")
|
|
await load_cogs()
|
|
await asyncio.sleep(1)
|
|
synced = await bot.tree.sync()
|
|
logger.info(f"Synced {len(synced)} command(s)")
|
|
|
|
|
|
@bot.event
|
|
async def on_app_command_error(interaction: Interaction, error):
|
|
if isinstance(error, app_commands.MissingPermissions):
|
|
await interaction.response.send_message(content="Du hast keine Adminrechte", ephemeral=True)
|
|
else:
|
|
raise error
|
|
|
|
|
|
bot.run(secret_handler.get_bot_token())
|