All checks were successful
Auto Build and Push Docker Image / build (push) Successful in 8s
149 lines
4.3 KiB
Markdown
149 lines
4.3 KiB
Markdown
# 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
|
||
|
||
- ✅ Modular Architecture
|
||
- ✅ TypeScript
|
||
- ✅ SQLite Database
|
||
- ✅ Twitch Monitoring (Stream-Status)
|
||
- ✅ TwitchMonitor IRC Chat Logging (Mod-Events)
|
||
- ✅ Rollen-Auswahl (Self-Service)
|
||
- ✅ Moderation Tools
|
||
- ✅ Konfigurierbares Warn-System
|
||
- ✅ Auto-Antworten (Trigger)
|
||
- ✅ Timer & Erinnerungen
|
||
- ✅ Welcome/Goodbye Messages
|
||
- ✅ Event Logging
|
||
- ✅ Docker Support
|