Files
TicketSystem/README.md
2026-02-23 12:07:52 +00:00

13 KiB
Raw Blame History

TicketSystem

Version Java Type

TicketSystem ist das flexible, moderne Support- und Feedback-Plugin für Minecraft-Server (Spigot/Paper 1.18.x1.21.x, Java 17+). Es bietet flexible Speicherung, automatische Backups & Migration, Export/Import, Statistiken, dynamische GUI, Kategorie- und Prioritäten-System, Bewertungs- und Kommentar-System, FAQ-System, Discord-Webhook und volle BungeeCord-Unterstützung.


Features

  • MySQL oder Datei-Speicherung (YAML/JSON oder MySQL/MariaDB, jederzeit umschaltbar)
  • Automatische Backups & Migration
  • Export/Import von Tickets
  • Statistiken & Archivierung
  • Rollenbasierter Archiv-Zugriff
  • Konfigurierbare Speicherpfade
  • Vollständige Validierung & Fehlerausgaben
  • Debug-Modus & Versionsprüfung
  • Anpassbare Nachrichten, Farben, Limits, Speicherpfade, Archiv-Intervall, Cooldowns, Rechte
  • Dynamische GUI mit Seiten-System
  • Kategorie- und Prioritäten-System
  • Bewertungs- und Kommentar-System
  • Offline-Benachrichtigungen
  • Discord-Webhook mit Embeds & Rollen-Ping
  • Blacklist für Spieler
  • FAQ-System mit eigenem GUI, eigener Datei (faqs.yml) und vollständiger In-Game-Verwaltung durch Admins
  • Performance-Caching TTL-basierter In-Memory-Cache reduziert Datenbankabfragen spürbar
  • Saubere Konsole minimale Start-Logs, kein unnötiger Spam
  • Erweiterbarkeit: viele Hooks
  • BungeeCord-Unterstützung: serverübergreifende Tickets, Teleports, Weiterleitungen, Benachrichtigungen

Installation & Setup

  1. TicketSystem.jar in den plugins-Ordner legen und Server starten
  2. config.yml anpassen (Speicherorte, Nachrichten, Limits, Farben, MySQL-Daten etc.)
  3. /ticket-Befehle nutzen

Befehle & Rechte

Übersicht der Befehle

Befehl Beschreibung Nutzergruppe
/ticket Hilfe & Übersicht Spieler, Support
/ticket create [Kategorie] [Priorität] <Text> Ticket erstellen Spieler
/ticket list Eigene Tickets in der GUI anzeigen Spieler
/ticket comment <ID> <Nachricht> Kommentar hinzufügen Spieler, Support
/ticket rate <ID> <good|bad> Support bewerten Spieler
/ticket faq FAQ-GUI öffnen (häufige Fragen) Spieler
/ticket faq list FAQs im Chat auflisten Spieler
/ticket faq add <Frage> | <Antwort> Neues FAQ hinzufügen Admin
/ticket faq edit <ID> <Frage> | <Antwort> Bestehendes FAQ bearbeiten Admin
/ticket faq delete <ID> FAQ löschen Admin
/ticket faq reload FAQs aus faqs.yml neu laden Admin
/ticket claim <ID> Ticket annehmen Support/Admin
/ticket close <ID> [Kommentar] Ticket schließen Support/Admin
/ticket forward <ID> <Spieler> Ticket weiterleiten Support/Admin
/ticket setpriority <ID> <low|normal|high|urgent> Priorität ändern Support/Admin
/ticket reload Konfiguration neu laden Admin
/ticket stats Statistiken anzeigen Admin
/ticket archive Tickets archivieren Admin
/ticket blacklist <add|remove|list> [Spieler] [Grund] Blacklist verwalten Admin
/ticket migrate <tomysql|tofile> Speicherart wechseln Admin
/ticket export <Dateiname> Tickets exportieren Admin
/ticket import <Dateiname> Tickets importieren Admin
/ticket teleport <ID> Teleport zu Ticket (BungeeCord) Support/Admin

Rechte

Permission Beschreibung Standard
ticket.create Ticket erstellen alle Spieler
ticket.support Tickets einsehen, claimen, schließen, Priorität ändern manuell vergeben
ticket.archive Archiv öffnen, Tickets permanent löschen manuell vergeben
ticket.admin Voller Zugriff inkl. Weiterleitung, Reload, Blacklist, FAQ-Verwaltung OP

ticket.archive ist nicht in ticket.admin enthalten und muss explizit vergeben werden.


FAQ-System

Das FAQ-System ermöglicht es Admins, häufige Fragen und Antworten direkt im Spiel zu verwalten. Spieler können die FAQs per GUI oder Befehl einsehen.

Für Spieler

/ticket faq           öffnet die FAQ-GUI mit Custom-Skull-Items
/ticket faq list      listet alle FAQs im Chat auf

In der GUI wird für jeden FAQ-Eintrag ein Custom-Skull-Item mit individueller Textur angezeigt. Ein Klick auf einen Eintrag zeigt die vollständige Antwort im Chat.

Für Admins

/ticket faq add Wie melde ich einen Bug? | Nutze /ticket create bug <Beschreibung>.
/ticket faq edit 1 Neue Frage? | Neue Antwort.
/ticket faq delete 1
/ticket faq reload

Alternativ können FAQs auch direkt über die Admin-FAQ-GUI verwaltet werden (öffnet sich automatisch wenn ticket.admin-Berechtigung vorhanden). Ein Klick auf einen Eintrag öffnet eine Aktions-GUI mit den Optionen Bearbeiten und Löschen. Neue FAQs lassen sich ebenfalls per Schaltfläche in der GUI hinzufügen das Plugin führt den Admin Schritt für Schritt durch eine Chat-Eingabe.

faqs.yml

Alle FAQs werden in einer eigenen Datei plugins/TicketSystem/faqs.yml gespeichert:

faqs:
  1:
    question: "Wie erstelle ich ein Ticket?"
    answer: "Nutze den Befehl /ticket create [Kategorie] [Beschreibung]."
  2:
    question: "Wie lange dauert die Bearbeitung?"
    answer: "Unser Support-Team bearbeitet Tickets so schnell wie möglich."

Beim ersten Start werden automatisch vier Beispiel-FAQs erstellt.


Performance-Caching

Ab dieser Version hält TicketSystem häufig abgerufene Tickets in einem TTL-basierten In-Memory-Cache vor. Das reduziert die Datenbankbelastung bei wiederholten Zugriffen (GUI, Kommentare, Bewertungen) deutlich.

  • Standard-Lebenszeit: 60 Sekunden (konfigurierbar: cache-ttl-seconds in config.yml)
  • Der Cache wird bei Ticket-Änderungen (Claim, Close, Priorität usw.) automatisch invalidiert
  • Regelmäßige Bereinigung abgelaufener Einträge alle 5 Minuten
  • Der aktuelle Cache-Status ist in /ticket stats einsehbar

Kategorie & Priorität

Beim Erstellen eines Tickets können Kategorie und Priorität optional angegeben werden:

Befehl Kategorie Priorität
/ticket create <Text> Standard NORMAL
/ticket create bug <Text> Bug NORMAL
/ticket create high <Text> Standard HIGH
/ticket create bug high <Text> Bug HIGH
/ticket create question urgent <Text> Frage URGENT

Verfügbare Prioritäten: low, normal, high, urgent (auch deutsch: niedrig, hoch, dringend)

Kategorien und Aliases sind frei in der config.yml konfigurierbar.


Discord-Webhook

  • Embeds mit Kategorie & Priorität
  • Rollen-Ping pro Nachrichtentyp
  • Drei Ereignisse: neues Ticket, Ticket geschlossen, Ticket weitergeleitet

Konfiguration in config.yml:

discord:
  enabled: true
  webhook-url: "https://discord.com/api/webhooks/..."
  role-ping-id: "123456789012345678"
  messages:
    new-ticket:
      role-ping: true
      show-category: true
      show-priority: true
    ticket-closed:
      enabled: true
      role-ping: false

BungeeCord-Unterstützung

TicketSystem bietet volle Unterstützung für BungeeCord-Netzwerke:

  • Tickets von jedem Server im Netzwerk
  • Teleport zu Tickets auf anderen Servern (/ticket teleport <ID>)
  • Tickets im Archiv und GUI serverübergreifend
  • Benachrichtigungen an alle Server
  • Discord-Webhooks zeigen Server-Namen
  • Tickets an Supporter auf anderen Servern weiterleiten

Voraussetzungen:

  • spigot.yml: bungeecord: true
  • config.yml: bungeecord: true, server-name pro Server
  • TicketSystem.jar auf allen Spigot-Servern
  • Alle Server nutzen dieselbe MySQL-Datenbank

Vergleich mit anderen Plugins

Feature TicketSystem SimpleTickets AdvancedTickets
Speicher-Migration ✔️ ⚠️ ✖️
Automatische Backups ✔️ ⚠️ ✖️
GUI mit Kategorien ✔️ ⚠️ ✖️
Archivierung ✔️ ⚠️ ✖️
Rollenbasierter Archiv-Zugriff ✔️ ✖️ ✖️
Kategorie-System ✔️ ✖️ ✖️
Prioritäten-System ✔️ ✖️ ✖️
FAQ-System ✔️ ✖️ ✖️
Performance-Caching ✔️ ✖️ ✖️
Offline-Benachrichtigungen ✔️ ✖️ ✖️
Discord-Webhook ✔️ ✖️ ✖️
Bewertungs-System ✔️ ✖️ ✖️
Update-Checker ✔️ ✖️ ✖️
BungeeCord-Unterstützung ✔️ ✖️ ✖️

Legende: ✔️ Vollständige Unterstützung · ⚠️ Eingeschränkt · ✖️ Nicht vorhanden


FAQ

Kann ich zwischen MySQL und Datei-Speicherung wechseln?

Ja! Mit /ticket migrate tomysql oder /ticket migrate tofile werden alle Daten automatisch migriert.

Wie konfiguriere ich eigene Kategorien?

In der config.yml unter categories: Name, Farbe, Material und Aliases frei wählbar. Änderungen mit /ticket reload übernehmen.

Wie verwalte ich FAQs?

Mit /ticket faq öffnest du die GUI. Als Admin kannst du über die GUI oder per /ticket faq add|edit|delete FAQs verwalten. Alle Daten liegen in faqs.yml.

Was passiert mit Benachrichtigungen wenn ein Spieler offline ist?

Alle Benachrichtigungen werden gespeichert und beim nächsten Login angezeigt.

Wie ändere ich die Priorität eines Tickets?

Als Support/Admin per /ticket setpriority <ID> <Priorität> oder direkt in der GUI.

Wie aktiviere ich den Debug-Modus?

debug: true in der config.yml setzen.

Wer darf das Ticket-Archiv sehen?

Nur Spieler mit ticket.archive. Muss explizit vergeben werden.

Wie funktioniert Teleport bei BungeeCord?

Mit /ticket teleport <ID> wirst du automatisch auf den richtigen Server und zur Ticket-Position teleportiert.

Wie lange werden Tickets gecacht?

Standardmäßig 60 Sekunden. Über cache-ttl-seconds in der config.yml anpassbar. Der Cache wird bei Änderungen sofort invalidiert.


Support, Community & Motivation

Du hast Fragen, brauchst Hilfe oder möchtest Feedback geben?

Wir antworten in der Regel innerhalb von 24 Stunden!

Dein Feedback zählt: Wenn TicketSystem deinen Server bereichert hat, freuen wir uns über eine 5-Sterne Bewertung auf SpigotMC! Jede Rückmeldung hilft, das Plugin weiter zu verbessern und die Community zu stärken.