From 095f2aa67eb8c74f342325a6f3dc0b18fda17db5 Mon Sep 17 00:00:00 2001 From: sk89q Date: Mon, 18 Aug 2014 02:32:05 -0700 Subject: [PATCH] Don't check region group if the flag value is null. --- .../protection/FlagValueCalculator.java | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/sk89q/worldguard/protection/FlagValueCalculator.java b/src/main/java/com/sk89q/worldguard/protection/FlagValueCalculator.java index 0a0e5dad..91279b27 100644 --- a/src/main/java/com/sk89q/worldguard/protection/FlagValueCalculator.java +++ b/src/main/java/com/sk89q/worldguard/protection/FlagValueCalculator.java @@ -390,25 +390,28 @@ public V getEffectiveFlag(final ProtectedRegion region, Flag flag, @Nulla while (current != null) { V value = current.getFlag(flag); - boolean use = true; - if (flag.getRegionGroupFlag() != null) { - RegionGroup group = current.getFlag(flag.getRegionGroupFlag()); - if (group == null) { - group = flag.getRegionGroupFlag().getDefault(); + if (value != null) { + boolean use = true; + + if (flag.getRegionGroupFlag() != null) { + RegionGroup group = current.getFlag(flag.getRegionGroupFlag()); + if (group == null) { + group = flag.getRegionGroupFlag().getDefault(); + } + + if (subject == null) { + use = group.contains(Association.NON_MEMBER); + } else if (!group.contains(subject.getAssociation(region))) { + use = false; + } } - if (subject == null) { - use = group.contains(Association.NON_MEMBER); - } else if (!group.contains(subject.getAssociation(region))) { - use = false; + if (use) { + return value; } } - if (use && value != null) { - return value; - } - current = current.getParent(); }