Statistik-Kanäle
Live-Server-Statistiken als Voice-Kanal-Namen
Statistik-Kanäle verwandeln gesperrte Voice-Kanäle in Live-Info-Anzeigen: Mitgliederzahlen, Online-Präsenz, Boosts, Rollen- und Kanal-Summen — automatisch alle 10 Minuten aktualisiert. Der Renderer überspringt Kanäle, deren Wert sich nicht geändert hat, sodass das strikte Discord-Budget von 2 Umbenennungen pro 10 Minuten nur dort verbraucht wird, wo es wirklich nötig ist. Custom-Bots nutzen ihr eigenes Rate-Limit-Budget und skalieren unabhängig.
Überblick
Der Statistik-Kanäle-Tab im Dashboard verwaltet eine Reihe gesperrter Voice-Kanäle, die Live-Werte im Namen anzeigen. Jeder Kanal ist mit einem Stat-Typ (z.B. Mitglieder, Online, Boosts) und einem Namens-Template wie '👥 Mitglieder: {value}' verknüpft. Ein Hintergrund-Worker reagiert auf ein Redis-Signal und einen 10-Minuten-Tick — Werte bleiben aktuell, ohne dass du etwas tun musst.
Schnellstart in 30 Sekunden
Wenn du nicht jeden Kanal manuell konfigurieren willst, klick auf der Statistik-Kanäle-Seite auf 'Schnellstart'. Der Bot erledigt dann:
- Erstellt eine Kategorie '📊 Server-Stats' ganz oben in deiner Kanalliste
- Erstellt 5 gesperrte Voice-Kanäle: Gesamt-Mitglieder, Online-Mitglieder, Menschen, Bots und Server-Boosts
- Rendert die Live-Werte in den nächsten 10 Minuten und startet den Auto-Update-Zyklus
Verfügbare Stat-Typen
Du kannst pro Server bis zu 10 Stat-Kanäle aus den folgenden Typen kombinieren:
| Stat | Beschreibung |
|---|---|
| Mitglieder gesamt | Jedes Server-Mitglied, inklusive Bots. |
| Online-Mitglieder | Mitglieder, die aktuell online sind (Status: online, idle oder dnd). Erfordert das Presence-Intent — siehe unten. |
| Menschen | Mitgliederzahl ohne Bots. |
| Bots | Anzahl der Bot-Accounts auf dem Server. |
| Server-Boosts | Aktive Nitro-Boosts, die zum Boost-Level des Servers beitragen. |
| Rollen | Gesamtzahl der Rollen im Server (ohne @everyone). |
| Kanäle | Gesamtzahl der Kanäle inklusive Kategorien, Text-, Voice- und Stage-Kanälen. |
| Neue Mitglieder heute | Mitglieder, die seit 00:00 in der Server-Zeitzone beigetreten sind. |
| Top-XP-Mitglied | Username des Mitglieds mit dem höchsten Rang aus dem Leveling-Modul. Erfordert ein aktiviertes Leveling-Modul. |
Eigene Namens-Templates
Jeder Kanal-Name wird aus einem Template gerendert, das den Platzhalter {value} enthält. Der Renderer ersetzt den Live-Wert, formatiert ihn (z.B. 1234 → 1.234) und schreibt das Ergebnis als Kanalname.
Ein paar Beispiele:
'👥 Mitglieder: {value}' → 👥 Mitglieder: 1.234''Online ▸ {value}' → Online ▸ 87''🚀 Boosts {value}' → 🚀 Boosts 12'Gerenderte Kanal-Namen sind auf 100 Zeichen begrenzt — das Discord-Limit. Das Dashboard zeigt eine Live-Vorschau, während du das Template bearbeitest.
Presence-Intent (für Online-Counter)
Der Online-Stat-Typ braucht das Discord-Presence-Intent. Das ist ein privilegiertes Intent — Bots auf mehr als 100 Servern brauchen explizite Freigabe von Discord, aber TeraOne läuft bereits mit aktivem Presence-Intent.
Wie oft Werte aktualisieren
Statistik-Kanäle folgen Discords Rate-Limit von 2 Umbenennungen pro 10 Minuten pro Kanal. Der Worker läuft daher auf einem festen 10-Minuten-Tick:
- Alle 10 Minuten prüft der Worker alle konfigurierten Kanäle des Servers
- Für jeden Kanal wird der aktuelle Wert berechnet und der gerenderte Name erzeugt
- Wenn der gerenderte Name dem letzten entspricht (Skip-When-Unchanged), wird der Kanal nicht angefasst — kein API-Call
- Andernfalls wird der Kanal über die Discord-REST-API umbenannt
Limits
Es gelten ein paar harte Limits:
- Maximal 10 Stat-Kanäle pro Server
- Gerenderte Kanal-Namen maximal 100 Zeichen
- Update-Intervall fest auf 10 Minuten (Discord-Rate-Limit)
- Templates müssen den {value}-Platzhalter enthalten
Troubleshooting
- Kanal-Name aktualisiert sich nicht
- Prüfe, dass TeraOne (oder dein Custom-Bot) die Berechtigung 'Kanäle verwalten' für den Kanal hat. Ohne diese Permission lehnt die Discord-API die Umbenennung ab und der Worker loggt einen Fehler.
- Online-Counter steht auf 0
- Aktiviere das Presence-Intent im Discord-Developer-Portal (Bot → Privileged Gateway Intents → Server Members Intent + Presence Intent). Bei TeraOne ist es schon aktiv; für Custom-Bots musst du es selbst aktivieren.
- Ich habe einen Kanal manuell umbenannt und er ist zurückgesprungen
- Das ist gewollt. Der Worker überschreibt manuelle Umbenennungen alle 10 Minuten, damit die Werte konsistent zum konfigurierten Template bleiben. Wenn du das Überschreiben stoppen willst, lösche den Kanal im Statistik-Kanäle-Tab des Dashboards — danach lässt der Bot ihn in Ruhe.
- Schnellstart sagt 'Kategorie existiert bereits'
- Wenn du die Kanäle vorher gelöscht, aber die Kategorie '📊 Server-Stats' behalten hast, versucht der Setup sie wiederzuverwenden. Lösche die Kategorie in Discord oder benenne sie um — der Bot legt nur dann automatisch eine an, wenn keine Kategorie mit diesem exakten Namen existiert.
Häufige Fragen
- Warum ist das Update-Intervall fest auf 10 Minuten?
- Discord limitiert Voice-Kanal-Umbenennungen auf 2 pro 10 Minuten pro Kanal. Häufigere Updates würden zu verworfenen Renames oder Rate-Limit-Fehlern führen. 10 Minuten ist die sicherste Frequenz für stabile Werte ohne Rate-Limit-Verbrauch.
- Zählen Stat-Kanäle in Discords Kanal-Limit?
- Ja. Jeder Stat-Kanal ist ein normaler Voice-Kanal. Discord erlaubt bis zu 500 Kanäle pro Server — 10 Stat-Kanäle sind also ein winziger Teil davon.
- Können Mitglieder den Stat-Voice-Kanälen beitreten?
- Nein. Der Schnellstart erstellt sie mit @everyone Verbinden auf Verweigert, sodass sie reine Anzeige-Kanäle sind. Du kannst das manuell ändern, ist aber selten sinnvoll für Stat-Kanäle.
- Funktioniert das mit einem Custom-Bot?
- Ja. Statistik-Kanäle respektieren die Custom-Bot-Precedence — wenn dein Server einen Custom-Bot konfiguriert hat, werden die Renames unter dessen Token und Rate-Limit-Budget ausgeführt. So teilt sich ein Custom-Bot bei Skalierung nicht das Rate-Limit-Pool von TeraOne.
- Was passiert, wenn mein Server kein Leveling-Modul aktiviert hat, aber ich einen Top-XP-Kanal hinzugefügt habe?
- Der Kanal-Name fällt auf einen Platzhalter ('—') zurück. Sobald du Leveling aktivierst und etwas XP gesammelt wurde, füllt sich der Wert beim nächsten Tick automatisch.