Pixelpöbel Discord Bot

Ein moderner, modularer Discord-Bot in TypeScript.

🚀 Installation

npm install

⚙️ Konfiguration

Erstelle .env Datei:

DISCORD_TOKEN=dein_bot_token
CLIENT_ID=deine_client_id
TWITCH_CLIENT_ID=deine_twitch_id
TWITCH_CLIENT_SECRET=deine_twitch_secret
TWITCH_USERNAME=dein_twitch_username
TWITCH_OAUTH_TOKEN=oauth:xxxxxxxxxxxxxxxxxx
BOT_OWNER_ID=deine_discord_user_id

# Optional: Automatische Slash-Command Registrierung bei Bot-Start (default: true)
AUTO_DEPLOY=true

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

# Development
npm run dev

# Production
npm run build
npm start

🐳 Docker

# 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

Befehle werden standardmäßig automatisch bei jedem Bot-Start registriert. Du kannst dies über AUTO_DEPLOY=false in der .env deaktivieren.

Für manuelle Updates oder im Notfall:

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, strikte Typisierung.
  • High Performance Database: SQLite mit WAL-Modus, Fremdschlüssel-Unterstützung und chirurgischem In-Memory Caching für Guild-Settings und Trigger.
  • Optimized Twitch Polling: Nutzt Batch-Requests (100 Kanäle pro Request), Datenbank-Transaktionen und ein 2-Minuten-Intervall für zeitnahe Benachrichtigungen.
  • TwitchMonitor IRC: Echtzeit IRC Chat-Logging (Mod-Events) via wiederverwendbaren 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.
Description
No description provided
Readme 406 KiB
Languages
TypeScript 99.9%
Dockerfile 0.1%