From cccb3c79d5f0ef635945ad01b28703c6e8d8d22a Mon Sep 17 00:00:00 2001 From: bloodshot Date: Wed, 1 Jan 2020 16:34:01 -0500 Subject: [PATCH] Add server context to getPermissionValue calls. --- .../com/griefdefender/provider/LuckPermsProvider.java | 11 +++++++++-- .../com/griefdefender/provider/LuckPermsProvider.java | 11 +++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/bukkit/src/main/java/com/griefdefender/provider/LuckPermsProvider.java b/bukkit/src/main/java/com/griefdefender/provider/LuckPermsProvider.java index 165ffcf..3b0b884 100644 --- a/bukkit/src/main/java/com/griefdefender/provider/LuckPermsProvider.java +++ b/bukkit/src/main/java/com/griefdefender/provider/LuckPermsProvider.java @@ -567,7 +567,9 @@ public Set getGPContexts(ContextSet contextSet) { } public Tristate getPermissionValue(GDPermissionHolder holder, String permission) { - ImmutableContextSet set = ImmutableContextSet.empty(); + final Set contexts = new HashSet<>(); + this.checkServerContext(contexts); + ImmutableContextSet set = this.getLPContexts(contexts).immutableCopy(); return this.getPermissionValue(holder, permission, set); } @@ -578,13 +580,16 @@ public Tristate getPermissionValue(GDClaim claim, GDPermissionHolder holder, Str public Tristate getPermissionValue(GDClaim claim, GDPermissionHolder holder, String permission, Set contexts) { this.addActiveContexts(contexts, holder, null, claim); - return this.getPermissionValue(holder, permission, contexts); + this.checkServerContext(contexts); + ImmutableContextSet contextSet = this.getLPContexts(contexts).immutableCopy(); + return this.getPermissionValue(holder, permission, contextSet); } public Tristate getPermissionValue(GDClaim claim, GDPermissionHolder holder, String permission, Set contexts, boolean checkTransient) { final Set activeContexts = new HashSet<>(); this.addActiveContexts(activeContexts, holder, null, claim); contexts.addAll(activeContexts); + this.checkServerContext(contexts); final int contextHash = Objects.hash(claim, holder, permission, contexts); final Cache cache = PermissionHolderCache.getInstance().getOrCreatePermissionCache(holder); Tristate result = cache.getIfPresent(contextHash); @@ -687,6 +692,8 @@ public Tristate getPermissionValueWithRequiredContexts(GDClaim claim, GDPermissi } public Tristate getPermissionValue(GDPermissionHolder holder, String permission, Set contexts) { + this.addActiveContexts(contexts, holder, null, null); + this.checkServerContext(contexts); ImmutableContextSet contextSet = this.getLPContexts(contexts).immutableCopy(); return this.getPermissionValue(holder, permission, contextSet); } diff --git a/sponge/src/main/java/com/griefdefender/provider/LuckPermsProvider.java b/sponge/src/main/java/com/griefdefender/provider/LuckPermsProvider.java index cb18760..7cda5fb 100644 --- a/sponge/src/main/java/com/griefdefender/provider/LuckPermsProvider.java +++ b/sponge/src/main/java/com/griefdefender/provider/LuckPermsProvider.java @@ -563,7 +563,9 @@ public Set getGPContexts(ContextSet contextSet) { } public Tristate getPermissionValue(GDPermissionHolder holder, String permission) { - ImmutableContextSet set = ImmutableContextSet.empty(); + final Set contexts = new HashSet<>(); + this.checkServerContext(contexts); + ImmutableContextSet set = this.getLPContexts(contexts).immutableCopy(); return this.getPermissionValue(holder, permission, set); } @@ -574,13 +576,16 @@ public Tristate getPermissionValue(GDClaim claim, GDPermissionHolder holder, Str public Tristate getPermissionValue(GDClaim claim, GDPermissionHolder holder, String permission, Set contexts) { this.addActiveContexts(contexts, holder, null, claim); - return this.getPermissionValue(holder, permission, contexts); + this.checkServerContext(contexts); + ImmutableContextSet contextSet = this.getLPContexts(contexts).immutableCopy(); + return this.getPermissionValue(holder, permission, contextSet); } public Tristate getPermissionValue(GDClaim claim, GDPermissionHolder holder, String permission, Set contexts, boolean checkTransient) { final Set activeContexts = new HashSet<>(); this.addActiveContexts(activeContexts, holder, null, claim); contexts.addAll(activeContexts); + this.checkServerContext(contexts); final int contextHash = Objects.hash(claim, holder, permission, contexts); final Cache cache = PermissionHolderCache.getInstance().getOrCreatePermissionCache(holder); Tristate result = cache.getIfPresent(contextHash); @@ -683,6 +688,8 @@ public Tristate getPermissionValueWithRequiredContexts(GDClaim claim, GDPermissi } public Tristate getPermissionValue(GDPermissionHolder holder, String permission, Set contexts) { + this.addActiveContexts(contexts, holder, null, null); + this.checkServerContext(contexts); ImmutableContextSet contextSet = this.getLPContexts(contexts).immutableCopy(); return this.getPermissionValue(holder, permission, contextSet); }