Skip to content

PlayerPermissionChangeEvent

Package: com.hypixel.hytale.server.core.event.events.permissions Implements: IEvent<Void> Cancellable: No Key type: Void

Base event for all player-level permission changes. This class provides the playerUuid field shared by all player permission events. It has four inner classes covering the four types of player permission changes: direct permission grants/revocations and group membership additions/removals.

This event cannot be cancelled — it is a notification of a change that has already occurred.

Because the key type is Void, this event is dispatched globally — all registered listeners receive it regardless of key.

FieldTypeAccessorMutableNotes
playerUuidUUIDgetPlayerUuid()NoThe UUID of the player whose permissions changed.

Dispatched when a player is added to a permission group (from the permission-change perspective).

FieldTypeAccessorMutableNotes
playerUuidUUIDgetPlayerUuid()NoInherited from base class.
groupNameStringgetGroupName()NoThe name of the group the player was added to.

Purpose unknown — inferred from structure. No direct dispatch site found for this specific inner class; group membership changes are dispatched via PlayerGroupEvent.Added instead.

Dispatched when a player is removed from a permission group (from the permission-change perspective).

FieldTypeAccessorMutableNotes
playerUuidUUIDgetPlayerUuid()NoInherited from base class.
groupNameStringgetGroupName()NoThe name of the group the player was removed from.

Purpose unknown — inferred from structure. No direct dispatch site found for this specific inner class; group membership changes are dispatched via PlayerGroupEvent.Removed instead.

PlayerPermissionChangeEvent.PermissionsAdded

Section titled “PlayerPermissionChangeEvent.PermissionsAdded”

Dispatched when direct permissions are granted to a player.

FieldTypeAccessorMutableNotes
playerUuidUUIDgetPlayerUuid()NoInherited from base class.
addedPermissionsSet<String>getAddedPermissions()NoThe set of permission strings that were granted to the player.

Fired by: PermissionsModule.addUserPermission() (line 94) via eventBus.dispatchFor().

PlayerPermissionChangeEvent.PermissionsRemoved

Section titled “PlayerPermissionChangeEvent.PermissionsRemoved”

Dispatched when direct permissions are revoked from a player.

FieldTypeAccessorMutableNotes
playerUuidUUIDgetPlayerUuid()NoInherited from base class.
removedPermissionsSet<String>getRemovedPermissions()NoThe set of permission strings that were revoked from the player.

Fired by: PermissionsModule.removeUserPermission() (line 102) via eventBus.dispatchFor().

// Listen for direct permissions being added to a player
getEventRegistry().register(PlayerPermissionChangeEvent.PermissionsAdded.class, event -> {
UUID playerUuid = event.getPlayerUuid();
Set<String> added = event.getAddedPermissions();
// Handle new player permissions
});
// Listen for direct permissions being removed from a player
getEventRegistry().register(PlayerPermissionChangeEvent.PermissionsRemoved.class, event -> {
UUID playerUuid = event.getPlayerUuid();
Set<String> removed = event.getRemovedPermissions();
// Handle revoked player permissions
});
// Listen for group membership changes via the base type
getEventRegistry().register(PlayerPermissionChangeEvent.GroupAdded.class, event -> {
UUID playerUuid = event.getPlayerUuid();
String groupName = event.getGroupName();
// Handle player added to group
});
  • PlayerGroupEvent — extends this class. The Added and Removed inner classes of PlayerGroupEvent are the primary dispatch targets for group membership changes.
  • GroupPermissionChangeEvent — fired when a group’s own permissions change (distinct from which players belong to the group).

The permissions system fires events at two levels:

Group level:

  • GroupPermissionChangeEvent.Added / .Removed — a group’s permission set changes

Player level:

  • PlayerPermissionChangeEvent.PermissionsAdded / .PermissionsRemoved — a player’s direct permissions change
  • PlayerGroupEvent.Added / .Removed (extends PlayerPermissionChangeEvent) — a player’s group membership changes
PlayerPermissionChangeEvent
+-- GroupAdded
+-- GroupRemoved
+-- PermissionsAdded
+-- PermissionsRemoved
+-- PlayerGroupEvent (subclass)
+-- Added
+-- Removed