Files
pixelpoebel/README.md

145 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 <channel>` 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 <zeit> <nachricht>` Timer hinzufügen
- `/timer remove <id>` Timer entfernen (Mod)
- `/timer list` Timer dieses Kanals
- `/timer listall` Alle Timer (Mod)
- `/timer help` Timer-Hilfe
### Trigger (Auto-Antworten)
- `/trigger add <wort> <antwort>` Trigger hinzufügen (Mod)
- `/trigger remove <wort>` Trigger entfernen (Mod)
- `/trigger list` Alle Trigger anzeigen
- `/trigger help` Trigger-Hilfe
### Twitch
- `/twitch online <kanal>` Prüft ob Kanal online ist
- `/twitch add <streamer1, streamer2, ...>` Streamer überwachen (Mod)
- `/twitch remove <streamer1, streamer2, ...>` 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> <discord>` Twitch-Kanal zum IRC-Monitoring hinzufügen (Mod)
- `/twitchmonitor remove <twitch>` Kanal vom Monitoring entfernen (Mod)
- `/twitchmonitor list` Alle überwachten Twitch-Kanäle
- `/twitchmonitor help` Hilfe anzeigen
### Rollen-Auswahl
- `/rolesetup create <#kanal> <name>` Rollen-Auswahl Message erstellen
- `/rolesetup add <kategorie> <@rolle> [emoji]` Rolle zur Auswahl hinzufügen
- `/rolesetup edit <kategorie> <rolle> [neues_emoji]` Emoji ändern
- `/rolesetup remove <kategorie> <rolle>` Rolle entfernen
- `/rolesetup delete <kategorie>` Kategorie löschen
- `/rolesetup config <kategorie> max:1 exclusive:true` Einstellungen
- `/rolesetup list` Alle Kategorien anzeigen
### Admin
- `/admin kick <user>` Nutzer kicken
- `/admin warn <user> <reason>` Nutzer verwarnen
- `/admin unwarn <user>` Letzte Warnung entfernen
- `/admin mute <user> <dauer> <einheit>` Nutzer muten
- `/admin unmute <user>` Nutzer entmuten
- `/admin ban <user>` Nutzer bannen
- `/admin unban <id>` Nutzer entbannen
- `/admin purge amount <1-100>` X Nachrichten löschen
- `/admin purge time <dauer> <min|hour>` Nachrichten der letzten X Zeit löschen
- `/admin purge user <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.