From 28961b1cfaf668939a364d47fbcbe0901eaff1c0 Mon Sep 17 00:00:00 2001 From: Luck Date: Sun, 15 Oct 2017 11:22:38 +0100 Subject: [PATCH] Primary groups should come first, not last, when ordering groups for inheritance (#500) --- .../luckperms/common/caching/MetaAccumulator.java | 10 ++-------- .../primarygroup/GroupInheritanceComparator.java | 3 ++- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/common/src/main/java/me/lucko/luckperms/common/caching/MetaAccumulator.java b/common/src/main/java/me/lucko/luckperms/common/caching/MetaAccumulator.java index 6933b28e8..a4f6363a8 100644 --- a/common/src/main/java/me/lucko/luckperms/common/caching/MetaAccumulator.java +++ b/common/src/main/java/me/lucko/luckperms/common/caching/MetaAccumulator.java @@ -84,19 +84,13 @@ public class MetaAccumulator { if (n.isPrefix()) { Map.Entry value = n.getPrefix(); - if (!prefixes.containsKey(value.getKey())) { - prefixes.put(value.getKey(), value.getValue()); - } - + prefixes.putIfAbsent(value.getKey(), value.getValue()); prefixStack.accumulateToAll(n); } if (n.isSuffix()) { Map.Entry value = n.getSuffix(); - if (!suffixes.containsKey(value.getKey())) { - suffixes.put(value.getKey(), value.getValue()); - } - + suffixes.putIfAbsent(value.getKey(), value.getValue()); suffixStack.accumulateToAll(n); } } diff --git a/common/src/main/java/me/lucko/luckperms/common/primarygroup/GroupInheritanceComparator.java b/common/src/main/java/me/lucko/luckperms/common/primarygroup/GroupInheritanceComparator.java index 461b229c5..9019479fd 100644 --- a/common/src/main/java/me/lucko/luckperms/common/primarygroup/GroupInheritanceComparator.java +++ b/common/src/main/java/me/lucko/luckperms/common/primarygroup/GroupInheritanceComparator.java @@ -65,7 +65,8 @@ public class GroupInheritanceComparator implements Comparator { // one of them is a primary group, and therefore has priority if (o1Primary != o2Primary) { - return o1Primary ? 1 : -1; + // we want the primary group to come first + return o1Primary ? -1 : 1; } }