Skip to content

Permission Events

Package: com.hypixel.hytale.server.core.event.events.permissions

Events related to permission and group changes.


Fired when a player is added to or removed from a permission group.

Class: com.hypixel.hytale.server.core.event.events.permissions.PlayerGroupEvent

PropertyValue
ExtendsPlayerPermissionChangeEvent
KeyTypeVoid
CancellableNo
MethodReturn TypeDescription
getPlayerUuid()UUIDThe affected player (inherited)
getGroupName()StringThe group name
FieldTypeDescription
playerUuidUUIDThe affected player
groupNameStringThe group name

Fired when a player is added to a permission group.

Methods:

MethodReturn TypeDescription
getPlayerUuid()UUIDThe UUID of the affected player (inherited)
getGroupName()StringThe name of the group the player was added to (inherited)

Fired when a player is removed from a permission group.

Methods:

MethodReturn TypeDescription
getPlayerUuid()UUIDThe UUID of the affected player (inherited)
getGroupName()StringThe name of the group the player was removed from (inherited)

Fired when permissions are added to or removed from a group. This is an abstract base class.

Class: com.hypixel.hytale.server.core.event.events.permissions.GroupPermissionChangeEvent

PropertyValue
AbstractYes
ImplementsIEvent<Void>
KeyTypeVoid
CancellableNo
MethodReturn TypeDescription
getGroupName()StringThe affected group
FieldTypeDescription
groupNameStringThe affected group

Fired when permissions are added to a group.

Methods:

MethodReturn TypeDescription
getGroupName()StringThe name of the affected group (inherited)
getAddedPermissions()Set<String>An unmodifiable set of permission strings that were added

Fired when permissions are removed from a group.

Methods:

MethodReturn TypeDescription
getGroupName()StringThe name of the affected group (inherited)
getRemovedPermissions()Set<String>An unmodifiable set of permission strings that were removed

Fired when a player’s permissions change (directly or via group). This is an abstract base class.

Class: com.hypixel.hytale.server.core.event.events.permissions.PlayerPermissionChangeEvent

PropertyValue
AbstractYes
ImplementsIEvent<Void>
KeyTypeVoid
CancellableNo
MethodReturn TypeDescription
getPlayerUuid()UUIDThe affected player
FieldTypeDescription
playerUuidUUIDThe affected player

PlayerPermissionChangeEvent.PermissionsAdded

Section titled “PlayerPermissionChangeEvent.PermissionsAdded”

Fired when permissions are directly added to a player.

Methods:

MethodReturn TypeDescription
getPlayerUuid()UUIDThe UUID of the affected player (inherited)
getAddedPermissions()Set<String>An unmodifiable set of permission strings that were added

PlayerPermissionChangeEvent.PermissionsRemoved

Section titled “PlayerPermissionChangeEvent.PermissionsRemoved”

Fired when permissions are directly removed from a player.

Methods:

MethodReturn TypeDescription
getPlayerUuid()UUIDThe UUID of the affected player (inherited)
getRemovedPermissions()Set<String>An unmodifiable set of permission strings that were removed

Fired when a player is added to a permission group.

Methods:

MethodReturn TypeDescription
getPlayerUuid()UUIDThe UUID of the affected player (inherited)
getGroupName()StringThe name of the group the player was added to

Fired when a player is removed from a permission group.

Methods:

MethodReturn TypeDescription
getPlayerUuid()UUIDThe UUID of the affected player (inherited)
getGroupName()StringThe name of the group the player was removed from

Real usage showing how to react to permission changes:

@Override
protected void setup() {
EventBus eventBus = HytaleServer.get().getEventBus();
// react when permissions are directly removed from a player
eventBus.register(PlayerPermissionChangeEvent.PermissionsRemoved.class, event -> {
if (PermissionsModule.hasPermission(event.getRemovedPermissions(), "hytale.camera.flycam") == Boolean.TRUE) {
checkAndEnforceFlyCameraPermission(event.getPlayerUuid());
}
});
// react when a player is removed from a group
eventBus.register(PlayerGroupEvent.Removed.class, event -> {
checkAndEnforceFlyCameraPermission(event.getPlayerUuid());
});
// react when permissions are removed from a group (affects all members)
eventBus.register(GroupPermissionChangeEvent.Removed.class, event -> {
if (PermissionsModule.hasPermission(event.getRemovedPermissions(), "hytale.camera.flycam") != Boolean.TRUE) {
return;
}
// check all players in this group
String groupName = event.getGroupName();
for (PlayerRef playerRef : Universe.get().getPlayers()) {
UUID uuid = playerRef.getUuid();
Set<String> groups = PermissionsModule.get().getGroupsForUser(uuid);
if (groups.contains(groupName)) {
checkAndEnforceFlyCameraPermission(uuid);
}
}
});
}
private void checkAndEnforceFlyCameraPermission(UUID playerUuid) {
// disable fly camera if player no longer has permission
if (!PermissionsModule.get().hasPermission(playerUuid, "hytale.camera.flycam")) {
disableFlyCameraForPlayer(playerUuid);
}
}