PlayerPermissionChangeEvent
PlayerPermissionChangeEvent
Section titled “PlayerPermissionChangeEvent”Package:
com.hypixel.hytale.server.core.event.events.permissionsImplements: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.
Fields / Accessors (Base)
Section titled “Fields / Accessors (Base)”| Field | Type | Accessor | Mutable | Notes |
|---|---|---|---|---|
playerUuid | UUID | getPlayerUuid() | No | The UUID of the player whose permissions changed. |
Inner Classes
Section titled “Inner Classes”PlayerPermissionChangeEvent.GroupAdded
Section titled “PlayerPermissionChangeEvent.GroupAdded”Dispatched when a player is added to a permission group (from the permission-change perspective).
| Field | Type | Accessor | Mutable | Notes |
|---|---|---|---|---|
playerUuid | UUID | getPlayerUuid() | No | Inherited from base class. |
groupName | String | getGroupName() | No | The 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.
PlayerPermissionChangeEvent.GroupRemoved
Section titled “PlayerPermissionChangeEvent.GroupRemoved”Dispatched when a player is removed from a permission group (from the permission-change perspective).
| Field | Type | Accessor | Mutable | Notes |
|---|---|---|---|---|
playerUuid | UUID | getPlayerUuid() | No | Inherited from base class. |
groupName | String | getGroupName() | No | The 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.
| Field | Type | Accessor | Mutable | Notes |
|---|---|---|---|---|
playerUuid | UUID | getPlayerUuid() | No | Inherited from base class. |
addedPermissions | Set<String> | getAddedPermissions() | No | The 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.
| Field | Type | Accessor | Mutable | Notes |
|---|---|---|---|---|
playerUuid | UUID | getPlayerUuid() | No | Inherited from base class. |
removedPermissions | Set<String> | getRemovedPermissions() | No | The set of permission strings that were revoked from the player. |
Fired by: PermissionsModule.removeUserPermission() (line 102) via eventBus.dispatchFor().
Listening
Section titled “Listening”// Listen for direct permissions being added to a playergetEventRegistry().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 playergetEventRegistry().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 typegetEventRegistry().register(PlayerPermissionChangeEvent.GroupAdded.class, event -> { UUID playerUuid = event.getPlayerUuid(); String groupName = event.getGroupName(); // Handle player added to group});Related Events
Section titled “Related Events”PlayerGroupEvent— extends this class. TheAddedandRemovedinner classes ofPlayerGroupEventare 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).
Permissions Event Cluster
Section titled “Permissions Event Cluster”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 changePlayerGroupEvent.Added/.Removed(extendsPlayerPermissionChangeEvent) — a player’s group membership changes
Inheritance Hierarchy
Section titled “Inheritance Hierarchy”PlayerPermissionChangeEvent +-- GroupAdded +-- GroupRemoved +-- PermissionsAdded +-- PermissionsRemoved +-- PlayerGroupEvent (subclass) +-- Added +-- Removed