# Pixelpöbel Discord Bot Ein moderner, modularer Discord-Bot in TypeScript. ## 🚀 Installation ```bash npm install ``` ## ⚙️ Konfiguration Erstelle `.env` Datei: ```env DISCORD_TOKEN=dein_bot_token CLIENT_ID=deine_client_id TWITCH_CLIENT_ID=deine_twitch_id TWITCH_CLIENT_SECRET=dein_twitch_secret TWITCH_USERNAME=dein_twitch_username TWITCH_OAUTH_TOKEN=oauth:xxxxxxxxxxxxxxxxxx BOT_OWNER_ID=deine_discord_user_id ``` ### TwitchMonitor Setup 1. **Twitch OAuth Token holen:** https://chatterino.com/client_login 2. **Username:** Dein Twitch Username 3. **Bot Owner ID:** Deine Discord User ID (für Fehlerbenachrichtigungen) > ⚠️ **Hinweis:** Der Twitch OAuth Token kann ungültig werden. In diesem Fall wirst du automatisch per Discord DM benachrichtigt. ## 🚀 Start ```bash # Development npm run dev # Production npm run build npm start ``` ## 🐳 Docker ```bash # Build und Start docker-compose up -d --build # Logs ansehen docker-compose logs -f pixelpoebel-bot # Stoppen docker-compose down # Container neu bauen docker-compose up -d --build --force-recreate ``` ## 📋 Commands registrieren ```bash npm run deploy ``` ## 🎮 Befehle ### Öffentlich - `/ping` – Latenz test - `/help` – Alle Befehle - `/twitch online ` – Twitch-Status - `/twitch list` – Überwachte Kanäle - `/twitch help` – Twitch-Hilfe - `/timer list` – Timer dieses Kanals - `/timer help` – Timer-Hilfe - `/trigger list` – Alle Trigger anzeigen - `/trigger help` – Trigger-Hilfe ### Timer (Erinnerungen) - `/timer add ` – Timer hinzufügen - `/timer remove ` – Timer entfernen (Mod) - `/timer list` – Timer dieses Kanals - `/timer listall` – Alle Timer (Mod) - `/timer help` – Timer-Hilfe ### Trigger (Auto-Antworten) - `/trigger add ` – Trigger hinzufügen (Mod) - `/trigger remove ` – Trigger entfernen (Mod) - `/trigger list` – Alle Trigger anzeigen - `/trigger help` – Trigger-Hilfe ### Twitch - `/twitch online ` – Prüft ob Kanal online ist - `/twitch add ` – Streamer überwachen (Mod) - `/twitch remove ` – Streamer entfernen (Mod) - `/twitch list` – Überwachte Kanäle - `/twitch listall` – Alle überwachten Streamer (Mod) - `/twitch help` – Twitch-Hilfe ### TwitchMonitor (IRC Chat Logging) - `/twitchmonitor add ` – Twitch-Kanal zum IRC-Monitoring hinzufügen (Mod) - `/twitchmonitor remove ` – Kanal vom Monitoring entfernen (Mod) - `/twitchmonitor list` – Alle überwachten Twitch-Kanäle - `/twitchmonitor help` – Hilfe anzeigen ### Rollen-Auswahl - `/rolesetup create <#kanal> ` – Rollen-Auswahl Message erstellen - `/rolesetup add <@rolle> [emoji]` – Rolle zur Auswahl hinzufügen - `/rolesetup edit [neues_emoji]` – Emoji ändern - `/rolesetup remove ` – Rolle entfernen - `/rolesetup delete ` – Kategorie löschen - `/rolesetup config max:1 exclusive:true` – Einstellungen - `/rolesetup list` – Alle Kategorien anzeigen ### Admin - `/admin kick ` – Nutzer kicken - `/admin warn ` – Nutzer verwarnen - `/admin unwarn ` – Letzte Warnung entfernen - `/admin mute ` – Nutzer muten - `/admin unmute ` – Nutzer entmuten - `/admin ban ` – Nutzer bannen - `/admin unban ` – Nutzer entbannen - `/admin purge amount <1-100>` – X Nachrichten löschen - `/admin purge time ` – Nachrichten der letzten X Zeit löschen - `/admin purge user <1-100>` – X Nachrichten eines Nutzers löschen - `/admin purge all` – Alle Nachrichten löschen (max 100) - `/admin config` – Warn-System konfigurieren - `/admin help` – Admin-Hilfe ### Owner - `/owner deploy` – Commands neu registrieren - `/owner stats` – Bot-Statistiken - `/owner servers` – Alle Server - `/owner help` – Owner-Hilfe ## 📡 Features & Optimierungen - ✅ **Modular Architecture:** TypeScript-basiert, ESM-Unterstützung. - ✅ **High Performance Database:** SQLite mit **WAL-Modus** und **In-Memory Caching** für Guild-Settings und Trigger. - ✅ **Optimized Twitch Polling:** Nutzt **Batch-Requests** (100 Kanäle pro Request) und ein 2-Minuten-Intervall für zeitnahe Benachrichtigungen. - ✅ **TwitchMonitor IRC:** Echtzeit IRC Chat-Logging (Mod-Events) via Webhooks und FIFO-Cache. - ✅ **Advanced Moderation:** Warn-System mit Auto-Actions, umfangreiches Purge-System. - ✅ **Role Selection:** Self-Service Rollen-System über Discord Select Menus. - ✅ **Reminders:** Intelligentes Zeit-Parsing (z.B. "morgen 15:00", "30min"). - ✅ **Event Logging:** Detaillierte Erfassung von Server-Ereignissen. - ✅ **Docker Support:** Containerisiertes Deployment inklusive Volume-Mounts für Daten.