Permissions
Permissions are the feature allowing you to determine if a player is able to perform an action or not.
A permission contains 2 things, a unique name (same as with Bukkit if you are familiar with it), and an optional
NBTCompound
which can be used to add additional data to the permission (no more "my.permission.X" where X represents a number).In order to add a permission to a PermissionHandler you should use
PermissionHandler#addPermission(Permission)
.To remove a permission,
PermissionHandler#removePermission(Permission)
and PermissionHandler#removePermission(String)
are available.To verify if a PermissionHandler has a permission, you have the choice between simply checking if the handler has a permission with the same name, or verifying that the handler has both the permission name and the right data associated with it.
To check if the handler has a permission with a specific name,
PermissionHandler#hasPermission(String)
should be used. If you want to verify that the handler has the right NBT data PermissionHandler#hasPermission(String, PermissionVerifier)
is the right choice.A
PermissionVerifier
is a simple functional interface used to check if the given NBTCompound
is valid.Alternatively,
PermissionHandler#hasPermission(Permission)
can be used. It does require both the permission name and the data to be equal.Nothing is automatically saved persistently in Minestom, permissions are not an exception.
Permissions must be serialized and deserialized back manually if you want such a feature. You are lucky since the
Permission
class can easily be interpreted as 2 strings, one being the permission name, and the second representing the optional data using NBTCompound#toSNBT()
(and deserialized with SNBTParser#parse()
).Last modified 1yr ago