Permissions
The PermissionPacket
is a client-bound packet that allows servers to deactivate and/or activate certain features for
their LabyMod players.
What permissions are available?
All permissions available in LabyMod 4 itself can be found as constants in the Permission
class, integrations may also
create their own permissions.
Creating custom permissions is possible via Permission.of(String)
.
Sending the Packet
The packet can either be sent via the LabyModPlayer
object of the player, or directly via the LabyModProtocol
.
The packet requires the type StatedPermission
which can be obtained by calling either Permission#allow
or
Permission#deny
. So for example Permission.CHAT_AUTOTEXT.deny()
would disable the chat autotext feature.
Via LabyModPlayer
// Create a List of permissions (array is also possible)
List<Permission.StatedPermission> permissions = new ArrayList<>();
// Add all permissions you want to allow and/or deny
permissions.add(Permission.CHAT_AUTOTEXT.deny());
// Get the LabyModPlayer
LabyModPlayer labyModPlayer = LabyModProtocolService.get().getPlayer(uniqueId);
// Send the permissions
labyModPlayer.sendPermissions(permissions);
Via the LabyModProtocol
// Create a List of permissions (array is also possible)
List<Permission.StatedPermission> permissions = new ArrayList<>();
// Add all permissions you want to allow and/or deny
permissions.add(Permission.CHAT_AUTOTEXT.deny());
// Get the LabyModProtocol
LabyModProtocol labyModProtocol = LabyModProtocolService.get().labyModProtocol();
// Send the packet
labyModProtocol.sendPacket(uniqueId, new PermissionPacket(permissions));