diff --git a/README.md b/README.md index 83ec44a..09498b0 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,15 @@ - **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 -- **Unit-Tests** – Getestete Speicher-Logik für maximale Zuverlässigkeit -- **Dynamische GUI** – Die Ticket-GUI passt sich automatisch der Ticketanzahl an (bis zu 54 Tickets pro Seite) +- **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 @@ -26,59 +32,38 @@ ## Installation & Setup -1. **config.yml** anpassen (Speicherorte, Nachrichten, Limits, Farben, MySQL-Daten etc.) -2. **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.) 3. **/ticket**-Befehle nutzen (siehe unten) --- -## Beispiel-Konfiguration - -```yaml -config-version: 1 -debug: false -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 -messages: - prefix: "&7[&eTicket&7]" - ticket-created: "&aDein Ticket wurde erstellt!" - error: "&cEin Fehler ist aufgetreten!" -``` - ---- - ## Befehle & Rechte ### Spieler-Befehle ``` -/ticket - Ticket erstellen, verwalten, Status abfragen -/ticket create - Neues Ticket erstellen -/ticket list - Zeigt alle Tickets des Spielers -/ticket close - Ticket schließen +/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 ``` -### Admin-Befehle +### Support/Admin-Befehle ``` -/ticket reload - Plugin neu laden -/ticket migrate - Speicherart wechseln (Migration) -/ticket export/import - Tickets exportieren/importieren -/ticket stats - Statistiken anzeigen -/ticket archive - Tickets archivieren -/ticket claim - Ticket übernehmen -/ticket forward - Ticket weiterleiten -/ticket close - Ticket schließen +/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 ``` ### Permissions @@ -86,9 +71,9 @@ messages: | Permission | Beschreibung | Standard | |---|---|---| | `ticket.create` | Ticket erstellen | ✅ alle Spieler | -| `ticket.support` | Tickets einsehen, claimen & schließen | ❌ manuell vergeben | +| `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 (beinhaltet `ticket.support`) | OP | +| `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: > ``` @@ -97,23 +82,68 @@ messages: --- +## Kategorie & Priorität beim Erstellen + +Beim Erstellen eines Tickets können Kategorie und Priorität optional angegeben werden: + +``` +/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 +``` + +Verfügbare Prioritäten: `low`, `normal`, `high`, `urgent` (auch auf Deutsch: `niedrig`, `hoch`, `dringend`) + +Kategorien und ihre Aliases sind frei in der `config.yml` konfigurierbar. + +--- + +## Discord-Webhook + +Der integrierte Discord-Webhook unterstützt: + +- **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 der `config.yml`: + +```yaml +discord: + enabled: true + webhook-url: "https://discord.com/api/webhooks/..." + role-ping-id: "123456789012345678" # Discord-Rollen-ID (leer = kein Ping) + messages: + new-ticket: + role-ping: true + show-category: true + show-priority: true + ticket-closed: + enabled: true + role-ping: false +``` + +--- + ## FAQ **Kann ich zwischen MySQL und Datei-Speicherung wechseln?** -> Ja! Das Plugin migriert alle Daten automatisch und sicher. +> Ja! Mit `/ticket migrate tomysql` oder `/ticket migrate tofile` werden alle Daten automatisch migriert. -**Wie viele Tickets passen in die GUI?** -> Bis zu 54 pro Seite, bei mehr Tickets wird automatisch geblättert. +**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. -**Wie kann ich Nachrichten und Limits anpassen?** -> Alle Texte, Farben und Limits findest du in der `config.yml`. +**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. + +**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 aktiviere ich den Debug-Modus?** > Setze `debug: true` in der `config.yml`. -**Wie kann ich Tickets exportieren/importieren?** -> Mit `/ticket export` und `/ticket import` – ideal für Server-Umzüge. - **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. @@ -125,9 +155,14 @@ messages: |----------------------------------|:------------:|:-------------:|:---------------:| | Speicher-Migration | ✔️ | ⚠️ | ✖️ | | Automatische Backups | ✔️ | ⚠️ | ✖️ | -| GUI | ✔️ | ⚠️ | ✖️ | +| 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 | ✔️ | ✖️ | ✖️ | --- @@ -143,5 +178,5 @@ 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**! +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