Files
TicketSystem/README.md
2026-02-20 16:49:53 +00:00

147 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TicketSystem
![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.
## 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
- **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)
- **Seiten-System** Bei sehr vielen Tickets wird automatisch geblättert
- **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. **config.yml** anpassen (Speicherorte, Nachrichten, Limits, Farben, MySQL-Daten etc.)
2. **TicketSystem.jar** in den plugins-Ordner legen und Server starten
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 <Nachricht> - Neues Ticket erstellen
/ticket list - Zeigt alle Tickets des Spielers
/ticket close <ID> - Ticket schließen
```
### 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 <ID> - Ticket übernehmen
/ticket forward <ID> <Spieler> - Ticket weiterleiten
/ticket close <ID> - Ticket schließen
```
### Permissions
| Permission | Beschreibung | Standard |
|---|---|---|
| `ticket.create` | Ticket erstellen | ✅ alle Spieler |
| `ticket.support` | Tickets einsehen, claimen & schließen | ❌ manuell vergeben |
| `ticket.archive` | Archiv öffnen, einsehen & Tickets permanent löschen | ❌ manuell vergeben |
| `ticket.admin` | Voller Zugriff inkl. Weiterleitung & Reload (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
> ```
---
## FAQ
**Kann ich zwischen MySQL und Datei-Speicherung wechseln?**
> Ja! Das Plugin migriert alle Daten automatisch und sicher.
**Wie viele Tickets passen in die GUI?**
> Bis zu 54 pro Seite, bei mehr Tickets wird automatisch geblättert.
**Wie kann ich Nachrichten und Limits anpassen?**
> Alle Texte, Farben und Limits findest du in der `config.yml`.
**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.
---
## Vergleich mit anderen Plugins
| Feature | TicketSystem | SimpleTickets | AdvancedTickets |
|----------------------------------|:------------:|:-------------:|:---------------:|
| Speicher-Migration | ✔️ | ⚠️ | ✖️ |
| Automatische Backups | ✔️ | ⚠️ | ✖️ |
| GUI | ✔️ | ⚠️ | ✖️ |
| Archivierung | ✔️ | ⚠️ | ✖️ |
| Rollenbasierter Archiv-Zugriff | ✔️ | ✖️ | ✖️ |
| 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.