Skip to content

Commit e14f271

Browse files
committed
simplify down to permissible
1 parent f9c823a commit e14f271

File tree

3 files changed

+23
-24
lines changed

3 files changed

+23
-24
lines changed

shared/src/main/java/me/xginko/aef/utils/permissions/BukkitPermissionHandler.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
import com.github.benmanes.caffeine.cache.Cache;
44
import com.github.benmanes.caffeine.cache.Caffeine;
55
import me.xginko.aef.utils.enums.TriState;
6-
import org.bukkit.command.CommandSender;
76
import org.bukkit.event.EventHandler;
87
import org.bukkit.event.EventPriority;
98
import org.bukkit.event.HandlerList;
109
import org.bukkit.event.Listener;
1110
import org.bukkit.event.player.PlayerKickEvent;
1211
import org.bukkit.event.player.PlayerQuitEvent;
12+
import org.bukkit.permissions.Permissible;
1313
import org.bukkit.permissions.PermissionAttachmentInfo;
1414
import org.bukkit.plugin.java.JavaPlugin;
1515

@@ -19,7 +19,7 @@
1919

2020
public final class BukkitPermissionHandler implements PermissionHandler, Listener {
2121

22-
private final Map<CommandSender, Cache<String, TriState>> permissionCacheMap;
22+
private final Map<Permissible, Cache<String, TriState>> permissionCacheMap;
2323
private final Duration permissionCacheDuration;
2424

2525
BukkitPermissionHandler(JavaPlugin plugin) {
@@ -31,35 +31,35 @@ public final class BukkitPermissionHandler implements PermissionHandler, Listene
3131
@Override
3232
public void disable() {
3333
HandlerList.unregisterAll(this);
34-
for (Map.Entry<CommandSender, Cache<String, TriState>> entry : permissionCacheMap.entrySet()) {
34+
for (Map.Entry<Permissible, Cache<String, TriState>> entry : permissionCacheMap.entrySet()) {
3535
flushCache(entry.getKey());
3636
}
3737
}
3838

3939
@Override
40-
public TriState permissionValue(CommandSender commandSender, String permission) {
41-
Cache<String, TriState> permCache = permissionCacheMap.computeIfAbsent(commandSender, sender ->
40+
public TriState permissionValue(Permissible permissible, String permission) {
41+
Cache<String, TriState> permCache = permissionCacheMap.computeIfAbsent(permissible, sender ->
4242
Caffeine.newBuilder().expireAfterWrite(permissionCacheDuration).build());
4343
TriState value = permCache.getIfPresent(permission);
4444
if (value == null) {
45-
value = commandSender.isPermissionSet(permission) ? TriState.of(commandSender.hasPermission(permission)) : TriState.UNDEFINED;
45+
value = permissible.isPermissionSet(permission) ? TriState.of(permissible.hasPermission(permission)) : TriState.UNDEFINED;
4646
permCache.put(permission, value);
4747
}
4848
return value;
4949
}
5050

5151
@Override
52-
public void setPermission(CommandSender commandSender, String permission, TriState state) {
53-
for (PermissionAttachmentInfo attachmentInfo : commandSender.getEffectivePermissions()) {
52+
public void setPermission(Permissible permissible, String permission, TriState state) {
53+
for (PermissionAttachmentInfo attachmentInfo : permissible.getEffectivePermissions()) {
5454
if (attachmentInfo.getAttachment() == null) {
5555
continue;
5656
}
5757

5858
if (attachmentInfo.getPermission().equals(permission)) {
5959
if (state == TriState.UNDEFINED) {
60-
commandSender.removeAttachment(attachmentInfo.getAttachment());
60+
permissible.removeAttachment(attachmentInfo.getAttachment());
6161
} else {
62-
commandSender.addAttachment(attachmentInfo.getAttachment().getPlugin(), permission, state.toBoolean());
62+
permissible.addAttachment(attachmentInfo.getAttachment().getPlugin(), permission, state.toBoolean());
6363
}
6464
}
6565
}
@@ -75,7 +75,7 @@ private void onPlayerKick(PlayerKickEvent event) {
7575
flushCache(event.getPlayer());
7676
}
7777

78-
private void flushCache(CommandSender commandSender) {
78+
private void flushCache(Permissible commandSender) {
7979
if (permissionCacheMap.containsKey(commandSender)) {
8080
permissionCacheMap.get(commandSender).invalidateAll();
8181
permissionCacheMap.get(commandSender).cleanUp();

shared/src/main/java/me/xginko/aef/utils/permissions/LuckPermsPermissionHandler.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import net.luckperms.api.LuckPerms;
66
import net.luckperms.api.model.user.User;
77
import net.luckperms.api.node.Node;
8-
import org.bukkit.command.CommandSender;
98
import org.bukkit.entity.Player;
9+
import org.bukkit.permissions.Permissible;
1010
import org.bukkit.plugin.java.JavaPlugin;
1111

1212
public final class LuckPermsPermissionHandler implements PermissionHandler {
@@ -25,9 +25,9 @@ public static boolean isSupported(JavaPlugin plugin) {
2525
}
2626

2727
@Override
28-
public TriState permissionValue(CommandSender commandSender, String permission) {
29-
if (commandSender instanceof Player) {
30-
switch (luckPerms.getPlayerAdapter(Player.class).getUser((Player) commandSender).getCachedData().getPermissionData()
28+
public TriState permissionValue(Permissible permissible, String permission) {
29+
if (permissible instanceof Player) {
30+
switch (luckPerms.getPlayerAdapter(Player.class).getUser((Player) permissible).getCachedData().getPermissionData()
3131
.checkPermission(permission)) {
3232
case TRUE:
3333
return TriState.TRUE;
@@ -37,22 +37,22 @@ public TriState permissionValue(CommandSender commandSender, String permission)
3737
return TriState.UNDEFINED;
3838
}
3939
} else {
40-
return bukkitPermissionHandler.permissionValue(commandSender, permission);
40+
return bukkitPermissionHandler.permissionValue(permissible, permission);
4141
}
4242
}
4343

4444
@Override
45-
public void setPermission(CommandSender commandSender, String permission, TriState state) {
46-
if (commandSender instanceof Player) {
47-
User luckPermsUser = luckPerms.getPlayerAdapter(Player.class).getUser((Player) commandSender);
45+
public void setPermission(Permissible permissible, String permission, TriState state) {
46+
if (permissible instanceof Player) {
47+
User luckPermsUser = luckPerms.getPlayerAdapter(Player.class).getUser((Player) permissible);
4848
if (state == TriState.UNDEFINED) {
4949
luckPermsUser.data().remove(Node.builder(permission).build());
5050
} else {
5151
luckPermsUser.data().add(Node.builder(permission).value(state.toBoolean()).build());
5252
}
5353
luckPerms.getUserManager().saveUser(luckPermsUser);
5454
} else {
55-
bukkitPermissionHandler.setPermission(commandSender, permission, state);
55+
bukkitPermissionHandler.setPermission(permissible, permission, state);
5656
}
5757
}
5858
}

shared/src/main/java/me/xginko/aef/utils/permissions/PermissionHandler.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,17 @@
22

33
import me.xginko.aef.utils.enums.TriState;
44
import me.xginko.aef.utils.models.Disableable;
5-
import org.bukkit.command.CommandSender;
5+
import org.bukkit.permissions.Permissible;
66
import org.bukkit.plugin.java.JavaPlugin;
77

88
public interface PermissionHandler extends Disableable {
99

1010
static PermissionHandler create(JavaPlugin plugin) {
1111
return LuckPermsPermissionHandler.isSupported(plugin) ? new LuckPermsPermissionHandler(plugin) : new BukkitPermissionHandler(plugin);
12-
1312
}
1413

1514
default void disable() {}
16-
TriState permissionValue(CommandSender commandSender, String permission);
17-
void setPermission(CommandSender commandSender, String permission, TriState state);
15+
TriState permissionValue(Permissible permissible, String permission);
16+
void setPermission(Permissible permissible, String permission, TriState state);
1817

1918
}

0 commit comments

Comments
 (0)