--- title: Événements Permission type: docs weight: 4 --- Événements liés à la vérification et gestion des permissions. ## PermissionCheckEvent Déclenché quand une permission est vérifiée pour un joueur. ```java getEventRegistry().register(PermissionCheckEvent.class, event -> { String permission = event.getPermission(); Player player = event.getPlayer(); // Overrider le résultat de permission if (permission.startsWith("vip.") && isVIP(player)) { event.setResult(true); } }); ``` | Méthode | Retourne | Description | |---------|----------|-------------| | `getPlayer()` | `Player` | Joueur vérifié | | `getPermission()` | `String` | Noeud de permission | | `getResult()` | `boolean` | Résultat actuel | | `setResult(boolean)` | `void` | Overrider le résultat | ## Cas d'Utilisation ### Logique de Permission Personnalisée ```java getEventRegistry().register(PermissionCheckEvent.class, event -> { String permission = event.getPermission(); Player player = event.getPlayer(); // Accorder toutes les permissions aux admins if (isServerAdmin(player)) { event.setResult(true); return; } // Vérifier une source de permissions personnalisée if (customPermissions.hasPermission(player.getUuid(), permission)) { event.setResult(true); } }); ``` ### Logging des Permissions ```java getEventRegistry().register(PermissionCheckEvent.class, event -> { getLogger().fine(String.format( "Vérification permission : %s pour %s = %s", event.getPermission(), event.getPlayer().getName(), event.getResult() )); }); ``` ### Permissions Temporaires ```java public class TempPermPlugin extends JavaPlugin { private final Map> tempPerms = new HashMap<>(); @Override public void start() { getEventRegistry().register(PermissionCheckEvent.class, event -> { UUID uuid = event.getPlayer().getUuid(); Set perms = tempPerms.get(uuid); if (perms != null && perms.contains(event.getPermission())) { event.setResult(true); } }); } public void grantTemp(UUID player, String permission) { tempPerms.computeIfAbsent(player, k -> new HashSet<>()) .add(permission); } public void revokeTemp(UUID player, String permission) { Set perms = tempPerms.get(player); if (perms != null) { perms.remove(permission); } } } ```