Bukkit Connect: Minecraft-Server und Webseite verbinden
3 Min. LesezeitServer, Plugins & Streaming
Viele Server-Communities wollen auf ihrer Webseite zeigen, wer gerade online ist – oder Aktionen aus dem Web direkt im Spiel auslösen. Dafür gibt es mehrere Wege, die sich in Aufwand und Risiko deutlich unterscheiden.
Welche Daten brauchst du wirklich?
Bevor du etwas einrichtest, lohnt eine ehrliche Bestandsaufnahme. Soll die Webseite nur anzeigen, ob der Server läuft und wie viele Spieler online sind? Brauchst du Spielernamen, Statistiken oder Ranglisten? Oder sollen Aktionen im Web – etwa eine Freischaltung nach einer Anmeldung – Befehle im Spiel ausführen? Je mehr Kontrolle das Web bekommt, desto sorgfältiger musst du die Verbindung absichern.
Status-Ping: der einfachste Weg
Jeder Java-Server beantwortet den sogenannten Server List Ping. Das ist dieselbe Abfrage, die der Minecraft-Client für die Serverliste im Mehrspielermenü nutzt. Die Antwort enthält Version, Beschreibung (MOTD), die Zahl der Spieler und das Serversymbol. Es muss nichts zusätzlich aktiviert werden, und die Abfrage läuft über den normalen Spielport. Für eine Statusanzeige auf der Homepage ist das meist genug. Bibliotheken für PHP, Python oder JavaScript gibt es reichlich; das Ergebnis solltest du zwischenspeichern, statt bei jedem Seitenaufruf neu zu fragen.
Query: mehr Details
Das Query-Protokoll liefert zusätzlich die Namen der Spieler, die Karte und – je nach Server – die Liste der Plugins. In der server.properties wird es mit enable-query=true eingeschaltet; es läuft über UDP, standardmäßig auf dem Spielport. Da Query auch Informationen preisgibt, die nicht jeder sehen muss, lohnt es, die Abfrage per Firewall auf den eigenen Webserver zu beschränken.
RCON: Fernsteuerung mit Vorsicht
RCON erlaubt es, Serverbefehle aus der Ferne auszuführen – genau so, als würdest du sie in die Serverkonsole tippen. Aktiviert wird es mit enable-rcon=true, einem Port (Standard 25575) und einem Passwort. Damit kann eine Webanwendung zum Beispiel einen Spieler auf die Whitelist setzen.
Eigenes Plugin mit Schnittstelle
Die flexibelste Lösung ist ein Plugin, das Daten gezielt nach außen gibt. Zwei Muster sind verbreitet:
- Gemeinsame Datenbank: Das Plugin schreibt Statistiken in eine MySQL- oder MariaDB-Datenbank, die Webseite liest sie aus. Umgekehrt legt die Webseite Aufträge in eine Tabelle, die das Plugin regelmäßig abarbeitet.
- Kleine HTTP-Schnittstelle: Das Plugin öffnet einen eigenen Endpunkt, der nur bestimmte, vorher festgelegte Aktionen erlaubt und jede Anfrage mit einem geheimen Token prüft.
Beide Wege haben den Vorteil, dass die Webseite nur darf, was du ausdrücklich vorsiehst – anders als bei RCON, das jeden Befehl ausführt. Wie du ein solches Plugin beginnst, zeigt die Anleitung zum ersten Minecraft-Plugin.
Die Wege im Vergleich
| Weg | Liefert | Einrichtung | Risiko |
|---|---|---|---|
| Status-Ping | Version, MOTD, Spielerzahl | keine | sehr gering |
| Query | zusätzlich Spielernamen, Plugins | Einstellung in server.properties | gering |
| RCON | beliebige Befehle | Einstellung plus Passwort | hoch, wenn offen |
| Eigenes Plugin | genau das, was du freigibst | Programmierung | steuerbar |
Sicherheit für die Webseite
Eine Verbindung zum Spielserver macht die Webseite zu einem attraktiven Ziel. Admin-Bereiche brauchen einen sicheren Login, Zugangsdaten gehören in eine Konfigurationsdatei außerhalb des öffentlichen Webverzeichnisses, und Datenbankbenutzer sollten nur die Rechte haben, die sie wirklich benötigen. Protokolliere außerdem, welche Aktionen aus dem Web ausgelöst wurden – bei Problemen ist das Gold wert.
Alle Einstellungen der server.properties erklärt das Minecraft Wiki. Für den Betrieb des Servers selbst helfen die Linux-Server-Grundlagen.