Interface IPermissionHandler

All Known Implementing Classes:
DefaultPermissionHandler

public interface IPermissionHandler
This is the Heart of the PermissionAPI, it manages PermissionNodes as well as it handles all permission queries.

Note: You do not need to implement a PermissionHandler to query for permissions.

API Note:
You can implement your own PermissionHandler using the PermissionGatherEvent.Handler event.
Implementation Note:
The DefaultPermissionHandler does forward all permission queries to the PermissionNodes default resolver.
  • Method Details

    • getIdentifier

      ResourceLocation getIdentifier()
      Returns an identifier for the PermissionHandler.
      Returns:
      an identifier for the PermissionHandler
    • getRegisteredNodes

      Set<PermissionNode<?>> getRegisteredNodes()
      Returns an unmodifiable view of the collection of registered permission nodes.
      Returns:
      an unmodifiable view of the collection of registered permission nodes
    • getPermission

      <T> T getPermission(ServerPlayer player, PermissionNode<T> node, PermissionDynamicContext<?>... context)
      Mods must use PermissionAPI.getPermission(ServerPlayer, PermissionNode, PermissionDynamicContext[])

      Queries a player's permission for a given node and contexts

      Warning: PermissionNodes must be registered using the PermissionGatherEvent.Nodes event before querying.

      Type Parameters:
      T - type of the queried PermissionNode
      Parameters:
      player - player for which you want to check permissions
      node - the PermissionNode for which you want to query
      context - optional array of PermissionDynamicContext, single entries will be ignored if they weren't registered to the node
      Returns:
      a value of type <T>, that the combination of Player and PermissionNode map to.
    • getOfflinePermission

      <T> T getOfflinePermission(UUID player, PermissionNode<T> node, PermissionDynamicContext<?>... context)
      Type Parameters:
      T - type of the queried PermissionNode
      Parameters:
      player - offline player for which you want to check permissions
      node - the PermissionNode for which you want to query
      context - optional array of PermissionDynamicContext, single entries will be ignored if they weren't registered to the node
      Returns:
      a value of type <T>, that the combination of Player and PermissionNode map to.