182 lines
9.2 KiB
Markdown
182 lines
9.2 KiB
Markdown
# TicketSystem
|
||
|
||
  
|
||
|
||
**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.
|
||
|
||
## 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
|
||
|
||
---
|
||
|
||
## 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)
|
||
|
||
---
|
||
|
||
## Befehle & Rechte
|
||
|
||
### Spieler-Befehle
|
||
|
||
```
|
||
/ticket - Hilfe & Befehlsübersicht
|
||
/ticket create [Kategorie] [Priorität] <Text> - Neues Ticket erstellen
|
||
/ticket list - Eigene Tickets in der GUI anzeigen
|
||
/ticket comment <ID> <Nachricht> - Kommentar zu einem Ticket hinzufügen
|
||
/ticket rate <ID> <good|bad> - Abgeschlossenes Ticket bewerten
|
||
```
|
||
|
||
### Support/Admin-Befehle
|
||
|
||
```
|
||
/ticket claim <ID> - Ticket annehmen
|
||
/ticket close <ID> [Kommentar] - Ticket schließen
|
||
/ticket forward <ID> <Spieler> - Ticket weiterleiten
|
||
/ticket setpriority <ID> <low|normal|high|urgent> - Priorität eines Tickets ändern
|
||
/ticket reload - Konfiguration neu laden (inkl. Kategorien)
|
||
/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
|
||
|
||
| 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
|
||
|
||
Beim Erstellen eines Tickets können Kategorie und Priorität optional angegeben werden:
|
||
|
||
```
|
||
/ticket create <Text> → Kategorie: Standard, Priorität: NORMAL
|
||
/ticket create bug <Text> → Kategorie: Bug, Priorität: NORMAL
|
||
/ticket create high <Text> → Kategorie: Standard, Priorität: HIGH
|
||
/ticket create bug high <Text> → Kategorie: Bug, Priorität: HIGH
|
||
/ticket create question urgent <Text> → 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! 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.
|
||
|
||
**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 <ID> <Priorität>` oder direkt in der Detail-GUI per Klick.
|
||
|
||
**Wie aktiviere ich den Debug-Modus?**
|
||
> Setze `debug: true` in der `config.yml`.
|
||
|
||
**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.
|
||
|
||
---
|
||
|
||
## Vergleich mit anderen Plugins
|
||
|
||
| 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
|
||
|
||
- [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. |