From 0a547f90bf48c105fa24154d0d3f5953761891f3 Mon Sep 17 00:00:00 2001 From: M_Viper Date: Mon, 23 Feb 2026 12:07:52 +0000 Subject: [PATCH] README.md aktualisiert --- README.md | 225 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 136 insertions(+), 89 deletions(-) diff --git a/README.md b/README.md index abe37f4..9edf863 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![Version](https://img.shields.io/badge/Minecraft-1.18.x--1.21.x-green?style=for-the-badge) ![Java](https://img.shields.io/badge/Java-17+-orange?style=for-the-badge) ![Type](https://img.shields.io/badge/Type-Support-blue?style=for-the-badge) -**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, Discord-Webhook und volle BungeeCord-Unterstützung. +**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**, Discord-Webhook und volle BungeeCord-Unterstützung. --- @@ -23,7 +23,9 @@ - Offline-Benachrichtigungen - Discord-Webhook mit Embeds & Rollen-Ping - Blacklist für Spieler -- Performance: asynchron, ressourcenschonend +- **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 @@ -32,8 +34,8 @@ ## 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 +2. `config.yml` anpassen (Speicherorte, Nachrichten, Limits, Farben, MySQL-Daten etc.) +3. `/ticket`-Befehle nutzen --- @@ -41,60 +43,113 @@ ### Übersicht der Befehle -| Befehl | Beschreibung | Nutzergruppe | -|-------------------------------------|---------------------------------------------------|----------------------| -| /ticket | Hilfe & Übersicht | Spieler, Support | -| /ticket create [Kategorie] [Priorität] | Ticket erstellen | Spieler | -| /ticket list | Eigene Tickets in der GUI anzeigen | Spieler | -| /ticket comment | Kommentar hinzufügen | Spieler, Support | -| /ticket rate | Support bewerten | Spieler | -| /ticket claim | Ticket annehmen | Support/Admin | -| /ticket close [Kommentar] | Ticket schließen | Support/Admin | -| /ticket forward | Ticket weiterleiten | Support/Admin | -| /ticket setpriority | Priorität ändern | Support/Admin | -| /ticket reload | Konfiguration neu laden | Support/Admin | -| /ticket stats | Statistiken anzeigen | Support/Admin | -| /ticket archive | Tickets archivieren | Support/Admin | -| /ticket blacklist [Spieler] [Grund] | Blacklist verwalten | Support/Admin | -| /ticket migrate | Speicherart wechseln | Support/Admin | -| /ticket export | Tickets exportieren | Support/Admin | -| /ticket import | Tickets importieren | Support/Admin | -| /ticket teleport | Teleport zu Ticket (BungeeCord) | Support/Admin | +| Befehl | Beschreibung | Nutzergruppe | +|-----------------------------------------------------------|--------------------------------------------------------|------------------| +| `/ticket` | Hilfe & Übersicht | Spieler, Support | +| `/ticket create [Kategorie] [Priorität] ` | Ticket erstellen | Spieler | +| `/ticket list` | Eigene Tickets in der GUI anzeigen | Spieler | +| `/ticket comment ` | Kommentar hinzufügen | Spieler, Support | +| `/ticket rate ` | Support bewerten | Spieler | +| `/ticket faq` | FAQ-GUI öffnen (häufige Fragen) | Spieler | +| `/ticket faq list` | FAQs im Chat auflisten | Spieler | +| `/ticket faq add \| ` | Neues FAQ hinzufügen | Admin | +| `/ticket faq edit \| ` | Bestehendes FAQ bearbeiten | Admin | +| `/ticket faq delete ` | FAQ löschen | Admin | +| `/ticket faq reload` | FAQs aus faqs.yml neu laden | Admin | +| `/ticket claim ` | Ticket annehmen | Support/Admin | +| `/ticket close [Kommentar]` | Ticket schließen | Support/Admin | +| `/ticket forward ` | Ticket weiterleiten | Support/Admin | +| `/ticket setpriority ` | Priorität ändern | Support/Admin | +| `/ticket reload` | Konfiguration neu laden | Admin | +| `/ticket stats` | Statistiken anzeigen | Admin | +| `/ticket archive` | Tickets archivieren | Admin | +| `/ticket blacklist [Spieler] [Grund]` | Blacklist verwalten | Admin | +| `/ticket migrate ` | Speicherart wechseln | Admin | +| `/ticket export ` | Tickets exportieren | Admin | +| `/ticket import ` | Tickets importieren | Admin | +| `/ticket teleport ` | 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 | manuell vergeben | -| ticket.archive | Archiv öffnen, Tickets löschen | manuell vergeben | -| ticket.admin | Voller Zugriff (inkl. Weiterleitung, Reload, Blacklist) | OP | +| 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. +> `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 . +/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: + +```yaml +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. Die folgende Tabelle zeigt die Möglichkeiten und Beispiele: +Beim Erstellen eines Tickets können Kategorie und Priorität optional angegeben werden: -| Befehl | Kategorie | Priorität | -|----------------------------------------|-------------|-----------| -| /ticket create | Standard | NORMAL | -| /ticket create bug | Bug | NORMAL | -| /ticket create high | Standard | HIGH | -| /ticket create bug high | Bug | HIGH | -| /ticket create question urgent | Frage | URGENT | +| Befehl | Kategorie | Priorität | +|-----------------------------------------|-----------|-----------| +| `/ticket create ` | Standard | NORMAL | +| `/ticket create bug ` | Bug | NORMAL | +| `/ticket create high ` | Standard | HIGH | +| `/ticket create bug high ` | Bug | HIGH | +| `/ticket create question urgent ` | Frage | URGENT | -**Verfügbare Prioritäten:** -- low -- normal -- high -- urgent +**Verfügbare Prioritäten:** `low`, `normal`, `high`, `urgent` (auch deutsch: `niedrig`, `hoch`, `dringend`) -(auch deutsch: niedrig, hoch, dringend) - -**Kategorien und Aliases** sind frei in der config.yml konfigurierbar. +Kategorien und Aliases sind frei in der `config.yml` konfigurierbar. --- @@ -104,8 +159,9 @@ Beim Erstellen eines Tickets können Kategorie und Priorität optional angegeben - Rollen-Ping pro Nachrichtentyp - Drei Ereignisse: neues Ticket, Ticket geschlossen, Ticket weitergeleitet -Konfiguration in config.yml: +Konfiguration in `config.yml`: +```yaml discord: enabled: true webhook-url: "https://discord.com/api/webhooks/..." @@ -118,6 +174,7 @@ discord: ticket-closed: enabled: true role-ping: false +``` --- @@ -126,81 +183,71 @@ discord: TicketSystem bietet volle Unterstützung für BungeeCord-Netzwerke: - Tickets von jedem Server im Netzwerk -- Teleport zu Tickets auf anderen Servern (/ticket teleport ) +- Teleport zu Tickets auf anderen Servern (`/ticket teleport `) - Tickets im Archiv und GUI serverübergreifend - Benachrichtigungen an alle Server - Discord-Webhooks zeigen Server-Namen - Tickets an Supporter auf anderen Servern weiterleiten -- Teleport funktioniert auch zwischen Servern **Voraussetzungen:** -- spigot.yml: bungeecord: true -- config.yml: bungeecord: true, server-name pro Server +- `spigot.yml`: `bungeecord: true` +- `config.yml`: `bungeecord: true`, `server-name` pro Server - TicketSystem.jar auf allen Spigot-Servern - Alle Server nutzen dieselbe MySQL-Datenbank -**Cross-Server-Befehle:** -- /ticket teleport -- /ticket forward -- /ticket archive -- /ticket list - -**Tipps:** -- Server-Name erscheint in GUI & Discord -- Zielspieler muss online sein -- Funktionen auch im Einzelserver-Modus -- Bei Problemen: gleiche MySQL, Kanäle in plugin.yml prüfen - --- ## Vergleich mit anderen Plugins -TicketSystem hebt sich durch viele Alleinstellungsmerkmale von anderen Ticket-Plugins ab. Die folgende Tabelle zeigt die wichtigsten Unterschiede: +| 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 | ✔️ | ✖️ | ✖️ | -| Feature | TicketSystem | SimpleTickets | AdvancedTickets | -|-------------------------|:------------:|:-------------:|:---------------:| -| Speicher-Migration | ✔️ | ⚠️ | ✖️ | -| Automatische Backups | ✔️ | ⚠️ | ✖️ | -| GUI mit Kategorien | ✔️ | ⚠️ | ✖️ | -| Archivierung | ✔️ | ⚠️ | ✖️ | -| Rollenbasierter Archiv | ✔️ | ✖️ | ✖️ | -| Kategorie-System | ✔️ | ✖️ | ✖️ | -| Prioritäten-System | ✔️ | ✖️ | ✖️ | -| Offline-Benachrichtigungen| ✔️ | ✖️ | ✖️ | -| Discord-Webhook | ✔️ | ✖️ | ✖️ | -| Bewertungs-System | ✔️ | ✖️ | ✖️ | -| Update-Checker | ✔️ | ✖️ | ✖️ | -| BungeeCord-Unterstützung | ✔️ | ✖️ | ✖️ | - -Legende: -- ✔️ = Vollständige Unterstützung -- ⚠️ = Eingeschränkte oder fehleranfällige Unterstützung -- ✖️ = Nicht vorhanden +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. +> 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. +> 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 Befehl /ticket setpriority oder direkt in der GUI. +> Als Support/Admin per `/ticket setpriority ` oder direkt in der GUI. **Wie aktiviere ich den Debug-Modus?** -> debug: true in der config.yml setzen. +> `debug: true` in der `config.yml` setzen. **Wer darf das Ticket-Archiv sehen?** -> Nur Spieler mit ticket.archive. Muss explizit vergeben werden. +> Nur Spieler mit `ticket.archive`. Muss explizit vergeben werden. **Wie funktioniert Teleport bei BungeeCord?** -> Mit /ticket teleport wirst du automatisch auf den richtigen Server und zur Ticket-Position teleportiert. +> Mit `/ticket teleport ` 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. ---