README.md aktualisiert

This commit is contained in:
2026-02-21 13:25:26 +00:00
parent 8e7533a214
commit f4bedaa288

258
README.md
View File

@@ -2,119 +2,114 @@
![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) ![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. Es bietet flexible Speicherung (MySQL oder Datei), automatische Archivierung, Migration, Export/Import, Statistiken, vollständige Validierung, Debug-Modus, eine übersichtliche config.yml mit Versionsprüfung und eine dynamische GUI. **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, Discord-Webhook und volle BungeeCord-Unterstützung.
---
## Features ## Features
- **MySQL oder Datei-Speicherung** YAML/JSON oder MySQL/MariaDB, jederzeit umschaltbar, Migration & Backup inklusive - MySQL oder Datei-Speicherung (YAML/JSON oder MySQL/MariaDB, jederzeit umschaltbar)
- **Automatische Backups & Migration** Sicheres Wechseln zwischen Speicherarten, Datenverlust ausgeschlossen - Automatische Backups & Migration
- **Export/Import** Tickets einfach zwischen Servern oder Instanzen übertragen - Export/Import von Tickets
- **Statistiken & Archivierung** Übersichtliche Auswertung, automatische Archivierung nach Zeitplan, manuelles Archivieren möglich - Statistiken & Archivierung
- **Rollenbasierter Archiv-Zugriff** Nur Spieler mit `ticket.archive` können das Archiv sehen, öffnen und Tickets permanent löschen unabhängig von `ticket.admin` oder OP-Status - Rollenbasierter Archiv-Zugriff
- **Konfigurierbare Speicherpfade** Daten- und Archivdateien frei wählbar, auch absolute Pfade - Konfigurierbare Speicherpfade
- **Vollständige Validierung** Fehlerhafte Tickets werden beim Laden erkannt, gemeldet und übersprungen - Vollständige Validierung & Fehlerausgaben
- **Bessere Fehlerausgaben** Alle Fehler erscheinen im Log und für Admins im Chat, inkl. Validierungs- und Speicherfehler - Debug-Modus & Versionsprüfung
- **Debug-Modus & Versionsprüfung** Für Entwickler und Admins, erkennt veraltete config.yml automatisch - Anpassbare Nachrichten, Farben, Limits, Speicherpfade, Archiv-Intervall, Cooldowns, Rechte
- **Komplett anpassbar** Nachrichten, Farben, Limits, Speicherpfade, Archiv-Intervall, Cooldowns, Rechte - Dynamische GUI mit Seiten-System
- **Dynamische GUI** Die Ticket-GUI passt sich automatisch der Ticketanzahl an (bis zu 45 Tickets pro Seite), Item-Material richtet sich nach der konfigurierten Kategorie - Kategorie- und Prioritäten-System
- **Seiten-System** Bei sehr vielen Tickets wird automatisch geblättert - Bewertungs- und Kommentar-System
- **Kategorie-System** Frei konfigurierbare Kategorien (Name, Farbe, Material, Aliases) in der config.yml - Offline-Benachrichtigungen
- **Prioritäten-System** Vier Stufen (LOW / NORMAL / HIGH / URGENT), beim Erstellen wählbar und nachträglich via GUI oder Befehl änderbar - Discord-Webhook mit Embeds & Rollen-Ping
- **Bewertungs-System** Spieler können nach Ticket-Schließung den Support bewerten (`good` / `bad`), Ergebnisse in `/ticket stats` - Blacklist für Spieler
- **Kommentar-System** Spieler und Support können Nachrichten direkt am Ticket hinterlassen - Performance: asynchron, ressourcenschonend
- **Offline-Benachrichtigungen** Verpasste Kommentar-, Schließ- und Status-Benachrichtigungen werden gespeichert und beim nächsten Login angezeigt - Erweiterbarkeit: viele Hooks
- **Discord-Webhook** Benachrichtigungen mit Embeds, konfigurierbarem Rollen-Ping und Kategorie/Priorität-Anzeige - **BungeeCord-Unterstützung**: serverübergreifende Tickets, Teleports, Weiterleitungen, Benachrichtigungen
- **Blacklist** Spieler vom Ticket-System ausschließen
- **Performance** Optimiert für große Server, alle Operationen laufen asynchron und ressourcenschonend
- **Support & Erweiterbarkeit** Sauberer Code, viele Hooks für eigene Erweiterungen
--- ---
## Installation & Setup ## Installation & Setup
1. **TicketSystem.jar** in den `plugins`-Ordner legen und Server starten 1. TicketSystem.jar in den plugins-Ordner legen und Server starten
2. **config.yml** anpassen (Speicherorte, Nachrichten, Limits, Farben, MySQL-Daten etc.) 2. config.yml anpassen (Speicherorte, Nachrichten, Limits, Farben, MySQL-Daten etc.)
3. **/ticket**-Befehle nutzen (siehe unten) 3. /ticket-Befehle nutzen
--- ---
## Befehle & Rechte ## Befehle & Rechte
### Spieler-Befehle ### Übersicht der Befehle
``` | Befehl | Beschreibung | Nutzergruppe |
/ticket - Hilfe & Befehlsübersicht |-------------------------------------|---------------------------------------------------|----------------------|
/ticket create [Kategorie] [Priorität] <Text> - Neues Ticket erstellen | /ticket | Hilfe & Übersicht | Spieler, Support |
/ticket list - Eigene Tickets in der GUI anzeigen | /ticket create [Kategorie] [Priorität] <Text> | Ticket erstellen | Spieler |
/ticket comment <ID> <Nachricht> - Kommentar zu einem Ticket hinzufügen | /ticket list | Eigene Tickets in der GUI anzeigen | Spieler |
/ticket rate <ID> <good|bad> - Abgeschlossenes Ticket bewerten | /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 |
### Support/Admin-Befehle ### Rechte
``` | Permission | Beschreibung | Standard |
/ticket claim <ID> - Ticket annehmen |-------------------|---------------------------------------------------|------------------|
/ticket close <ID> [Kommentar] - Ticket schließen | ticket.create | Ticket erstellen | alle Spieler |
/ticket forward <ID> <Spieler> - Ticket weiterleiten | ticket.support | Tickets einsehen, claimen, schließen, Priorität | manuell vergeben |
/ticket setpriority <ID> <low|normal|high|urgent> - Priorität eines Tickets ändern | ticket.archive | Archiv öffnen, Tickets löschen | manuell vergeben |
/ticket reload - Konfiguration neu laden (inkl. Kategorien) | ticket.admin | Voller Zugriff (inkl. Weiterleitung, Reload, Blacklist) | OP |
/ticket stats - Statistiken anzeigen
/ticket archive - Geschlossene Tickets archivieren
/ticket blacklist <add|remove|list> [Spieler] [Grund] - Blacklist verwalten
/ticket migrate <tomysql|tofile> - Speicherart wechseln
/ticket export <Dateiname> - Tickets exportieren
/ticket import <Dateiname> - Tickets importieren
```
### Permissions > ticket.archive ist nicht in ticket.admin enthalten und muss explizit vergeben werden.
| 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, einsehen & Tickets permanent löschen | ❌ manuell vergeben |
| `ticket.admin` | Voller Zugriff inkl. Weiterleitung, Reload & Blacklist (beinhaltet `ticket.support`) | OP |
> ⚠️ **Wichtig:** `ticket.archive` ist bewusst **nicht** in `ticket.admin` enthalten und wird auch **nicht automatisch an OPs vergeben**. Das Archiv-Recht muss explizit zugewiesen werden:
> ```
> /lp user <Spielername> permission set ticket.archive true
> ```
--- ---
## Kategorie & Priorität beim Erstellen ## Kategorie & Priorität
Beim Erstellen eines Tickets können Kategorie und Priorität optional angegeben werden: Beim Erstellen eines Tickets können Kategorie und Priorität optional angegeben werden. Die folgende Tabelle zeigt die Möglichkeiten und Beispiele:
``` | Befehl | Kategorie | Priorität |
/ticket create <Text> → Kategorie: Standard, Priorität: NORMAL |----------------------------------------|-------------|-----------|
/ticket create bug <Text> → Kategorie: Bug, Priorität: NORMAL | /ticket create <Text> | Standard | NORMAL |
/ticket create high <Text> → Kategorie: Standard, Priorität: HIGH | /ticket create bug <Text> | Bug | NORMAL |
/ticket create bug high <Text> → Kategorie: Bug, Priorität: HIGH | /ticket create high <Text> | Standard | HIGH |
/ticket create question urgent <Text> → Kategorie: Frage, Priorität: URGENT | /ticket create bug high <Text> | Bug | HIGH |
``` | /ticket create question urgent <Text> | Frage | URGENT |
Verfügbare Prioritäten: `low`, `normal`, `high`, `urgent` (auch auf Deutsch: `niedrig`, `hoch`, `dringend`) **Verfügbare Prioritäten:**
- low
- normal
- high
- urgent
Kategorien und ihre Aliases sind frei in der `config.yml` konfigurierbar. (auch deutsch: niedrig, hoch, dringend)
**Kategorien und Aliases** sind frei in der config.yml konfigurierbar.
--- ---
## Discord-Webhook ## Discord-Webhook
Der integrierte Discord-Webhook unterstützt: - Embeds mit Kategorie & Priorität
- Rollen-Ping pro Nachrichtentyp
- Drei Ereignisse: neues Ticket, Ticket geschlossen, Ticket weitergeleitet
- **Embeds** mit Kategorie und Priorität als eigene Felder Konfiguration in config.yml:
- **Rollen-Ping** (`@role`) pro Nachrichtentyp einzeln konfigurierbar
- **Drei Ereignisse:** Neues Ticket, Ticket geschlossen, Ticket weitergeleitet
Konfiguration in der `config.yml`:
```yaml
discord: discord:
enabled: true enabled: true
webhook-url: "https://discord.com/api/webhooks/..." webhook-url: "https://discord.com/api/webhooks/..."
role-ping-id: "123456789012345678" # Discord-Rollen-ID (leer = kein Ping) role-ping-id: "123456789012345678"
messages: messages:
new-ticket: new-ticket:
role-ping: true role-ping: true
@@ -123,60 +118,101 @@ discord:
ticket-closed: ticket-closed:
enabled: true enabled: true
role-ping: false 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
- Teleport funktioniert auch zwischen Servern
**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
**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 | ✔️ | ✖️ | ✖️ |
| 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
--- ---
## FAQ ## FAQ
**Kann ich zwischen MySQL und Datei-Speicherung wechseln?** **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?** **Wie konfiguriere ich eigene Kategorien?**
> In der `config.yml` unter `categories:` — Name, Farbe, Material (für die GUI) und Aliases frei wählbar. Änderungen werden mit `/ticket reload` übernommen. > In der config.yml unter categories: Name, Farbe, Material und Aliases frei wählbar. Änderungen mit /ticket reload übernehmen.
**Was passiert mit Benachrichtigungen wenn ein Spieler offline ist?** **Was passiert mit Benachrichtigungen wenn ein Spieler offline ist?**
> Alle Kommentar-, Schließ- und Status-Benachrichtigungen werden gespeichert und beim nächsten Login gebündelt angezeigt. > Alle Benachrichtigungen werden gespeichert und beim nächsten Login angezeigt.
**Wie ändere ich die Priorität eines bestehenden Tickets?** **Wie ändere ich die Priorität eines Tickets?**
> Als Support/Admin entweder per Befehl `/ticket setpriority <ID> <Priorität>` oder direkt in der Detail-GUI per Klick. > Als Support/Admin per Befehl /ticket setpriority <ID> <Priorität> oder direkt in der GUI.
**Wie aktiviere ich den Debug-Modus?** **Wie aktiviere ich den Debug-Modus?**
> Setze `debug: true` in der `config.yml`. > debug: true in der config.yml setzen.
**Wer darf das Ticket-Archiv sehen?** **Wer darf das Ticket-Archiv sehen?**
> Nur Spieler mit der Permission `ticket.archive`. Diese wird weder automatisch an OPs noch an Admins vergeben und muss explizit zugewiesen 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.
--- ---
## Vergleich mit anderen Plugins ## Support, Community & Motivation
| Feature | TicketSystem | SimpleTickets | AdvancedTickets | Du hast Fragen, brauchst Hilfe oder möchtest Feedback geben?
|----------------------------------|:------------:|:-------------:|:---------------:|
| Speicher-Migration | ✔️ | ⚠️ | ✖️ |
| Automatische Backups | ✔️ | ⚠️ | ✖️ |
| GUI mit Kategorie-Materialien | ✔️ | ⚠️ | ✖️ |
| Archivierung | ✔️ | ⚠️ | ✖️ |
| Rollenbasierter Archiv-Zugriff | ✔️ | ✖️ | ✖️ |
| Kategorie-System (konfigurierbar)| ✔️ | ✖️ | ✖️ |
| Prioritäten-System | ✔️ | ✖️ | ✖️ |
| Offline-Benachrichtigungen | ✔️ | ✖️ | ✖️ |
| Discord-Webhook mit Rollen-Ping | ✔️ | ✖️ | ✖️ |
| Bewertungs-System | ✔️ | ✖️ | ✖️ |
| Update-Checker | ✔️ | ✖️ | ✖️ |
---
## Support & Community
- [Discord Support](https://discord.com/invite/FdRs4BRd8D) - [Discord Support](https://discord.com/invite/FdRs4BRd8D)
- [Git Issues](https://git.viper.ipv64.net/M_Viper/TicketSystem/issues) - [Git Issues](https://git.viper.ipv64.net/M_Viper/TicketSystem/issues)
Wir antworten in der Regel innerhalb von 24 Stunden! 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!
## ⭐ Unterstütze das Projekt Jede Rückmeldung hilft, das Plugin weiter zu verbessern und die Community zu stärken.
Wenn TicketSystem deinen Server bereichert hat, freuen wir uns über eine **5-Sterne Bewertung auf SpigotMC**!
Dein Feedback hilft uns, das Plugin weiter zu verbessern.