đ¤ Discord-Bot
Tribescore wird mit einem begleitenden Discord-Bot ausgeliefert, der den Wettbewerb deines Servers nach Discord bringt â eine live aktualisierte Bestenliste, Slash-Befehle zum Nachschlagen jedes Stammes und ein automatisches Missbrauchserkennungssystem, das verdächtige Punktevergaben meldet.
Der Bot verbindet sich direkt mit derselben MySQL-/MariaDB-Datenbank, die auch das Plugin verwendet. Er liest dabei ausschlieĂlich die Punktetabellen des Plugins â er ändert deine Punkte niemals â und lässt sich daher gefahrlos parallel zu einem laufenden Server betreiben.
Funktionen
- Live-Bestenliste â postet die besten Stämme in einem Kanal deiner Wahl und aktualisiert sie automatisch, mit â˛/âź-Bewegungspfeilen zwischen den Wertungsperioden.
- Darstellung als Bild oder Embed â zeige die Liste als klassisches Discord-Embed
oder als hochwertiges PNG, gerendert aus einem von sieben eingebauten Designs
(
podium,spotlight,cards,bars,terminal,ark,dark). Die Vorlagen sind reines HTML, das du fĂźr deinen Server umgestalten und mit deinem Branding versehen kannst. - Slash-Befehle â mit
/tribepointsund/getrankkĂśnnen Spieler Punktzahl und Rang jedes Stammes nachschlagen. Befehlsnamen und Nachrichten sind konfigurierbar. - Missbrauchserkennung â drei unabhängige Detektoren posten Warnungen, wenn eine Punktevergabe verdächtig aussieht, jeweils mit einer âDiese Warnung ignorieren"- Schaltfläche, um Fehlalarme stummzuschalten.
- Eigenständige ausfĂźhrbare Datei â wird als einzelne, in sich geschlossene
Windows-
.exeverteilt. Es sind weder ein Browser noch zusätzliche Installationen erforderlich, selbst fßr das Rendern von Bildern.
Voraussetzungen
- Das Tribescore-Plugin ist installiert und schreibt in eine MySQL-/MariaDB-Datenbank (siehe Konfiguration und Gemeinsame Konfiguration).
- Eine Discord-Anwendung und ein Bot-Token, erstellt im Discord Developer Portal.
- Ein Windows-Rechner, auf dem der Bot läuft â er kann Ăźberall laufen, wo die Datenbank erreichbar ist.
Installation
- Lade den Bot aus deinem Bytemart-Dashboard herunter und entpacke ihn.
- Ăffne die
config.ymlund konfiguriere sie (siehe unten). - Trage deinen Bot-Token und dein Datenbank-Passwort ein â entweder direkt in der
config.ymloder ßber die UmgebungsvariablenLEADERBOARD_BOT_TOKENundMYSQL_PASSWORD(empfohlen, damit Geheimnisse aus der Konfigurationsdatei herausgehalten werden). - Lade den Bot auf deinen Server ein und gib ihm die Berechtigung, in den Bestenlisten- und Warnkanälen Nachrichten, Embeds und Anhänge zu senden.
- FĂźhre die ausfĂźhrbare Datei aus. Beim ersten Start registriert er seine Slash-Befehle und postet die Bestenliste.
đĄ Wenn du einen Slash-Befehl in der
config.ymlumbenennst, muss der Bot unter Umständen aus dem Server entfernt und erneut eingeladen werden, bevor die Ănderung wirksam wird.
Konfiguration (config.yml)
Der Bot wird vollständig ßber die config.yml konfiguriert. Die wichtigsten
Einstellungen:
| Einstellung | Beschreibung |
|---|---|
bot-token |
Dein Discord-Bot-Token. Lasse es leer und setze stattdessen LEADERBOARD_BOT_TOKEN. |
period-start |
Cron-Ausdruck dafĂźr, wann eine neue Wertungsperiode beginnt (dann erfasst die Liste die Bewegungen als Snapshot). Siehe crontab.guru. |
timezone |
Zeitzone fĂźr die Zeitplanung und den Vergleich von Transaktionen â muss mit der Zeitzone deiner Datenbank Ăźbereinstimmen. |
refresh-cooldown |
Sekunden zwischen den Bestenlisten-Aktualisierungen innerhalb einer Periode. |
leaderboard-channel |
Die Kanal-ID, in der die Bestenliste gepostet wird. |
keep-leaderboard-history |
Bei true wird pro Periode eine frische Bestenlisten-Nachricht gepostet, anstatt die vorhandene zu bearbeiten. |
leaderboard-render-mode |
embed (Discord-Embed) oder image (gerendertes PNG). |
leaderboard-image |
Optionen fĂźr den Bildmodus: template, title, lines, width, scale. |
mysql |
Datenbankverbindung: host, port, user, password, database, leaderboard-table, transactions-table, timezone. |
commands |
Befehlsnamen, Beschreibungen und Antwortnachrichten. |
abuse-detection |
Aktivieren und Feinabstimmung der Missbrauchserkennungs-Module. |
â ď¸ Die
leaderboard-tableund dietransactions-tablemĂźssen mit den Tabellen des Plugins Ăźbereinstimmen â standardmäĂigts_leaderboardundts_transactions. Der Bot liest diese Tabellen und schreibt niemals in sie.
Darstellung der Bestenliste
Wähle mit leaderboard-render-mode, wie die Liste gerendert wird:
Im embed-Modus ist die Liste ein Text-Embed, das aus der leaderboard_embed.json
erstellt wird. Im image-Modus wird sie aus einer HTML-Vorlage unter
templates/leaderboard/<name>/ gerendert. Sollte das Rendern eines Bildes einmal
fehlschlagen, greift der Bot automatisch auf das Embed zurĂźck, sodass die Bestenliste
niemals offline gehen kann.
Slash-Befehle
| Befehl (Standard) | Beschreibung |
|---|---|
/tribepoints <tribe> |
Zeigt die aktuellen Punkte eines Stammes an. |
/getrank <tribe> |
Zeigt Rang und Punkte eines Stammes an. |
Sowohl die Befehlsnamen als auch ihre Antwortnachrichten sind unter commands in der
config.yml konfigurierbar, unter Verwendung der Platzhalter {tribe}, {points} und
{rank}.
Missbrauchserkennung
Wenn abuse-detection.enabled auf true steht, scannt der Bot regelmäĂig die besten
Stämme und postet eine Warnung an die konfigurierte channel-id, sobald ein Modul
anschlägt. Jede Warnung trägt eine âDiese Warnung ignorieren"-Schaltfläche, die
kßnftige Wiederholungen fßr dieses Stämme-Paar unterdrßckt.
| Modul | Erkennt |
|---|---|
rapid-increase |
Ein Stamm, der innerhalb einer Wertungsperiode eine ungewĂśhnlich groĂe Anzahl an Punkten gewinnt. |
massive-transaction |
Eine einzelne PunkteĂźbertragung oberhalb eines Schwellenwerts von einem Stamm zu einem anderen. |
prefered-source |
Ein Stamm, der einen groĂen Anteil seiner Punkte von einem einzigen Quell-Stamm erhält (mit optionaler âSpiegel"-PrĂźfung auf Gegenseitigkeit). |
Jedes Modul hat seinen eigenen cooldown, eigene Schwellenwerte und einen eigenen
Warn-title / eine eigene message â die verfĂźgbaren Platzhalter sind direkt in der
config.yml dokumentiert.
âšď¸ Der Bot erstellt eine eigene Tabelle,
ts_ignored_alerts, um sich zu merken, welche Warnungen du verworfen hast. Dies ist die einzige Tabelle, in die er schreibt; deine Punktedaten werden niemals verändert.