README.md aktualisiert
This commit is contained in:
195
README.md
195
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||
  
|
||||
|
||||
**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
|
||||
|
||||
---
|
||||
|
||||
@@ -42,59 +44,112 @@
|
||||
### Ü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 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 | Support/Admin |
|
||||
| /ticket stats | Statistiken anzeigen | Support/Admin |
|
||||
| /ticket archive | Tickets archivieren | Support/Admin |
|
||||
| /ticket blacklist <add|remove|list> [Spieler] [Grund] | Blacklist verwalten | Support/Admin |
|
||||
| /ticket migrate <tomysql|tofile> | Speicherart wechseln | Support/Admin |
|
||||
| /ticket export <Dateiname> | Tickets exportieren | Support/Admin |
|
||||
| /ticket import <Dateiname> | Tickets importieren | Support/Admin |
|
||||
| /ticket teleport <ID> | Teleport zu Ticket (BungeeCord) | Support/Admin |
|
||||
|-----------------------------------------------------------|--------------------------------------------------------|------------------|
|
||||
| `/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 | manuell vergeben |
|
||||
| ticket.archive | Archiv öffnen, Tickets löschen | manuell vergeben |
|
||||
| ticket.admin | Voller Zugriff (inkl. Weiterleitung, Reload, Blacklist) | OP |
|
||||
|-----------------|-----------------------------------------------------------------|------------------|
|
||||
| `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 <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:
|
||||
|
||||
```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 <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 |
|
||||
|-----------------------------------------|-----------|-----------|
|
||||
| `/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
|
||||
**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 <ID>)
|
||||
- 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
|
||||
- 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 <ID>
|
||||
- /ticket forward <ID> <Spieler>
|
||||
- /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 | ✔️ | ✖️ | ✖️ |
|
||||
| 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ä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 <ID> <Priorität> oder direkt in der GUI.
|
||||
> 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.
|
||||
> `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 <ID> wirst du automatisch auf den richtigen Server und zur Ticket-Position teleportiert.
|
||||
> 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.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user