#
Permission System (Rechteverwaltung)
Das Permission-System des CorePlugins bietet eine flexible und erweiterbare Rechteverwaltung für Spieler, Gruppen und individuelle Permissions. Es ersetzt den Bukkit-Standardhandler durch ein eigenes System und bietet GUIs sowie Commands zur Verwaltung.
#
Komponenten
- PermissionManager: Setzt beim Login einen eigenen PermissionHandler für jeden Spieler und registriert Tab-Completion für Gruppen.
- PermissionHandler: Ersetzt den Bukkit-PermissibleHandler und leitet alle Permission-Checks an das eigene System weiter.
- PermissionPlayer: Repräsentiert einen Spieler mit Gruppe und individuellen Permissions. Persistiert über das Variables-System.
- Group: Enum für Gruppen/Ränge inkl. Permission-Inheritance und Style.
- Permissions: Statische Hilfsmethoden für Permission- und Gruppenabfragen.
- PermissionCommand: ACF-Command zur Verwaltung (z.B. set-group, add/remove-permission, GUI-Öffnung).
- PermissionGUI: GUI für Rechte- und Gruppenverwaltung.
#
Quickstart
#
Gruppen und Rechte
- Gruppen werden im Enum
Groupdefiniert (z.B. SPIELER, ADMIN, OWNER). - Jede Gruppe hat eigene und vererbte Permissions (inkl. Negation mit
!permission). - Spieler können einer Gruppe zugewiesen werden und individuelle Permissions erhalten.
#
Permission-Check
if (Permissions.hasPermission(player, "coreplugin.feature")) {
// Spieler hat die Permission
}
#
Gruppe setzen
Permissions.setGroup(player, Group.ADMIN);
#
Commands
/perms– Öffnet die GUI zur Rechteverwaltung für einen Spieler/perms set-group <Spieler> <Gruppe>– Setzt die Gruppe/perms add-permission <Spieler> <Permission>– Fügt individuelle Permission hinzu/perms remove-permission <Spieler> <Permission>– Entfernt individuelle Permission
#
GUI
- Rechteverwaltung und Gruppenwahl per Inventar-GUI (
PermissionGUI) - Anzeige von Kopf, Gruppe, individuellen Permissions
- Click-Handler für Permission-Entfernung und Gruppenwechsel
#
Technische Hinweise
- Permissions werden persistent im Variables-System gespeichert
- Beim Login wird der Bukkit-PermissibleHandler durch den eigenen Handler ersetzt
- Gruppen und Permissions können zur Laufzeit geändert werden
- Tab-Completion für Gruppen ist integriert
#
Beispiel: Gruppenstruktur
enum Group {
SPIELER(1, "Spieler", ...),
ADMIN(2, "Admin", ...),
OWNER(3, "Owner", ...);
}
#
Erweiterung
- Neue Gruppen können im Enum
Groupergänzt werden - Eigene Permissions können über das Command oder direkt per API vergeben werden
- GUI und Command sind modular und können erweitert werden
#
Siehe auch
PermissionManager.javaPermissionHandler.javaPermissionPlayer.javaPermissionCommand.javaPermissionGUI.javaGroup.javaPermissions.java