Interface PermissionManager


public interface PermissionManager
Manages permission providers and default permission behavior.

The permission manager is the central point for permission plugin integration. External plugins like LuckPerms register their PermissionProvider here.

Default Behavior

When no permission provider is registered, the default behavior is:

  • Console/RCON: All permissions granted
  • Players: All permissions denied (or based on configured defaults)

Plugin Integration

// In your permission plugin's onEnable:
PermissionManager manager = Numdrassl.getProxy().getPermissionManager();
manager.setProvider(new MyPermissionProvider());

// In your permission plugin's onDisable:
manager.clearProvider();
See Also:
  • Method Details

    • getProvider

      @Nonnull Optional<PermissionProvider> getProvider()
      Gets the currently registered permission provider.
      Returns:
      the permission provider, or empty if none registered
    • setProvider

      void setProvider(@Nonnull PermissionProvider provider)
      Sets the permission provider.

      Only one provider can be active at a time. Setting a new provider will replace the existing one.

      Parameters:
      provider - the permission provider
    • clearProvider

      void clearProvider()
      Clears the current permission provider.

      After calling this, the default permission behavior will be used.

    • hasProvider

      default boolean hasProvider()
      Checks if a permission provider is registered.
      Returns:
      true if a provider is registered
    • createFunction

      @Nonnull PermissionFunction createFunction(@Nonnull Player player)
      Creates a permission function for the given player.

      If a provider is registered, delegates to it. Otherwise, returns the default permission function.

      Parameters:
      player - the player
      Returns:
      the permission function for this player
    • getDefaultFunction

      @Nonnull PermissionFunction getDefaultFunction()
      Gets the default permission function used when no provider is registered.
      Returns:
      the default permission function
    • setDefaultFunction

      void setDefaultFunction(@Nonnull PermissionFunction function)
      Sets the default permission function.

      This function is used when no permission provider is registered, or when the provider returns Tristate.UNDEFINED.

      Parameters:
      function - the default permission function
    • registerDefaultPermission

      void registerDefaultPermission(@Nonnull String permission, @Nonnull Tristate defaultValue)
      Registers a default permission value.

      This sets the default value for a specific permission when no provider is registered or the provider returns UNDEFINED.

      Parameters:
      permission - the permission string
      defaultValue - the default value
    • getDefaultPermission

      @Nullable Tristate getDefaultPermission(@Nonnull String permission)
      Gets the default value for a permission.
      Parameters:
      permission - the permission string
      Returns:
      the default value, or null if not set