diff --git a/README.md b/README.md index 09498b0..abe37f4 100644 --- a/README.md +++ b/README.md @@ -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) -**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.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. + +--- ## Features -- **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 -- **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 -- **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), Item-Material richtet sich nach der konfigurierten Kategorie -- **Seiten-System** – Bei sehr vielen Tickets wird automatisch geblättert -- **Kategorie-System** – Frei konfigurierbare Kategorien (Name, Farbe, Material, Aliases) in der config.yml -- **Prioritäten-System** – Vier Stufen (LOW / NORMAL / HIGH / URGENT), beim Erstellen wählbar und nachträglich via GUI oder Befehl änderbar -- **Bewertungs-System** – Spieler können nach Ticket-Schließung den Support bewerten (`good` / `bad`), Ergebnisse in `/ticket stats` -- **Kommentar-System** – Spieler und Support können Nachrichten direkt am Ticket hinterlassen -- **Offline-Benachrichtigungen** – Verpasste Kommentar-, Schließ- und Status-Benachrichtigungen werden gespeichert und beim nächsten Login angezeigt -- **Discord-Webhook** – Benachrichtigungen mit Embeds, konfigurierbarem Rollen-Ping und Kategorie/Priorität-Anzeige -- **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 +- 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 +- Performance: asynchron, ressourcenschonend +- Erweiterbarkeit: viele Hooks +- **BungeeCord-Unterstützung**: serverübergreifende Tickets, Teleports, Weiterleitungen, Benachrichtigungen --- ## 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 (siehe unten) +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 --- ## Befehle & Rechte -### Spieler-Befehle +### Übersicht der Befehle -``` -/ticket - Hilfe & Befehlsübersicht -/ticket create [Kategorie] [Priorität] - Neues Ticket erstellen -/ticket list - Eigene Tickets in der GUI anzeigen -/ticket comment - Kommentar zu einem Ticket hinzufügen -/ticket rate - Abgeschlossenes Ticket bewerten -``` +| 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 | -### Support/Admin-Befehle +### Rechte -``` -/ticket claim - Ticket annehmen -/ticket close [Kommentar] - Ticket schließen -/ticket forward - Ticket weiterleiten -/ticket setpriority - Priorität eines Tickets ändern -/ticket reload - Konfiguration neu laden (inkl. Kategorien) -/ticket stats - Statistiken anzeigen -/ticket archive - Geschlossene Tickets archivieren -/ticket blacklist [Spieler] [Grund] - Blacklist verwalten -/ticket migrate - Speicherart wechseln -/ticket export - Tickets exportieren -/ticket import - Tickets importieren -``` +| 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 | -### Permissions - -| 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 permission set ticket.archive true -> ``` +> ticket.archive ist nicht in ticket.admin enthalten und muss explizit vergeben werden. --- -## 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: -``` -/ticket create → Kategorie: Standard, Priorität: NORMAL -/ticket create bug → Kategorie: Bug, Priorität: NORMAL -/ticket create high → Kategorie: Standard, Priorität: HIGH -/ticket create bug high → Kategorie: Bug, Priorität: HIGH -/ticket create question urgent → Kategorie: Frage, Priorität: 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` (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 -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 -- **Rollen-Ping** (`@role`) pro Nachrichtentyp einzeln konfigurierbar -- **Drei Ereignisse:** Neues Ticket, Ticket geschlossen, Ticket weitergeleitet +Konfiguration in config.yml: -Konfiguration in der `config.yml`: - -```yaml discord: enabled: true webhook-url: "https://discord.com/api/webhooks/..." - role-ping-id: "123456789012345678" # Discord-Rollen-ID (leer = kein Ping) + role-ping-id: "123456789012345678" messages: new-ticket: role-ping: true @@ -123,60 +118,101 @@ discord: 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 ) +- 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 +- /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 | ✔️ | ✖️ | ✖️ | +| 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 **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 (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?** -> 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?** -> Als Support/Admin entweder per Befehl `/ticket setpriority ` oder direkt in der Detail-GUI per Klick. +**Wie ändere ich die Priorität eines Tickets?** +> Als Support/Admin per Befehl /ticket setpriority oder direkt in der GUI. **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?** -> 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 wirst du automatisch auf den richtigen Server und zur Ticket-Position teleportiert. --- -## Vergleich mit anderen Plugins +## Support, Community & Motivation -| Feature | TicketSystem | SimpleTickets | AdvancedTickets | -|----------------------------------|:------------:|:-------------:|:---------------:| -| 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 +Du hast Fragen, brauchst Hilfe oder möchtest Feedback geben? - [Discord Support](https://discord.com/invite/FdRs4BRd8D) - [Git Issues](https://git.viper.ipv64.net/M_Viper/TicketSystem/issues) 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 auf SpigotMC**! -Dein Feedback hilft uns, das Plugin weiter zu verbessern. \ No newline at end of file +**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. \ No newline at end of file