TicketSystem icon

TicketSystem -----

Das flexible, moderne Ticketsystem für Support, Feedback & Bugreports – mit MySQL/YAML, dynamischer



Ticketsystem
Das flexible, moderne Support- und Feedback-System für Minecraft-Server
[​IMG] [​IMG] [​IMG]

⭐ Für Support, Bug-Reports & Feedback | Null-Lag | Produktionsbereit ⭐

❯ Über TicketSystem

TicketSystem ist die Komplettlösung für Support, Bug-Reports und Feedback auf Ihrem Server.
Spieler erstellen Tickets direkt im Spiel, Admins verwalten alles komfortabel per GUI, Befehl oder über die moderne Weboberfläche . Das Plugin ist für kleine und große Server optimiert, vollständig konfigurierbar und bietet viele Profi-Features für Support-Teams – inklusive einem vollständigen FAQ-System , Performance-Caching , einer sauberen Konsole ohne unnötigen Spam und einem Web-Dashboard .

Was macht TicketSystem besonders?

  • MySQL oder Datei-Speicherung – YAML/JSON oder MySQL/MariaDB, jederzeit umschaltbar, Migration & Backup inklusive
  • Automatische Backups & Migration – Sicheres Wechseln zwischen Speicherarten, Datenverlust ausgeschlossen
  • Export/Import – Tickets einfach zwischen Servern oder Instanzen übertragen
  • Statistiken & Archivierung – Übersichtliche Auswertung, automatische Archivierung nach Zeitplan, manuelles Archivieren möglich
  • Rollenbasiertes Archiv-System – Nur Spieler mit der Archiv-Permission können geschlossene Tickets sehen, öffnen und dauerhaft löschen
  • Konfigurierbare Speicherpfade – Daten- und Archivdateien frei wählbar, auch absolute Pfade
  • Vollständige Validierung – Fehlerhafte Tickets werden beim Laden erkannt, gemeldet und übersprungen
  • Bessere Fehlerausgaben – Alle Fehler erscheinen im Log und für Admins im Chat, inkl. Validierungs- und Speicherfehler
  • Debug-Modus & Versionsprüfung – Für Entwickler und Admins, erkennt veraltete config.yml automatisch
  • Komplett anpassbar – Nachrichten, Farben, Limits, Speicherpfade, Archiv-Intervall, Cooldowns, Rechte
  • Dynamische GUI – Die Ticket-GUI passt sich automatisch der Ticketanzahl an (bis zu 45 Tickets pro Seite)
  • Seiten-System – Bei sehr vielen Tickets wird automatisch geblättert
  • Kategorie- & Prioritäten-System – Frei konfigurierbar, mit Aliases und Material-Auswahl
  • Bewertungs- & Kommentar-System – Spieler und Support können Tickets bewerten und kommentieren
  • Offline-Benachrichtigungen – Verpasste Ticket-Events werden beim Login angezeigt
  • Discord-Webhook – Benachrichtigungen mit Embeds, Rollen-Ping und Server-Namen
  • BungeeCord-Unterstützung – Tickets, Teleports und Benachrichtigungen serverübergreifend
  • Moderne Weboberfläche (NEU) – Eigenes Web-Dashboard mit drei Rollen (Admin, Archive Viewer, Supporter), case-insensitiven Benutzernamen, Archiv-Ansicht und komfortabler Ticket- & FAQ-Verwaltung direkt im Browser
  • FAQ-System (NEU) – Eigene GUI mit Custom-Skull-Items, wahlweise faqs.yml oder MySQL-Speicherung, Migration per Befehl, vollständige In-Game- und Web-Verwaltung
  • Backup-System (NEU) – Automatische JSON-Backups per /ticket backup, gespeichert im backups/-Ordner mit Zeitstempel
  • HTTPS/TLS (NEU) – Optionaler eingebetteter HTTPS-Server via JKS-Keystore, TLS 1.2+, automatischer Fallback auf HTTP
  • MySQL Auto-Reconnect (NEU) – Automatische Wiederherstellung der Datenbankverbindung bei Unterbrechung
  • Brute-Force-Schutz (NEU) – IP-Sperre nach 5 Fehlversuchen im Web-Panel, 15 Minuten Sperrzeit
  • Archiv-Verwaltung im Web-Panel (NEU) – Archivierte Tickets einsehen, permanent löschen oder in die aktive Datenbank wiederherstellen
  • Benutzerverwaltung zur Laufzeit (NEU) – Web-Panel-Benutzer über die API anlegen, Passwort ändern und löschen – kein Neustart nötig
  • Performance-Caching (NEU) – TTL-basierter In-Memory-Cache reduziert Datenbankabfragen spürbar
  • Saubere Konsole (NEU) – Minimale Start-Logs, kein unnötiger Spam, Debug-Modus separat steuerbar
  • PlaceholderAPI-Integration (NEU) – Ticket-Statistiken als PAPI-Placeholder für Scoreboards, Chat-Plugins u.v.m.
  • Support & Erweiterbarkeit – Sauberer Code, viele Hooks für eigene Erweiterungen

»» Keine Datenverluste. Keine Limits. Pure Zuverlässigkeit. ««

❯ ✨ Features im Detail
  • MySQL oder Datei-Speicherung: YAML/JSON oder MySQL/MariaDB, jederzeit umschaltbar – Migration und Backup inklusive
  • Automatische Backups & Migration: Sicheres Wechseln zwischen Speicherarten, Datenverlust ausgeschlossen
  • Export/Import: Tickets einfach zwischen Servern oder Instanzen übertragen
  • Statistiken & Archivierung: Übersichtliche Auswertung, automatische Archivierung nach Zeitplan, manuelles Archivieren möglich
  • Rollenbasiertes Archiv-System: Nur Spieler mit ticket.archive können das Archiv sehen, Tickets darin öffnen und permanent löschen – unabhängig von ticket.admin oder OP-Status
  • Konfigurierbare Speicherpfade: Daten- und Archivdateien frei wählbar, auch absolute Pfade
  • Vollständige Validierung: Fehlerhafte Tickets werden beim Laden erkannt, gemeldet und übersprungen
  • Bessere Fehlerausgaben: Alle Fehler erscheinen im Log und für Admins im Chat, inkl. Validierungs- und Speicherfehler
  • Debug-Modus & Versionsprüfung: Für Entwickler und Admins, erkennt veraltete config.yml automatisch
  • Komplett anpassbar: Nachrichten, Farben, Limits, Speicherpfade, Archiv-Intervall, Cooldowns, Rechte
  • Dynamische GUI: Die Ticket-GUI passt sich automatisch der Ticketanzahl an (bis zu 45 Tickets pro Seite)
  • Seiten-System: Bei sehr vielen Tickets wird automatisch geblättert
  • Kategorie- & Prioritäten-System: Frei konfigurierbar, mit Aliases und Material-Auswahl
  • Bewertungs- & Kommentar-System: Spieler und Support können Tickets bewerten und kommentieren
  • Offline-Benachrichtigungen: Verpasste Ticket-Events werden beim Login angezeigt
  • Discord-Webhook: Benachrichtigungen mit Embeds, Rollen-Ping und Server-Namen
  • BungeeCord-Unterstützung: Tickets, Teleports und Benachrichtigungen serverübergreifend
  • Moderne Weboberfläche: Eigene Web-GUI mit Benutzerkonten, Rollen (Admin/Supporter), automatischem SHA-256 Passwort-Hashing und Session-Management. Verwaltung von Tickets, FAQs, Kommentaren und Statistiken direkt im Browser.
  • FAQ-System: Eigene faqs.yml, Custom-Skull-GUI, Chat-gesteuerte Admin-Eingabe, Spieler-Lesemodus und Admin-Verwaltungsmodus in einer GUI
  • Performance-Caching: TTL-basierter In-Memory-Cache für häufig abgerufene Tickets – konfigurierbar, thread-sicher, automatische Invalidierung bei Änderungen
  • Saubere Konsole: Minimale Start-Logs, Netzwerkfehler beim Update-Check werden still ignoriert (nur Debug-Modus loggt Details)
  • PlaceholderAPI-Integration: Automatische Registrierung bei PAPI (optional) – Placeholder für Scoreboards, Chat-Plugins, HolographicDisplays u.v.m.
  • Support & Erweiterbarkeit: Sauberer Code, viele Hooks für eigene Erweiterungen

❯ ⚙️ Installation & Setup

Schritt 1: Requirements
  • Minecraft Server: Paper/Spigot 1.18.x–1.21.x
  • Java Version: Java 17 oder höher
  • Optional: MySQL/MariaDB (für Datenbankbetrieb & Web-Oberfläche empfohlen)
Schritt 2: Installation
  1. Lade die TicketSystem.jar herunter
  2. Verschiebe sie in den /plugins Ordner deines Servers
  3. Starte den Server neu (kein reload!)
  4. Die Konfigurationsdateien werden automatisch generiert – inkl. faqs.yml mit Beispiel-FAQs
Schritt 3: Grundkonfiguration
  1. Öffne die config.yml im plugins/TicketSystem/ Ordner
  2. Passe Speicherpfade, Nachrichten, Limits und Farben an
  3. Aktiviere MySQL falls gewünscht und trage Zugangsdaten ein
  4. Cache-Lebenszeit optional über cache-ttl-seconds anpassen (Standard: 60 Sek.)
  5. Nutze /ticket reload um Änderungen zu laden
Schritt 4: Weboberfläche einrichten (Optional)
  1. Setze in der config.yml unter web-panel.enabled den Wert auf true
  2. Trage unter web-panel.users deine Admins und Supporter mit einem gewünschten Klartext-Passwort ein (dieses wird beim ersten Start automatisch sicher gehasht)
  3. Passe den port (Standard: 8085) und die bind-address an
  4. Setze bind-address auf "127.0.0.1", wenn du einen Reverse-Proxy (Nginx/Apache) nutzt
  5. Greife über http://deine-server-ip:port auf das Dashboard zu und logge dich ein
  6. Optional: Aktiviere HTTPS über web-panel.ssl.enabled: true und lege keystore.jks im Plugin-Ordner ab
Schritt 5: Erweiterte Features (Optional)
  • FAQs in-game per /ticket faq add anlegen oder direkt über das Web-Dashboard bearbeiten
  • Exportiere/Importiere Tickets zwischen Servern
  • Nutze die Statistik- und Archivierungsfunktionen
» Fertig! Dein Support-System ist einsatzbereit «

❯ Beispiel-Konfiguration
Code (YAML):

# TicketSystem - Hauptkonfiguration
config-version
: 1
debug
: false
cache-ttl-seconds
: 60     # Lebenszeit gecachter Tickets in Sekunden
storage
:
    type
: "file" # "file" oder "mysql"
    data-file
: "data.yml"
    archive-file
: "archive.yml"
    mysql
:
        host
: "localhost"
        port
: 3306
        database
: "tickets"
        user
: "root"
        password
: "password"
        useSSL
: false
auto-archive-interval-hours
: 24
# (Web-Panel Konfiguration siehe separater Spoiler unten)

messages
:
    prefix
: "&7[&eTicket&7]"
    ticket-created
: "&aDein Ticket wurde erstellt!"
    error
: "&cEin Fehler ist aufgetreten!"
 

❯ Befehle & Permissions

Spieler-Befehle:
Code (Text):

/ticket                          - Hilfe & Übersicht
/ticket create <Nachricht>       - Neues Ticket erstellen
/ticket list                     - Eigene Tickets in der GUI anzeigen
/ticket comment <ID> <Nachricht> - Kommentar hinzufügen
/ticket rate <ID> <good|bad>     - Support bewerten
/ticket faq                      - FAQ-GUI öffnen (häufige Fragen)
/ticket faq list                 - FAQs im Chat auflisten
 
Admin-Befehle:
Code (Text):

/ticket reload                   - Plugin neu laden (inkl. FAQs & Cache leeren)
/ticket migrate                  - Speicherart wechseln (Migration)
/ticket export/import            - Tickets exportieren/importieren
/ticket stats                    - Statistiken + Cache-Status anzeigen
/ticket archive                  - Tickets archivieren
/ticket claim <ID>               - Ticket übernehmen
/ticket forward <ID> <Spieler>   - Ticket weiterleiten
/ticket close <ID>               - Ticket schließen
/ticket setpriority <ID> <low|normal|high|urgent> - Priorität ändern
/ticket blacklist <add|remove|list> [Spieler] [Grund] - Blacklist verwalten
/ticket teleport <ID>            - Teleport zu Ticket (BungeeCord)

/ticket faq add <Frage> | <Antwort>        - Neues FAQ hinzufügen
/ticket faq edit <ID> <Frage> | <Antwort>  - FAQ bearbeiten
/ticket faq delete <ID>                    - FAQ löschen
/ticket faq reload                         - FAQs neu laden
/ticket faq migrate tomysql               - FAQs aus faqs.yml in MySQL importieren
/ticket faq migrate tofile                - FAQs aus MySQL in faqs.yml exportieren
/ticket backup                            - Datenbank-Backup erstellen (backups/-Ordner)
 
Permissions:
Code (Text):

ticket.create     - Ticket erstellen (Standard: alle Spieler)
ticket.support    - Tickets einsehen, claimen und schließen (Standard: false)
ticket.web        - Zugriff auf die Weboberfläche (Benutzerkonto in config.yml erforderlich) (Standard: false)
ticket.archive    - Ticket-Archiv öffnen, einsehen & permanent löschen (Standard: false)
ticket.admin      - Voller Zugriff inkl. FAQ-Verwaltung, Weiterleitung & Reload (Standard: OP)
 
⚠ Wichtig: ticket.archive ist bewusst nicht in ticket.admin enthalten und wird auch nicht automatisch an OPs vergeben.
Das Archiv-Recht muss in LuckPerms o.ä. explizit zugewiesen werden:​
Code (Text):

/lp user <Spielername> permission set ticket.archive true
/lp user <Spielername> permission set ticket.web true
 
❯ Mehrsprachigkeit
TicketSystem unterstützt drei Sprachmodi über einen einzigen Schlüssel in der config.yml:

Code (YAML):

language
: de     # Deutsch  – deutsche Texte & deutsche Befehlsnamen
language
: en     # Englisch – englische Texte & englische Befehlsnamen
language
: both   # Beides   – deutsche Texte & beide Befehlsnamen gleichzeitig
 
⚠ Hinweis: command-language existiert nicht mehr – alles läuft über language.

Befehlsnamen je Sprachmodus:
Befehl language: de language: en language: both
create /ticket erstellen /ticket create /ticket create (erstellen)
list /ticket liste /ticket list /ticket list (liste)
comment /ticket kommentar /ticket comment /ticket comment (kommentar)
rate /ticket bewerten /ticket rate /ticket rate (bewerten)
claim /ticket übernehmen /ticket claim /ticket claim (übernehmen)
close /ticket schließen /ticket close /ticket close (schließen)
forward /ticket weiterleiten /ticket forward /ticket forward (weiterleiten)
reload /ticket neuladen /ticket reload /ticket reload (neuladen)
stats /ticket statistik /ticket stats /ticket stats (statistik)
archive /ticket archivieren /ticket archive /ticket archive (archivieren)
migrate /ticket migrieren /ticket migrate /ticket migrate (migrieren)
export /ticket exportieren /ticket export /ticket export (exportieren)
import /ticket importieren /ticket import /ticket import (importieren)
blacklist /ticket sperrliste /ticket blacklist /ticket blacklist (sperrliste)
setpriority /ticket priorität /ticket setpriority /ticket setpriority (priorität)
faq /ticket faq /ticket faq /ticket faq
top /ticket top /ticket top /ticket top


{cmd_X}-Platzhalter in den Sprachdateien:

Alle Texte in lang_de.yml / lang_en.yml verwenden Platzhalter statt fester Befehlsnamen. Der LanguageManager ersetzt diese automatisch anhand des aktiven Modus.
Platzhalter language: de language: en
{cmd_create} /ticket erstellen /ticket create
{cmd_list} /ticket liste /ticket list
{cmd_comment} /ticket kommentar /ticket comment
{cmd_rate} /ticket bewerten /ticket rate
{cmd_claim} /ticket übernehmen /ticket claim
{cmd_close} /ticket schließen /ticket close
{cmd_forward} /ticket weiterleiten /ticket forward
{cmd_reload} /ticket neuladen /ticket reload
{cmd_stats} /ticket statistik /ticket stats
{cmd_archive} /ticket archivieren /ticket archive
{cmd_migrate} /ticket migrieren /ticket migrate
{cmd_export} /ticket exportieren /ticket export
{cmd_import} /ticket importieren /ticket import
{cmd_blacklist} /ticket sperrliste /ticket blacklist
{cmd_setpriority} /ticket priorität /ticket setpriority
{cmd_faq} /ticket faq /ticket faq
{cmd_top} /ticket top /ticket top


Beispiel in der Sprachdatei:
Code (YAML):

help
:
  create
: "&e{cmd_create} [Kategorie] <Text> &7– Neues Ticket erstellen"
  # language: de → /ticket erstellen [Kategorie] <Text>
  # language: en → /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 /ticket reload wechselt die gesamte Oberfläche sofort.

❯ Weboberfläche (Web-Dashboard)
Neben der In-Game-Verwaltung bietet TicketSystem nun ein eigenes Web-Dashboard. Dies ist besonders praktisch für Admins und Supporter, die gerade nicht im Spiel sind, aber dennoch schnell auf Tickets reagieren müssen.

Einblick ins Dashboard:


— Admin-Ansicht —
[​IMG]
[​IMG]

— Supporter-Ansicht —
[​IMG]

Funktionen der Weboberfläche:
  • Dashboard-Übersicht: Direkter Blick auf offene, geschlossene und in Bearbeitung befindliche Tickets.
  • Ticket-Verwaltung: Tickets kommentieren, schließen, Prioritäten ändern und Zuweisungen vornehmen – alles per Klick.
  • FAQ-Verwaltung: Häufige Fragen und Antworten direkt im Web-Dashboard hinzufügen, bearbeiten und löschen – ohne im Spiel sein zu müssen.
  • Live-Statistiken: Detaillierte Auswertungen der Support-Leistung (ähnlich wie bei /ticket stats).
  • Rollenbasierte Zugriffe: Drei Rollen: Admin (voller Zugriff inkl. FAQ & Archiv), Archive Viewer (Tickets + Archiv) und Supporter (nur Tickets).
  • Archiv-Ansicht: Admins und Archive Viewer können archivierte Tickets direkt im Web-Dashboard einsehen.
  • Flexible Benutzernamen: Groß-/Kleinschreibung wird beim Login ignoriert, Sonderzeichen (-, _, / usw.) sind erlaubt.
  • Sichere Authentifizierung: Passwörter werden automatisch als SHA-256-Hash gespeichert. Sessions laufen nach Inaktivität automatisch ab.
  • Brute-Force-Schutz: IP-Sperre nach 5 Fehlversuchen (15 Minuten), X-Forwarded-For wird bei Reverse-Proxy berücksichtigt.
  • Benutzerverwaltung zur Laufzeit: Benutzer über die REST-API anlegen, Passwort ändern oder löschen – ohne Serverneustart.
  • Archiv-Verwaltung: Admins können archivierte Tickets permanent löschen oder in die aktive Datenbank wiederherstellen.

Sicherheitshinweis:
Wir empfehlen dringend, die Weboberfläche nicht direkt über das Internet ohne Absicherung anzubieten. Setze bind-address auf "127.0.0.1" und nutze einen Reverse-Proxy (z.B. Nginx, Apache oder Cloudflare Tunnels), um HTTPS zu aktivieren und die Anfragen abzusichern.

Web-Panel Konfiguration (Ausschnitt):
Code (YAML):

# ============================================================
#   WEB-PANEL
# ============================================================
# Ermöglicht die Verwaltung von Tickets über den Browser.
# Zugriff: http://<server-ip>:<port>
#
# FIREWALL: Port muss freigegeben sein!
#
# SICHERHEIT:
#   - Passwörter werden beim ersten Start automatisch als
#     SHA-256-Hash gespeichert (Klartext wird danach entfernt).
#   - Sessions laufen nach session-timeout-minuten Inaktivität ab.
#   - bind-address auf "127.0.0.1" setzen wenn nur lokaler
#     Zugriff gewünscht ist (z.B. hinter Nginx/Apache).
# ============================================================
web-panel
:
  enabled
: false
  port
: 8085

  # Bind-Adresse:
  #   "0.0.0.0"   = alle Interfaces (direkt erreichbar)
  #   "127.0.0.1" = nur lokal (Reverse-Proxy empfohlen)
  bind-address
: "0.0.0.0"

  # Session-Timeout in Minuten (nach Inaktivität)
  session-timeout-minutes
: 60

  logo-file
: "logo.png"       # Datei in plugins/TicketSystem/ ablegen
  brand-name
: "TicketSystem"   # optional: eigener Name links
  tagline
: "Verwalte Support-Tickets..."   # optional: eigener Untertitel

  # ── Benutzer ──────────────────────────────────────────────
  # Rollen:
  #   admin          → Voller Zugriff: Tickets, FAQ, Weiterleiten, Archiv
  #   supporter      → Tickets anzeigen, claimen, schließen, kommentieren
  #   archive_viewer → Wie supporter + Zugriff auf das Ticket-Archiv
  #
  # Benutzernamen:
  #   - Groß-/Kleinschreibung wird beim Login ignoriert (case-insensitiv)
  #   - Sonderzeichen erlaubt (z.B. Viper-Admin, support_01, max/muster)
  #
  # Passwort setzen:
  #   Trage "password: deinPasswort" ein.
  #   Beim nächsten Serverstart wird es automatisch gehasht
  #   und durch "password-hash: ..." ersetzt.
  # ──────────────────────────────────────────────────────────
  users
:
    admin
:
      password
: "aendere_mich"
      role
: "admin"
    supporter
:
      password
: "aendere_mich"
      role
: "supporter"
    # Beispiel: Supporter mit Archiv-Zugriff
    # archiv-viewer:
    #   password: "deinPasswort"
    #   role: "archive_viewer"
 

❯ FAQ-System
Das FAQ-System erlaubt es Admins, häufige Fragen und Antworten zu pflegen. Alle Daten werden in einer eigenen faqs.yml gespeichert – unabhängig von Tickets und Config. Die Verwaltung ist sowohl In-Game als auch über die Weboberfläche möglich.

Für Spieler:
  • /ticket faq öffnet eine GUI mit Custom-Skull-Items – für jeden FAQ-Eintrag ein eigener Kopf mit individueller Textur
  • Klick auf einen Eintrag zeigt die vollständige Antwort im Chat
  • /ticket faq list listet alle FAQs direkt im Chat auf

Für Admins (In-Game & Web):
  • In-Game: Dieselbe GUI öffnet sich im Verwaltungsmodus: Klick → Aktions-GUI mit Bearbeiten & Löschen
  • In-Game: "Neues FAQ hinzufügen"-Button in der GUI – geführte Chat-Eingabe (erst Frage, dann Antwort)
  • Web-Dashboard: Komfortable Eingabefelder zum Erstellen, Ändern von Frage/Antwort und sofortigen Löschen von FAQs
  • Alternativ per Befehl: Frage und Antwort mit | trennen

FAQ-Speicherung – MySQL oder Datei:

FAQs werden automatisch im selben Modus gespeichert wie Tickets – kein separater Schalter nötig:
  • use-mysql: false → FAQs in faqs.yml (Standard, Einzelserver)
  • use-mysql: true → FAQs in MySQL (Tabellen: faq_entries, faq_categories) – empfohlen für BungeeCord / Multi-Server
Bestehende FAQs aus der faqs.yml lassen sich mit /ticket faq migrate in die Datenbank importieren. Duplikate werden automatisch übersprungen.

Beispiel-Befehle (In-Game):
Code (Text):

/ticket faq add Wie melde ich einen Bug? | Nutze /ticket create bug <Beschreibung>.
/ticket faq edit 1 Neue Frage? | Neue Antwort hier.
/ticket faq delete 3
/ticket faq reload
/ticket faq migrate
 
faqs.yml Format:
Code (YAML):

faqs
:
  1
:
    question
: "Wie erstelle ich ein Ticket?"
    answer
: "Nutze /ticket create [Kategorie] [Beschreibung]."
  2
:
    question
: "Wie lange dauert die Bearbeitung?"
    answer
: "Unser Team bearbeitet Tickets so schnell wie möglich."
 
Beim ersten Start werden automatisch vier Beispiel-FAQs erstellt.

❯ Performance-Caching
TicketSystem hält häufig abgerufene Tickets in einem TTL-basierten In-Memory-Cache vor. Das reduziert die Datenbankbelastung bei GUI-Zugriffen, Kommentaren, Bewertungen und Web-API Aufrufen deutlich.

  • Standard-Lebenszeit: 60 Sekunden (konfigurierbar: cache-ttl-seconds in config.yml)
  • Automatische Invalidierung: Bei Claim, Close, Prioritätsänderung usw. wird der Cache-Eintrag sofort gelöscht
  • Regelmäßige Bereinigung: Abgelaufene Einträge werden alle 5 Minuten entfernt
  • Transparenz: Aktueller Cache-Status ist in /ticket stats einsehbar
  • Thread-sicher: Kann aus asynchronen Tasks heraus lese- und schreibend aufgerufen werden

❯ Backup-System
Mit /ticket backup erstellt TicketSystem sofort ein Backup der aktuellen Ticket-Daten.

  • MySQL-Modus: Exportiert alle aktiven Tickets als JSON-Datei
  • Datei-Modus: Kopiert die aktuelle data.yml / data.json
  • Speicherort: plugins/TicketSystem/backups/backup_tickets_YYYY-MM-DD_HH-mm-ss.json
  • Automatisch: Wird vor jeder Datenmigration automatisch erstellt

❯ PlaceholderAPI-Integration
TicketSystem registriert automatisch Placeholder bei PlaceholderAPI (PAPI), sobald dieses Plugin installiert ist – kein Eintrag in der config.yml nötig. Prefix: ticketsystem

Verfügbare Placeholder:
Placeholder Für wen Beschreibung
%ticketsystem_my_open% Spieler Eigene aktive Tickets (OPEN + CLAIMED + FORWARDED)
%ticketsystem_admin_open% Supporter, Admin Alle offenen Tickets (Status: OPEN)
%ticketsystem_admin_claimed% Admin Alle Tickets in Bearbeitung (Status: CLAIMED)
%ticketsystem_admin_rating_good% Admin Positive Bewertungen gesamt
%ticketsystem_admin_rating_bad% Admin Negative Bewertungen gesamt
%ticketsystem_admin_rating_total% Admin Alle Bewertungen gesamt
%ticketsystem_admin_rating_percent% Admin Prozentsatz positiver Bewertungen (oder - wenn keine)


Verwendungsbeispiele (z.B. im Scoreboard):
Code (Text):

# Spieler-Zeile
Meine Tickets: %ticketsystem_my_open%

# Supporter-Zeile
Offen: %ticketsystem_admin_open%

# Admin-Zeilen
Offen: %ticketsystem_admin_open%  |  Aktiv: %ticketsystem_admin_claimed%
Bewertung: %ticketsystem_admin_rating_good% / %ticketsystem_admin_rating_bad% (%ticketsystem_admin_rating_percent%%)
 
⚠ Hinweis: PlaceholderAPI ist optional. Das Plugin erkennt automatisch ob PAPI installiert ist und registriert die Placeholder nur dann. Ohne PAPI läuft TicketSystem vollständig normal weiter.

❯ HTTPS / TLS
Der eingebettete Web-Server unterstützt optionales HTTPS via Java Keystore.

Konfiguration (config.yml):
Code (YAML):

web-panel
:
  ssl
:
    enabled
: true
    keystore-file
: "keystore.jks"       # im plugins/TicketSystem/-Ordner
    keystore-password
: "changeit"
    key-password
: "changeit"
 
Self-Signed Zertifikat erstellen (Test):
Code (Text):

keytool -genkeypair -alias ticketsystem -keyalg RSA -keysize 2048 -validity 365 -keystore plugins/TicketSystem/keystore.jks -storepass changeit
 
  • Fehlt der Keystore, startet der Server automatisch ohne TLS
  • Nur TLS 1.2 und TLS 1.3 werden zugelassen
  • Für Produktion: Reverse-Proxy (Nginx/Apache) oder Let's Encrypt empfohlen

❯ Kategorie & Priorität
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

Prioritäten: low, normal, high, urgent (auch deutsch: niedrig, hoch, dringend)
Kategorien und Aliases sind frei in der config.yml konfigurierbar.

❯ Vergleich mit anderen Plugins
TicketSystem vs. SimpleTickets vs. AdvancedTickets

Speicher-Migration
• TicketSystem: ✔ Vollständig integriert
• SimpleTickets: ⚠ Nur manuell
• AdvancedTickets: ✖ Nicht möglich

Automatische Backups
• TicketSystem: ✔ Ja
• SimpleTickets: ⚠ Teilweise
• AdvancedTickets: ✖ Nein

GUI
• TicketSystem: ✔ Modern & dynamisch
• SimpleTickets: ⚠ Basic
• AdvancedTickets: ✖ Nein

Web-Oberfläche
• TicketSystem: ✔ Eigenes Web-Dashboard (Tickets & FAQ)
• SimpleTickets: ✖ Nein
• AdvancedTickets: ✖ Nein

Archivierung
• TicketSystem: ✔ Automatisch & manuell
• SimpleTickets: ⚠ Nur manuell
• AdvancedTickets: ✖ Nein

Rollenbasierter Archiv-Zugriff
• TicketSystem: ✔ Eigene Permission, nicht an OP gebunden
• SimpleTickets: ✖ Nein
• AdvancedTickets: ✖ Nein

FAQ-System
• TicketSystem: ✔ GUI, Web-Dashboard & In-Game Verwaltung
• SimpleTickets: ✖ Nein
• AdvancedTickets: ✖ Nein

Performance-Caching
• TicketSystem: ✔ TTL-Cache, automatische Invalidierung
• SimpleTickets: ✖ Nein
• AdvancedTickets: ✖ Nein

BungeeCord-Unterstützung
• TicketSystem: ✔ Serverübergreifende Tickets, Teleports & Benachrichtigungen
• SimpleTickets: ✖ Nein
• AdvancedTickets: ✖ Nein

Update-Checker
• TicketSystem: ✔ Integriert, saubere Konsole
• SimpleTickets: ✖ Nein
• AdvancedTickets: ✖ Nein

Backup-System
• TicketSystem: ✔ Automatisch & manuell, JSON mit Zeitstempel
• SimpleTickets: ✖ Nein
• AdvancedTickets: ✖ Nein

HTTPS/TLS-Unterstützung
• TicketSystem: ✔ Eingebettet, TLS 1.2+, JKS-Keystore
• SimpleTickets: ✖ Nein
• AdvancedTickets: ✖ Nein

Brute-Force-Schutz (Web)
• TicketSystem: ✔ IP-Sperre nach 5 Fehlversuchen
• SimpleTickets: ✖ Nein
• AdvancedTickets: ✖ Nein

MySQL Auto-Reconnect
• TicketSystem: ✔ Automatisch bei Verbindungsabbruch
• SimpleTickets: ✖ Nein
• AdvancedTickets: ✖ Nein

PlaceholderAPI-Integration
• TicketSystem: ✔ 7 Placeholder, automatische Registrierung
• SimpleTickets: ✖ Nein
• AdvancedTickets: ✖ Nein

❯ Support & Community

[​IMG]

Benötigst du Hilfe?

Discord Server: Schneller Support von uns und der Community
GitHub: Bug-Reports, Feature-Requests und Changelogs

Ein großes Dankeschön an Mucki2020 für das Melden von Bugs & Fehlern!

Wir antworten in der Regel innerhalb von 24 Stunden!

⭐ Unterstütze das Projekt ⭐

Wenn TicketSystem deinen Server bereichert hat, freuen wir uns über eine 5-Sterne-Bewertung !
Dein Feedback hilft uns, das Plugin weiter zu verbessern.


[​IMG]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
© 2026 Viper Plugins | TicketSystem
Alle Rechte vorbehalten
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Resource Information
Author:
----------
Total Downloads: 153
First Release: Feb 19, 2026
Last Update: May 10, 2026
Category: ---------------
All-Time Rating:
3 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings