From 788f022e74dcaee6aad28cd0bb8628d96f4f86b4 Mon Sep 17 00:00:00 2001 From: Jikoo Date: Tue, 15 Sep 2020 13:44:50 -0400 Subject: [PATCH] Mitigate some permissions confusion For some reason, certain permissions plugins seem to not respect our declared default false nodes. To alleviate user confusion, these nodes will not be allowed to be used via wildcard internally. --- .../java/com/lishid/openinv/util/Permissions.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/plugin/src/main/java/com/lishid/openinv/util/Permissions.java b/plugin/src/main/java/com/lishid/openinv/util/Permissions.java index c1cab7f..859ba13 100644 --- a/plugin/src/main/java/com/lishid/openinv/util/Permissions.java +++ b/plugin/src/main/java/com/lishid/openinv/util/Permissions.java @@ -25,9 +25,9 @@ public enum Permissions { EXEMPT("exempt"), CROSSWORLD("crossworld"), SILENT("silent"), - SILENT_DEFAULT("silent.default"), + SILENT_DEFAULT("silent.default", true), ANYCHEST("anychest"), - ANY_DEFAULT("any.default"), + ANY_DEFAULT("any.default", true), ENDERCHEST("openender"), ENDERCHEST_ALL("openenderall"), SEARCH("search"), @@ -39,15 +39,21 @@ public enum Permissions { SPECTATE("spectate"); private final String permission; + private final boolean uninheritable; Permissions(String permission) { + this(permission, false); + } + + Permissions(String permission, boolean uninheritable) { this.permission = "OpenInv." + permission; + this.uninheritable = uninheritable; } public boolean hasPermission(Permissible permissible) { boolean hasPermission = permissible.hasPermission(permission); - if (hasPermission || permissible.isPermissionSet(permission)) { + if (uninheritable || hasPermission || permissible.isPermissionSet(permission)) { return hasPermission; }