4.7 KiB
4.7 KiB
PlayerStatusSign Plugin
Beschreibung
PlayerStatusSign ist ein Bukkit/Spigot-Plugin für Minecraft-Server, das es ermöglicht, Schilder zu erstellen, die den Online-, Offline- oder AFK-Status eines Spielers anzeigen. Spieler können durch Interaktion mit diesen Schildern Statistiken wie Spielzeit, Tode, Kills, abgebaute Blöcke und gelaufene Distanz einsehen. Das Plugin bietet zudem Funktionen wie AFK-Erkennung, Fake-Offline-Modus und Gamemode-Wechsel bei AFK-Status.
Hauptfunktionen
- Status-Schilder: Schilder zeigen den Status eines Spielers (Online, AFK, Offline mit letztem Login-Datum) an.
- AFK-Erkennung: Automatische Erkennung von Inaktivität basierend auf einer konfigurierbaren Zeitspanne (Standard: 5 Minuten).
- Fake-Offline-Modus: Spieler können sich als offline anzeigen lassen, obwohl sie online sind.
- Statistik-GUI: Rechtsklick auf ein Schild öffnet eine GUI mit Spielerstatistiken (Spielzeit, Tode, Kills, abgebaute Blöcke, gelaufene Distanz).
- Konfiguration: Anpassbare Farben, Nachrichten, Zeitformate und AFK-Optionen in der
config.yml
. - Datenpersistenz: Speichert Schild- und Spielerdaten in
playerstatussign_signs.yml
undplayerstatussign_players.yml
.
Befehle
- /statussign [reload|help]:
reload
: Lädt Konfiguration und Daten neu (benötigtstatussign.admin
).help
: Zeigt die Hilfe an.
- /statusafk: Schaltet den AFK-Status des Spielers um (benötigt
statussign.admin
). - /statusoffline: Setzt den Spieler auf Fake-Offline (benötigt
statussign.admin
). - /statusonline: Hebt den Fake-Offline-Status auf (benötigt
statussign.admin
).
Berechtigungen
- statussign.admin: Erlaubt das Erstellen/Entfernen von Schildern, Verwenden von Befehlen und Ändern des AFK-/Offline-Status.
- statussign.use: Erlaubt das Öffnen der Statistik-GUI durch Rechtsklick auf Schilder.
Schild-Erstellung
- Platziere ein Schild.
- Schreibe in die erste Zeile:
[<prefix>]
(Standard:[Status]
). - Schreibe in die zweite Zeile den Spielernamen.
- Das Schild wird automatisch mit dem Status des Spielers aktualisiert.
Hinweis: Nur Spieler mit statussign.admin
können Schilder erstellen oder entfernen (Entfernen erfordert Schleichen).
Konfiguration
Die Konfigurationsdatei (config.yml
) enthält folgende Einstellungen:
prefix: "Status" # Präfix für Schilder
colors:
online: "&a" # Farbe für Online-Status
afk: "&e" # Farbe für AFK-Status
offline: "&c" # Farbe für Offline-Status
player: "&9" # Farbe für Spielernamen
date-format: "dd.MM.yyyy HH:mm" # Datumsformat für Offline-Status
afk-timeout-seconds: 300 # Inaktivitätsschwelle für AFK (in Sekunden)
afk-change-gamemode: true # Wechselt den Gamemode bei AFK zu Adventure
Datenstruktur
- playerstatussign_signs.yml: Speichert Schildpositionen und zugehörige Spielernamen.
- playerstatussign_players.yml: Speichert Spielerstatistiken und letzte Login-Zeiten.
Technische Details
- Sprache: Java, entwickelt für Bukkit/Spigot.
- Abhängigkeiten: Keine externen Abhängigkeiten außer der Bukkit-API.
- Version: 1.0.6 (wie im Code angegeben).
- Autor: M_Viper
- Ereignisse:
SignChangeEvent
: Erstellung von Status-Schildern.PlayerInteractEvent
: Öffnen der Statistik-GUI.BlockBreakEvent
: Entfernen von Schildern.PlayerMoveEvent
: Erkennung von Spielerbewegungen für AFK-Status.PlayerQuitEvent
: Speichern von Statistiken beim Verlassen.
- Scheduler: Aktualisiert Schilder und prüft AFK-Status alle 5 Sekunden.
Installation
- Kompiliere den Code oder lade die
.jar
-Datei. - Platziere die
.jar
implugins
-Ordner deines Servers. - Starte den Server, um die Konfigurationsdateien zu generieren.
- Passe
config.yml
nach Bedarf an. - Starte den Server neu oder verwende
/statussign reload
.
Bekannte Einschränkungen
- Fehlerbehandlung bei ungültigen Welten oder beschädigten Konfigurationsdateien könnte verbessert werden.
- Keine Unterstützung für mehrere Schilder pro Spieler an derselben Position ohne zusätzliche Logik.
- GUI-Statistiken sind auf vordefinierte Werte beschränkt (Spielzeit, Tode, Kills, Blöcke, Distanz).
Fehlerbehebung
- Plugin lädt nicht: Überprüfe die Server-Konsole auf Fehler (z. B. ungültige
config.yml
). - Schilder aktualisieren nicht: Stelle sicher, dass der Scheduler läuft und die Schildpositionen korrekt in
playerstatussign_signs.yml
gespeichert sind. - GUI zeigt falsche Daten: Überprüfe, ob die Statistiken in
playerstatussign_players.yml
korrekt gespeichert werden.