Class PlayerPermissionHandler

java.lang.Object
com.bencodez.advancedcore.api.permissions.PlayerPermissionHandler

public class PlayerPermissionHandler extends Object
Stores permission state for a single player UUID.

Key behaviors:

  • Persistent permissions are re-applied on every login.
  • Timed permissions are tracked as an absolute expiration timestamp (epoch millis).
  • Offline queued permissions are applied on next login.
  • Constructor Details

    • PlayerPermissionHandler

      public PlayerPermissionHandler(UUID uuid, org.bukkit.permissions.PermissionAttachment attachment, PermissionHandler handler)
  • Method Details

    • addExpiration

      public PlayerPermissionHandler addExpiration(String perm, com.bencodez.simpleapi.time.ParsedDuration duration)
      Adds a timed permission using ParsedDuration.
      Parameters:
      perm - Permission node
      duration - How long the permission should last
      Returns:
      this
    • addExpiration

      public PlayerPermissionHandler addExpiration(String perm, long seconds)
      Backwards-compatible: seconds-based timed permission.
    • addOfflinePerm

      public PlayerPermissionHandler addOfflinePerm(String perm, com.bencodez.simpleapi.time.ParsedDuration duration)
      Queues a permission to apply on next login.
      Parameters:
      perm - Permission node
      duration - Duration; empty means permanent
      Returns:
      this
    • addOfflinePerm

      public PlayerPermissionHandler addOfflinePerm(String perm, long seconds)
      Backwards-compatible offline queue.
    • addPerm

      public PlayerPermissionHandler addPerm(String perm)
      Adds a permanent permission (persists across logouts).
      Parameters:
      perm - Permission node
      Returns:
      this
    • onLogin

      public void onLogin(org.bukkit.entity.Player player)
      Re-applies stored permissions after an attachment is created on login.
    • onLogout

      public void onLogout(org.bukkit.entity.Player player)
      Logout hook; state is intentionally preserved.
    • removePermission

      public void removePermission(String perm)
      Removes a permission from both internal tracking and the live attachment (if online).