This commit is contained in:
2026-01-20 20:33:59 +01:00
commit b16a40e431
583 changed files with 87339 additions and 0 deletions

View File

@@ -0,0 +1,98 @@
---
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<UUID, Set<String>> tempPerms = new HashMap<>();
@Override
public void start() {
getEventRegistry().register(PermissionCheckEvent.class, event -> {
UUID uuid = event.getPlayer().getUuid();
Set<String> 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<String> perms = tempPerms.get(player);
if (perms != null) {
perms.remove(permission);
}
}
}
```