Class PermissionHandler
java.lang.Object
com.bencodez.advancedcore.api.permissions.PermissionHandler
Central permission manager handling temporary and persistent permissions.
Permissions are tracked by UUID and re-applied on login to avoid Bukkit
PermissionAttachment loss on logout.
Timed permissions are stored on disk as an absolute expiration timestamp (epoch millis).
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddPermission(UUID uuid, String permission) voidaddPermission(UUID uuid, String permission, long seconds) Backwards-compatible: seconds-based API.voidaddPermission(UUID uuid, String permission, com.bencodez.simpleapi.time.ParsedDuration duration) Adds a timed permission for a duration.voidaddPermission(org.bukkit.entity.Player player, String permission) voidaddPermission(org.bukkit.entity.Player player, String permission, long seconds) Backwards-compatible: seconds-based API.voidaddPermission(org.bukkit.entity.Player player, String permission, com.bencodez.simpleapi.time.ParsedDuration duration) Adds a timed permission for a duration.voidlogin(org.bukkit.entity.Player player) Call on PlayerJoinEvent.voidlogout(org.bukkit.entity.Player player) Call on PlayerQuitEvent and PlayerKickEvent.voidremovePermission(UUID uuid) voidremovePermission(UUID uuid, String playerName, String permission) Removes one or more permissions (split by "|") from a specific player.voidshutDown()Persists timed permissions for both online + offline handlers.
-
Constructor Details
-
PermissionHandler
-
-
Method Details
-
addPermission
-
addPermission
public void addPermission(org.bukkit.entity.Player player, String permission, com.bencodez.simpleapi.time.ParsedDuration duration) Adds a timed permission for a duration.- Parameters:
player- Playerpermission- Permission node(s), split by "|"duration- Duration to keep the permission for
-
addPermission
Backwards-compatible: seconds-based API. -
addPermission
-
addPermission
public void addPermission(UUID uuid, String permission, com.bencodez.simpleapi.time.ParsedDuration duration) Adds a timed permission for a duration.- Parameters:
uuid- Player UUIDpermission- Permission node(s), split by "|"duration- Duration to keep the permission for
-
addPermission
Backwards-compatible: seconds-based API. -
login
public void login(org.bukkit.entity.Player player) Call on PlayerJoinEvent.Ensures the player has a fresh attachment and re-applies all stored perms.
-
logout
public void logout(org.bukkit.entity.Player player) Call on PlayerQuitEvent and PlayerKickEvent.Detaches the Bukkit attachment but preserves state so permissions re-apply next login.
-
removePermission
-
removePermission
Removes one or more permissions (split by "|") from a specific player.This works for both online and offline cached handlers.
- Parameters:
uuid- Player UUIDplayerName- Player name (debug/logging only; may be null)permission- Permission node(s), split by "|"
-
shutDown
public void shutDown()Persists timed permissions for both online + offline handlers.
-