58 lines
1.5 KiB
Python
58 lines
1.5 KiB
Python
import discord
|
|
from discord.ext import commands
|
|
import skills as skills
|
|
import asyncio
|
|
import yaml
|
|
|
|
with open("token.yaml", "r") as yamlfile:
|
|
data = yaml.load(yamlfile, Loader=yaml.FullLoader)
|
|
|
|
# -----------------------------
|
|
# Discord Intents
|
|
# -----------------------------
|
|
intents = discord.Intents.default()
|
|
intents.message_content = True
|
|
|
|
bot = commands.Bot(command_prefix="!", intents=intents)
|
|
|
|
|
|
# -----------------------------
|
|
# Events
|
|
# -----------------------------
|
|
@bot.event
|
|
async def on_ready():
|
|
print(f"Logged in as {bot.user} ✅")
|
|
|
|
@bot.event
|
|
async def on_message(message):
|
|
# Bot ignoriert eigene Nachrichten
|
|
if message.author == bot.user:
|
|
return
|
|
|
|
try:
|
|
# Wenn Nachricht ein Command ist, nur Commands verarbeiten
|
|
if message.content.startswith(bot.command_prefix):
|
|
await bot.process_commands(message)
|
|
return
|
|
|
|
# Alles andere → skills.process_text
|
|
loop = asyncio.get_running_loop()
|
|
result = await loop.run_in_executor(None, skills.process_text, message.content)
|
|
|
|
# Längere Ausgaben als Code-Block
|
|
if len(result) > 1900:
|
|
await message.channel.send(f"```\n{result}\n```")
|
|
else:
|
|
await message.channel.send(result)
|
|
|
|
except Exception as e:
|
|
print(f"Error in on_message: {e}")
|
|
await message.channel.send(f"⚠️ Fehler: {e}")
|
|
|
|
|
|
# -----------------------------
|
|
# Bot starten
|
|
# -----------------------------
|
|
|
|
bot.run(data[0]['token'])
|