TicketSystem
TicketSystem ist das flexible, moderne Support- und Feedback-Plugin für Minecraft-Server (Spigot/Paper 1.18.x–1.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 mit Kategorien, 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 Kategorien – eigene GUI mit Custom-Skull-Items, optionaler Kategorie-Auswahl-Screen, vollständige In-Game-Verwaltung;
faqs.ymlwird beim ersten Start automatisch mit Beispiel-Kategorien und -FAQs generiert - 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
- TicketSystem.jar in den plugins-Ordner legen und Server starten
config.ymlanpassen (Speicherorte, Nachrichten, Limits, Farben, MySQL-Daten etc.)- Kopf der FAQ-Kategorie-Items optional über
gui-settings.faq.category-head-itemin derconfig.ymlkonfigurieren /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 (bei aktiven Kategorien: Auswahl zuerst) | Spieler |
/ticket faq list |
FAQs im Chat auflisten | Spieler |
/ticket faq add [Kategorie] <Frage> | <Antwort> |
Neues FAQ hinzufügen (optional Kategorie angeben) | 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 kategorie add <n> [&Farbe] [Beschreibung] |
FAQ-Kategorie hinzufügen | Admin |
/ticket kategorie delete <Schlüssel> |
FAQ-Kategorie löschen | Admin |
/ticket kategorie list |
Alle FAQ-Kategorien auflisten | 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.archiveist nicht inticket.adminenthalten und muss explizit vergeben werden.
Mehrsprachigkeit
TicketSystem unterstützt drei Sprachmodi, die über einen einzigen Schlüssel in der config.yml gesteuert werden:
language: de # Deutsch – deutsche Texte & deutsche Befehlsnamen
language: en # Englisch – englische Texte & englische Befehlsnamen
language: both # Beides – deutsche Texte & beide Befehlsnamen gleichzeitig
command-languageexistiert nicht mehr. Alle Einstellungen laufen überlanguage.
Befehlsnamen je Sprachmodus
| Interner Schlüssel | language: de |
language: en |
language: both |
|---|---|---|---|
create |
/ticket erstellen |
/ticket create |
/ticket create §8(§7erstellen§8) |
list |
/ticket liste |
/ticket list |
/ticket list §8(§7liste§8) |
comment |
/ticket kommentar |
/ticket comment |
/ticket comment §8(§7kommentar§8) |
rate |
/ticket bewerten |
/ticket rate |
/ticket rate §8(§7bewerten§8) |
claim |
/ticket übernehmen |
/ticket claim |
/ticket claim §8(§7übernehmen§8) |
close |
/ticket schließen |
/ticket close |
/ticket close §8(§7schließen§8) |
forward |
/ticket weiterleiten |
/ticket forward |
/ticket forward §8(§7weiterleiten§8) |
reload |
/ticket neuladen |
/ticket reload |
/ticket reload §8(§7neuladen§8) |
stats |
/ticket statistik |
/ticket stats |
/ticket stats §8(§7statistik§8) |
archive |
/ticket archivieren |
/ticket archive |
/ticket archive §8(§7archivieren§8) |
migrate |
/ticket migrieren |
/ticket migrate |
/ticket migrate §8(§7migrieren§8) |
export |
/ticket exportieren |
/ticket export |
/ticket export §8(§7exportieren§8) |
import |
/ticket importieren |
/ticket import |
/ticket import §8(§7importieren§8) |
blacklist |
/ticket sperrliste |
/ticket blacklist |
/ticket blacklist §8(§7sperrliste§8) |
setpriority |
/ticket priorität |
/ticket setpriority |
/ticket setpriority §8(§7priorität§8) |
faq |
/ticket faq |
/ticket faq |
/ticket faq |
top |
/ticket top |
/ticket top |
/ticket top |
{cmd_X}-Platzhalter in den Sprachdateien
Alle Hilfetexte, Fehlermeldungen und GUI-Hinweise in lang_de.yml / lang_en.yml verwenden {cmd_X}-Platzhalter statt fester Befehlsnamen. Beim Anzeigen ersetzt der LanguageManager diese automatisch anhand des aktiven Sprachmodus.
| Platzhalter | Beispiel-Ausgabe (language: en) |
|---|---|
{cmd_create} |
/ticket create |
{cmd_list} |
/ticket list |
{cmd_comment} |
/ticket comment |
{cmd_rate} |
/ticket rate |
{cmd_claim} |
/ticket claim |
{cmd_close} |
/ticket close |
{cmd_forward} |
/ticket forward |
{cmd_reload} |
/ticket reload |
{cmd_stats} |
/ticket stats |
{cmd_archive} |
/ticket archive |
{cmd_migrate} |
/ticket migrate |
{cmd_export} |
/ticket export |
{cmd_import} |
/ticket import |
{cmd_blacklist} |
/ticket blacklist |
{cmd_setpriority} |
/ticket setpriority |
{cmd_faq} |
/ticket faq |
{cmd_top} |
/ticket top |
Verwendungsbeispiel in der Sprachdatei:
help:
create: "&e{cmd_create} [Kategorie] <Text> &7– Neues Ticket erstellen"
# → language: de gibt aus: /ticket erstellen [Kategorie] <Text>
# → language: en gibt aus: /ticket create [Kategorie] <Text>
GUI-Sprachanpassung
Seit dieser Version sind auch alle GUI-Texte vollständig sprachabhängig – Inventar-Titel, Item-Lore-Labels und Action-Buttons werden aus gui.item.* in der aktiven Sprachdatei geladen. Nach einem /ticket reload mit geändertem language-Wert wechselt die gesamte Oberfläche sofort.
FAQ-System
Das FAQ-System ermöglicht es Admins, häufige Fragen und Antworten direkt im Spiel zu verwalten. Die faqs.yml wird beim ersten Start automatisch generiert – inklusive Beispiel-Kategorien und Beispiel-FAQs.
Kategorien (Optional)
FAQs lassen sich optionalen Kategorien zuordnen. Sind Kategorien in der faqs.yml definiert, zeigt die GUI zunächst einen Kategorie-Auswahl-Screen. Ein Klick auf eine Kategorie öffnet die gefilterte FAQ-Liste mit einem Zurück-Button. Ohne Kategorien verhält sich die GUI wie gewohnt und listet alle FAQs direkt auf.
Das Aussehen der Kategorie-Items (Material und Custom-Head-Textur) wird zentral in der config.yml unter gui-settings.faq.category-head-item gesteuert. In der faqs.yml werden nur Name, Farbe und Beschreibung hinterlegt.
Kategorien verwalten (per Befehl):
/ticket kategorie add Support &b Fragen zum Support-Team
/ticket kategorie add Regeln &c Fragen zu den Server-Regeln
/ticket kategorie delete support
/ticket kategorie list
Kategorien verwalten (per GUI):
Als Admin: Shift+Klick auf ein Kategorie-Item im Auswahl-Screen öffnet eine Aktions-GUI mit Bearbeiten und Löschen.
Für Spieler
/ticket faq – öffnet die FAQ-GUI (bei aktiven Kategorien: Auswahl zuerst)
/ticket faq list – listet alle FAQs im Chat auf
Jeder FAQ-Eintrag wird als Custom-Skull-Item angezeigt. Ein Klick zeigt die vollständige Antwort im Chat.
Für Admins
/ticket faq add tickets Wie melde ich einen Bug? | Nutze /ticket create bug <Beschreibung>.
/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
Der optionale Kategorie-Schlüssel als erstes Argument weist die neue FAQ direkt einer Kategorie zu. Der Tab-Completer schlägt alle vorhandenen Schlüssel vor.
Alternativ über die Admin-FAQ-GUI: Klick auf einen Eintrag öffnet eine Aktions-GUI mit Bearbeiten und Löschen. Neue FAQs per „Neues FAQ hinzufügen"-Button hinzufügen – die FAQ wird automatisch der aktuell geöffneten Kategorie zugeordnet.
faqs.yml (automatisch generiert)
categories:
tickets:
name: "Tickets"
color: "&b"
description: "Fragen zum Ticket-System"
rules:
name: "Regeln"
color: "&c"
description: "Fragen zu den Server-Regeln"
faqs:
1:
question: "Wie erstelle ich ein Ticket?"
answer: "Nutze den Befehl /ticket create [Kategorie] [Beschreibung]."
category: "tickets"
2:
question: "Wie lange dauert die Bearbeitung?"
answer: "Unser Support-Team bearbeitet Tickets so schnell wie möglich."
category: "tickets"
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-secondsinconfig.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 statseinsehbar
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: trueconfig.yml:bungeecord: true,server-namepro 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 mit Kategorien | ✔️ | ✖️ | ✖️ |
| 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 tomysqloder/ticket migrate tofilewerden alle Daten automatisch migriert.
Wie konfiguriere ich eigene Kategorien?
In der
config.ymluntercategories:– 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|deleteFAQs verwalten. Alle Daten liegen in der automatisch generiertenfaqs.yml.
Wie richte ich FAQ-Kategorien ein?
Die
faqs.ymlwird beim ersten Start automatisch mit vier Beispiel-Kategorien erstellt. Neue Kategorien per/ticket kategorie add <Name> [&Farbe] [Beschreibung]hinzufügen, löschen per/ticket kategorie delete <Schlüssel>. Das Aussehen der Kategorie-Items wird inconfig.ymluntergui-settings.faq.category-head-itemgesteuert.
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: truein derconfig.ymlsetzen.
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-secondsin derconfig.ymlanpassbar. 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.