Interface PermissionFunction
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
Functional interface for checking permissions.
This is the core hook point for permission plugins like LuckPerms.
A permission function takes a permission string and returns a Tristate
indicating whether the permission is granted, denied, or undefined.
Example implementation:
PermissionFunction func = permission -> {
if (permission.startsWith("admin.")) {
return Tristate.FALSE; // Deny all admin permissions
}
return Tristate.UNDEFINED; // Defer to default
};
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final PermissionFunctionA permission function that always returnsTristate.FALSE.static final PermissionFunctionA permission function that always returnsTristate.TRUE.static final PermissionFunctionA permission function that always returnsTristate.UNDEFINED. -
Method Summary
Modifier and TypeMethodDescriptiongetPermissionValue(String permission) Gets the permission value for the given permission string.default PermissionFunctionwithFallback(PermissionFunction other) Creates a new permission function that checks this function first, and falls back to the other function if this returnsTristate.UNDEFINED.
-
Field Details
-
ALWAYS_UNDEFINED
A permission function that always returnsTristate.UNDEFINED. -
ALWAYS_TRUE
A permission function that always returnsTristate.TRUE. Useful for console or admin bypass. -
ALWAYS_FALSE
A permission function that always returnsTristate.FALSE.
-
-
Method Details
-
getPermissionValue
-
withFallback
Creates a new permission function that checks this function first, and falls back to the other function if this returnsTristate.UNDEFINED.- Parameters:
other- the fallback function- Returns:
- a combined permission function
-