diff --git a/api/pom.xml b/api/pom.xml
index 303874cf..91d6244d 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -5,7 +5,7 @@
luckperms
me.lucko.luckperms
- 2.10-SNAPSHOT
+ 2.11-SNAPSHOT
4.0.0
diff --git a/api/src/main/java/me/lucko/luckperms/api/Contexts.java b/api/src/main/java/me/lucko/luckperms/api/Contexts.java
new file mode 100644
index 00000000..7c7314ae
--- /dev/null
+++ b/api/src/main/java/me/lucko/luckperms/api/Contexts.java
@@ -0,0 +1,155 @@
+/*
+ * Copyright (c) 2016 Lucko (Luck)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package me.lucko.luckperms.api;
+
+import com.google.common.collect.ImmutableMap;
+
+import java.util.Collections;
+import java.util.Map;
+
+/**
+ * Represents the context and options for a permission lookup.
+ * All values are immutable.
+ * @since 2.11
+ */
+public class Contexts {
+ public static final String SERVER_KEY = "server";
+ public static final String WORLD_KEY = "world";
+
+ /**
+ * Gets a context that will allow all nodes
+ * @return a context that will not apply any filters
+ */
+ public static Contexts allowAll() {
+ return new Contexts(Collections.emptyMap(), true, true, true, true, true);
+ }
+
+ public static Contexts of(Map context, boolean includeGlobal, boolean includeGlobalWorld, boolean applyGroups, boolean applyGlobalGroups, boolean applyGlobalWorldGroups) {
+ return new Contexts(context, includeGlobal, includeGlobalWorld, applyGroups, applyGlobalGroups, applyGlobalWorldGroups);
+ }
+
+ public Contexts(Map context, boolean includeGlobal, boolean includeGlobalWorld, boolean applyGroups, boolean applyGlobalGroups, boolean applyGlobalWorldGroups) {
+ if (context == null) {
+ throw new NullPointerException("context");
+ }
+
+ this.context = ImmutableMap.copyOf(context);
+ this.includeGlobal = includeGlobal;
+ this.includeGlobalWorld = includeGlobalWorld;
+ this.applyGroups = applyGroups;
+ this.applyGlobalGroups = applyGlobalGroups;
+ this.applyGlobalWorldGroups = applyGlobalWorldGroups;
+ }
+
+ /**
+ * The contexts that apply for this lookup
+ *
+ * The keys for servers and worlds are defined as static values.
+ */
+ private final Map context;
+
+ /**
+ * If global or non server specific nodes should be applied
+ */
+ private final boolean includeGlobal;
+
+ /**
+ * If global or non world specific nodes should be applied
+ */
+ private final boolean includeGlobalWorld;
+
+ /**
+ * If parent groups should be applied
+ */
+ private final boolean applyGroups;
+
+ /**
+ * If global or non server specific group memberships should be applied
+ */
+ private final boolean applyGlobalGroups;
+
+ /**
+ * If global or non world specific group memberships should be applied
+ */
+ private final boolean applyGlobalWorldGroups;
+
+ /**
+ * Gets the contexts that apply for this lookup
+ * @return an immutable map of context key value pairs
+ */
+ public Map getContext() {
+ return this.context;
+ }
+
+ /**
+ * Gets if global or non server specific nodes should be applied
+ * @return true if global or non server specific nodes should be applied
+ */
+ public boolean isIncludeGlobal() {
+ return this.includeGlobal;
+ }
+
+ /**
+ * Gets if global or non world specific nodes should be applied
+ * @return true if global or non world specific nodes should be applied
+ */
+ public boolean isIncludeGlobalWorld() {
+ return this.includeGlobalWorld;
+ }
+
+ /**
+ * Gets if parent groups should be applied
+ * @return true if parent groups should be applied
+ */
+ public boolean isApplyGroups() {
+ return this.applyGroups;
+ }
+
+ /**
+ * Gets if global or non server specific group memberships should be applied
+ * @return true if global or non server specific group memberships should be applied
+ */
+ public boolean isApplyGlobalGroups() {
+ return this.applyGlobalGroups;
+ }
+
+ /**
+ * Gets if global or non world specific group memberships should be applied
+ * @return true if global or non world specific group memberships should be applied
+ */
+ public boolean isApplyGlobalWorldGroups() {
+ return this.applyGlobalWorldGroups;
+ }
+
+ public String toString() {
+ return "Contexts(" +
+ "context=" + this.getContext() + ", " +
+ "includeGlobal=" + this.isIncludeGlobal() + ", " +
+ "includeGlobalWorld=" + this.isIncludeGlobalWorld() + ", " +
+ "applyGroups=" + this.isApplyGroups() + ", " +
+ "applyGlobalGroups=" + this.isApplyGlobalGroups() + ", " +
+ "applyGlobalWorldGroups=" + this.isApplyGlobalWorldGroups() +
+ ")";
+ }
+
+}
diff --git a/common/src/main/java/me/lucko/luckperms/contexts/Contexts.java b/api/src/main/java/me/lucko/luckperms/api/LocalizedNode.java
similarity index 64%
rename from common/src/main/java/me/lucko/luckperms/contexts/Contexts.java
rename to api/src/main/java/me/lucko/luckperms/api/LocalizedNode.java
index 828aff78..ac38982b 100644
--- a/common/src/main/java/me/lucko/luckperms/contexts/Contexts.java
+++ b/api/src/main/java/me/lucko/luckperms/api/LocalizedNode.java
@@ -20,28 +20,25 @@
* SOFTWARE.
*/
-package me.lucko.luckperms.contexts;
+package me.lucko.luckperms.api;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.ToString;
+/**
+ * Represents a Node and where it was inherited from.
+ * @since 2.11
+ */
+public interface LocalizedNode extends Node {
-import java.util.Collections;
-import java.util.Map;
+ /**
+ * Gets the node
+ * @return the node this instance is representing
+ */
+ Node getNode();
-@Getter
-@ToString
-@AllArgsConstructor
-public class Contexts {
- public static Contexts allowAll() {
- return new Contexts(Collections.emptyMap(), true, true, true, true, true);
- }
-
- private final Map context;
- private final boolean includeGlobal;
- private final boolean includeGlobalWorld;
- private final boolean applyGroups;
- private final boolean applyGlobalGroups;
- private final boolean applyGlobalWorldGroups;
+ /**
+ * Gets the location where the {@link Node} is inherited from
+ * @return where the node was inherited from. Will not return null.
+ * @see PermissionHolder#getObjectName()
+ */
+ String getLocation();
}
diff --git a/api/src/main/java/me/lucko/luckperms/api/PermissionHolder.java b/api/src/main/java/me/lucko/luckperms/api/PermissionHolder.java
index 92704e2c..5c49e1bc 100644
--- a/api/src/main/java/me/lucko/luckperms/api/PermissionHolder.java
+++ b/api/src/main/java/me/lucko/luckperms/api/PermissionHolder.java
@@ -68,9 +68,34 @@ public interface PermissionHolder {
* Gets an immutable set of the nodes that this object has and inherits
* @return an immutable set of permissions
* @since 2.6
+ * @deprecated in favour of {@link #getAllNodes(Contexts)}
*/
+ @Deprecated
Set getAllNodes();
+ /**
+ * Gets a mutable sorted set of the nodes that this object has and inherits, filtered by context
+ * Unlike {@link #getAllNodesFiltered(Contexts)}, this method will not filter individual nodes. The context is only
+ * used to determine which groups should apply.
+ * Nodes are sorted into priority order.
+ * @param contexts the context for the lookup,
+ * @return a mutable sorted set of permissions
+ * @throws NullPointerException if the context is null
+ * @since 2.11
+ */
+ SortedSet getAllNodes(Contexts contexts);
+
+ /**
+ * Gets a mutable set of the nodes that is objects has and inherits, filtered by context.
+ * Unlike {@link #getAllNodes(Contexts)}, this method WILL filter individual nodes, and only return ones that fully
+ * meet the context provided.
+ * @param contexts the context for the lookup
+ * @return a mutable set of permissions
+ * @throws NullPointerException if the context is null
+ * @since 2.11
+ */
+ Set getAllNodesFiltered(Contexts contexts);
+
/**
* Gets an immutable Map of the objects permission nodes
* @return an immutable map of permissions
@@ -499,7 +524,9 @@ public interface PermissionHolder {
* @param applyGroups if inherited group permissions should be included
* @return a map of permissions
* @since 2.6
+ * @deprecated in favour of {@link #getAllNodesFiltered(Contexts)}
*/
+ @Deprecated
Map getPermissions(String server, String world, Map extraContext, boolean includeGlobal, List possibleNodes, boolean applyGroups);
/**
diff --git a/bukkit-legacy/pom.xml b/bukkit-legacy/pom.xml
index 0217476b..c193cf59 100644
--- a/bukkit-legacy/pom.xml
+++ b/bukkit-legacy/pom.xml
@@ -5,7 +5,7 @@
luckperms
me.lucko.luckperms
- 2.10-SNAPSHOT
+ 2.11-SNAPSHOT
4.0.0
diff --git a/bukkit-placeholders/pom.xml b/bukkit-placeholders/pom.xml
index 070e3916..3dddb512 100644
--- a/bukkit-placeholders/pom.xml
+++ b/bukkit-placeholders/pom.xml
@@ -5,7 +5,7 @@
luckperms
me.lucko.luckperms
- 2.10-SNAPSHOT
+ 2.11-SNAPSHOT
4.0.0
diff --git a/bukkit/pom.xml b/bukkit/pom.xml
index afc3bbdc..33619d49 100644
--- a/bukkit/pom.xml
+++ b/bukkit/pom.xml
@@ -5,7 +5,7 @@
luckperms
me.lucko.luckperms
- 2.10-SNAPSHOT
+ 2.11-SNAPSHOT
4.0.0
diff --git a/bukkit/src/main/java/me/lucko/luckperms/BukkitListener.java b/bukkit/src/main/java/me/lucko/luckperms/BukkitListener.java
index 34135ae7..87b63b45 100644
--- a/bukkit/src/main/java/me/lucko/luckperms/BukkitListener.java
+++ b/bukkit/src/main/java/me/lucko/luckperms/BukkitListener.java
@@ -22,8 +22,8 @@
package me.lucko.luckperms;
+import me.lucko.luckperms.api.Contexts;
import me.lucko.luckperms.constants.Message;
-import me.lucko.luckperms.contexts.Contexts;
import me.lucko.luckperms.inject.Injector;
import me.lucko.luckperms.inject.LPPermissible;
import me.lucko.luckperms.users.BukkitUser;
diff --git a/bukkit/src/main/java/me/lucko/luckperms/api/vault/VaultChatHook.java b/bukkit/src/main/java/me/lucko/luckperms/api/vault/VaultChatHook.java
index f0faf3b0..64cd01ea 100644
--- a/bukkit/src/main/java/me/lucko/luckperms/api/vault/VaultChatHook.java
+++ b/bukkit/src/main/java/me/lucko/luckperms/api/vault/VaultChatHook.java
@@ -23,10 +23,10 @@
package me.lucko.luckperms.api.vault;
import lombok.NonNull;
+import me.lucko.luckperms.api.Contexts;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.vault.cache.ChatCache;
import me.lucko.luckperms.api.vault.cache.VaultUser;
-import me.lucko.luckperms.contexts.Contexts;
import me.lucko.luckperms.core.PermissionHolder;
import me.lucko.luckperms.exceptions.ObjectAlreadyHasException;
import me.lucko.luckperms.exceptions.ObjectLacksException;
diff --git a/bukkit/src/main/java/me/lucko/luckperms/api/vault/VaultPermissionHook.java b/bukkit/src/main/java/me/lucko/luckperms/api/vault/VaultPermissionHook.java
index f822d7a4..732f6392 100644
--- a/bukkit/src/main/java/me/lucko/luckperms/api/vault/VaultPermissionHook.java
+++ b/bukkit/src/main/java/me/lucko/luckperms/api/vault/VaultPermissionHook.java
@@ -26,10 +26,10 @@ import lombok.Getter;
import lombok.NonNull;
import lombok.Setter;
import me.lucko.luckperms.LPBukkitPlugin;
+import me.lucko.luckperms.api.Contexts;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.vault.cache.VaultUser;
import me.lucko.luckperms.api.vault.cache.VaultUserManager;
-import me.lucko.luckperms.contexts.Contexts;
import me.lucko.luckperms.core.PermissionHolder;
import me.lucko.luckperms.exceptions.ObjectAlreadyHasException;
import me.lucko.luckperms.exceptions.ObjectLacksException;
diff --git a/bukkit/src/main/java/me/lucko/luckperms/api/vault/cache/VaultUser.java b/bukkit/src/main/java/me/lucko/luckperms/api/vault/cache/VaultUser.java
index c5531100..5a352403 100644
--- a/bukkit/src/main/java/me/lucko/luckperms/api/vault/cache/VaultUser.java
+++ b/bukkit/src/main/java/me/lucko/luckperms/api/vault/cache/VaultUser.java
@@ -25,9 +25,9 @@ package me.lucko.luckperms.api.vault.cache;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import me.lucko.luckperms.LPBukkitPlugin;
+import me.lucko.luckperms.api.Contexts;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.vault.VaultPermissionHook;
-import me.lucko.luckperms.contexts.Contexts;
import me.lucko.luckperms.users.User;
import java.util.Collections;
diff --git a/bukkit/src/main/java/me/lucko/luckperms/users/BukkitUser.java b/bukkit/src/main/java/me/lucko/luckperms/users/BukkitUser.java
index 91f9f5e7..a356c737 100644
--- a/bukkit/src/main/java/me/lucko/luckperms/users/BukkitUser.java
+++ b/bukkit/src/main/java/me/lucko/luckperms/users/BukkitUser.java
@@ -25,9 +25,9 @@ package me.lucko.luckperms.users;
import lombok.Getter;
import lombok.Setter;
import me.lucko.luckperms.LPBukkitPlugin;
+import me.lucko.luckperms.api.Contexts;
import me.lucko.luckperms.api.event.events.UserPermissionRefreshEvent;
import me.lucko.luckperms.api.implementation.internal.UserLink;
-import me.lucko.luckperms.contexts.Contexts;
import me.lucko.luckperms.inject.LPPermissible;
import org.bukkit.entity.Player;
import org.bukkit.permissions.Permissible;
diff --git a/bungee/pom.xml b/bungee/pom.xml
index 56b12643..6797b960 100644
--- a/bungee/pom.xml
+++ b/bungee/pom.xml
@@ -5,7 +5,7 @@
luckperms
me.lucko.luckperms
- 2.10-SNAPSHOT
+ 2.11-SNAPSHOT
4.0.0
diff --git a/bungee/src/main/java/me/lucko/luckperms/users/BungeeUser.java b/bungee/src/main/java/me/lucko/luckperms/users/BungeeUser.java
index 9bc0d47e..18bb84ea 100644
--- a/bungee/src/main/java/me/lucko/luckperms/users/BungeeUser.java
+++ b/bungee/src/main/java/me/lucko/luckperms/users/BungeeUser.java
@@ -24,9 +24,9 @@ package me.lucko.luckperms.users;
import me.lucko.luckperms.BungeePlayerCache;
import me.lucko.luckperms.LPBungeePlugin;
+import me.lucko.luckperms.api.Contexts;
import me.lucko.luckperms.api.event.events.UserPermissionRefreshEvent;
import me.lucko.luckperms.api.implementation.internal.UserLink;
-import me.lucko.luckperms.contexts.Contexts;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import java.util.Collections;
diff --git a/common/pom.xml b/common/pom.xml
index e317a3df..5d756c3f 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -5,7 +5,7 @@
luckperms
me.lucko.luckperms
- 2.10-SNAPSHOT
+ 2.11-SNAPSHOT
4.0.0
diff --git a/common/src/main/java/me/lucko/luckperms/api/implementation/ApiProvider.java b/common/src/main/java/me/lucko/luckperms/api/implementation/ApiProvider.java
index a595166e..c1123c51 100644
--- a/common/src/main/java/me/lucko/luckperms/api/implementation/ApiProvider.java
+++ b/common/src/main/java/me/lucko/luckperms/api/implementation/ApiProvider.java
@@ -70,7 +70,7 @@ public class ApiProvider implements LuckPermsApi {
@Override
public double getApiVersion() {
- return 2.10;
+ return 2.11;
}
@Override
diff --git a/common/src/main/java/me/lucko/luckperms/api/implementation/internal/PermissionHolderLink.java b/common/src/main/java/me/lucko/luckperms/api/implementation/internal/PermissionHolderLink.java
index 44a23f9d..e5bed21d 100644
--- a/common/src/main/java/me/lucko/luckperms/api/implementation/internal/PermissionHolderLink.java
+++ b/common/src/main/java/me/lucko/luckperms/api/implementation/internal/PermissionHolderLink.java
@@ -24,10 +24,7 @@ package me.lucko.luckperms.api.implementation.internal;
import lombok.AllArgsConstructor;
import lombok.NonNull;
-import me.lucko.luckperms.api.Node;
-import me.lucko.luckperms.api.PermissionHolder;
-import me.lucko.luckperms.api.Tristate;
-import me.lucko.luckperms.contexts.Contexts;
+import me.lucko.luckperms.api.*;
import me.lucko.luckperms.exceptions.ObjectAlreadyHasException;
import me.lucko.luckperms.exceptions.ObjectLacksException;
@@ -53,7 +50,7 @@ public class PermissionHolderLink implements PermissionHolder {
@Override
public SortedSet extends Node> getPermissions() {
- return Collections.unmodifiableSortedSet(master.getPermissions(false));
+ return master.getPermissions(false);
}
@Override
@@ -71,6 +68,16 @@ public class PermissionHolderLink implements PermissionHolder {
return Collections.unmodifiableSet(master.getAllNodes(Collections.emptyList(), Contexts.allowAll()));
}
+ @Override
+ public SortedSet getAllNodes(@NonNull Contexts contexts) {
+ return master.getAllNodes(Collections.emptyList(), contexts);
+ }
+
+ @Override
+ public Set getAllNodesFiltered(@NonNull Contexts contexts) {
+ return master.getAllNodesFiltered(contexts);
+ }
+
@Override
public Map getNodes() {
return exportToLegacy(master.getNodes());
diff --git a/common/src/main/java/me/lucko/luckperms/commands/Util.java b/common/src/main/java/me/lucko/luckperms/commands/Util.java
index 7fbee63b..e37be198 100644
--- a/common/src/main/java/me/lucko/luckperms/commands/Util.java
+++ b/common/src/main/java/me/lucko/luckperms/commands/Util.java
@@ -23,11 +23,11 @@
package me.lucko.luckperms.commands;
import lombok.experimental.UtilityClass;
+import me.lucko.luckperms.api.LocalizedNode;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.Tristate;
import me.lucko.luckperms.constants.Message;
import me.lucko.luckperms.constants.Patterns;
-import me.lucko.luckperms.core.LocalizedNode;
import me.lucko.luckperms.utils.DateUtil;
import java.util.*;
diff --git a/common/src/main/java/me/lucko/luckperms/commands/group/subcommands/GroupChatMeta.java b/common/src/main/java/me/lucko/luckperms/commands/group/subcommands/GroupChatMeta.java
index 7bc585a0..3cb59d0c 100644
--- a/common/src/main/java/me/lucko/luckperms/commands/group/subcommands/GroupChatMeta.java
+++ b/common/src/main/java/me/lucko/luckperms/commands/group/subcommands/GroupChatMeta.java
@@ -23,11 +23,11 @@
package me.lucko.luckperms.commands.group.subcommands;
import me.lucko.luckperms.LuckPermsPlugin;
+import me.lucko.luckperms.api.Contexts;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.commands.*;
import me.lucko.luckperms.constants.Message;
import me.lucko.luckperms.constants.Permission;
-import me.lucko.luckperms.contexts.Contexts;
import me.lucko.luckperms.groups.Group;
import java.util.*;
diff --git a/common/src/main/java/me/lucko/luckperms/commands/user/subcommands/UserChatMeta.java b/common/src/main/java/me/lucko/luckperms/commands/user/subcommands/UserChatMeta.java
index 9405f800..d47a70d0 100644
--- a/common/src/main/java/me/lucko/luckperms/commands/user/subcommands/UserChatMeta.java
+++ b/common/src/main/java/me/lucko/luckperms/commands/user/subcommands/UserChatMeta.java
@@ -23,11 +23,11 @@
package me.lucko.luckperms.commands.user.subcommands;
import me.lucko.luckperms.LuckPermsPlugin;
+import me.lucko.luckperms.api.Contexts;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.commands.*;
import me.lucko.luckperms.constants.Message;
import me.lucko.luckperms.constants.Permission;
-import me.lucko.luckperms.contexts.Contexts;
import me.lucko.luckperms.users.User;
import java.util.AbstractMap.SimpleEntry;
diff --git a/common/src/main/java/me/lucko/luckperms/core/InheritanceInfo.java b/common/src/main/java/me/lucko/luckperms/core/InheritanceInfo.java
index 47188e1b..5e6c7cef 100644
--- a/common/src/main/java/me/lucko/luckperms/core/InheritanceInfo.java
+++ b/common/src/main/java/me/lucko/luckperms/core/InheritanceInfo.java
@@ -23,6 +23,7 @@
package me.lucko.luckperms.core;
import lombok.*;
+import me.lucko.luckperms.api.LocalizedNode;
import me.lucko.luckperms.api.Tristate;
import java.util.Optional;
diff --git a/common/src/main/java/me/lucko/luckperms/core/PermissionHolder.java b/common/src/main/java/me/lucko/luckperms/core/PermissionHolder.java
index 914b2972..5deb43a6 100644
--- a/common/src/main/java/me/lucko/luckperms/core/PermissionHolder.java
+++ b/common/src/main/java/me/lucko/luckperms/core/PermissionHolder.java
@@ -29,6 +29,8 @@ import lombok.AccessLevel;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import me.lucko.luckperms.LuckPermsPlugin;
+import me.lucko.luckperms.api.Contexts;
+import me.lucko.luckperms.api.LocalizedNode;
import me.lucko.luckperms.api.Node;
import me.lucko.luckperms.api.Tristate;
import me.lucko.luckperms.api.event.events.GroupRemoveEvent;
@@ -36,7 +38,6 @@ import me.lucko.luckperms.api.event.events.PermissionNodeExpireEvent;
import me.lucko.luckperms.api.event.events.PermissionNodeSetEvent;
import me.lucko.luckperms.api.event.events.PermissionNodeUnsetEvent;
import me.lucko.luckperms.api.implementation.internal.PermissionHolderLink;
-import me.lucko.luckperms.contexts.Contexts;
import me.lucko.luckperms.exceptions.ObjectAlreadyHasException;
import me.lucko.luckperms.exceptions.ObjectLacksException;
import me.lucko.luckperms.groups.Group;
@@ -177,11 +178,11 @@ public abstract class PermissionHolder {
TreeSet combined = new TreeSet<>(PriorityComparator.reverse());
getNodes().stream()
- .map(n -> LocalizedNode.of(n, getObjectName()))
+ .map(n -> me.lucko.luckperms.utils.LocalizedNode.of(n, getObjectName()))
.forEach(combined::add);
getTransientNodes().stream()
- .map(n -> LocalizedNode.of(n, getObjectName()))
+ .map(n -> me.lucko.luckperms.utils.LocalizedNode.of(n, getObjectName()))
.forEach(combined::add);
TreeSet permissions = new TreeSet<>(PriorityComparator.reverse());
diff --git a/common/src/main/java/me/lucko/luckperms/core/PriorityComparator.java b/common/src/main/java/me/lucko/luckperms/core/PriorityComparator.java
index cc3800bb..90784266 100644
--- a/common/src/main/java/me/lucko/luckperms/core/PriorityComparator.java
+++ b/common/src/main/java/me/lucko/luckperms/core/PriorityComparator.java
@@ -24,6 +24,7 @@ package me.lucko.luckperms.core;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
+import me.lucko.luckperms.api.LocalizedNode;
import me.lucko.luckperms.api.Node;
import java.text.Collator;
diff --git a/common/src/main/java/me/lucko/luckperms/core/LocalizedNode.java b/common/src/main/java/me/lucko/luckperms/utils/LocalizedNode.java
similarity index 98%
rename from common/src/main/java/me/lucko/luckperms/core/LocalizedNode.java
rename to common/src/main/java/me/lucko/luckperms/utils/LocalizedNode.java
index c52b40d3..69f61d64 100644
--- a/common/src/main/java/me/lucko/luckperms/core/LocalizedNode.java
+++ b/common/src/main/java/me/lucko/luckperms/utils/LocalizedNode.java
@@ -20,7 +20,7 @@
* SOFTWARE.
*/
-package me.lucko.luckperms.core;
+package me.lucko.luckperms.utils;
import lombok.*;
import me.lucko.luckperms.api.Node;
@@ -37,7 +37,7 @@ import java.util.Optional;
@Getter
@ToString
@AllArgsConstructor(access = AccessLevel.PRIVATE)
-public class LocalizedNode implements me.lucko.luckperms.api.Node {
+public class LocalizedNode implements me.lucko.luckperms.api.LocalizedNode {
public static LocalizedNode of(@NonNull me.lucko.luckperms.api.Node node, @NonNull String location) {
return new LocalizedNode(node, location);
}
diff --git a/pom.xml b/pom.xml
index 4e9839d8..ba2a30a8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
me.lucko.luckperms
luckperms
- 2.10-SNAPSHOT
+ 2.11-SNAPSHOT
common
api
@@ -39,7 +39,7 @@
UTF-8
- 2.10
+ 2.11
diff --git a/sponge/pom.xml b/sponge/pom.xml
index 28983167..93f53843 100644
--- a/sponge/pom.xml
+++ b/sponge/pom.xml
@@ -5,7 +5,7 @@
luckperms
me.lucko.luckperms
- 2.10-SNAPSHOT
+ 2.11-SNAPSHOT
4.0.0
diff --git a/sponge/src/main/java/me/lucko/luckperms/api/sponge/LuckPermsSubject.java b/sponge/src/main/java/me/lucko/luckperms/api/sponge/LuckPermsSubject.java
index 45983935..aa4b0deb 100644
--- a/sponge/src/main/java/me/lucko/luckperms/api/sponge/LuckPermsSubject.java
+++ b/sponge/src/main/java/me/lucko/luckperms/api/sponge/LuckPermsSubject.java
@@ -26,8 +26,8 @@ import com.google.common.collect.ImmutableList;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NonNull;
+import me.lucko.luckperms.api.Contexts;
import me.lucko.luckperms.api.Node;
-import me.lucko.luckperms.contexts.Contexts;
import me.lucko.luckperms.core.PermissionHolder;
import me.lucko.luckperms.groups.Group;
import me.lucko.luckperms.users.User;
diff --git a/sponge/src/main/java/me/lucko/luckperms/api/sponge/LuckPermsUserSubject.java b/sponge/src/main/java/me/lucko/luckperms/api/sponge/LuckPermsUserSubject.java
index dd0bc371..9d45b563 100644
--- a/sponge/src/main/java/me/lucko/luckperms/api/sponge/LuckPermsUserSubject.java
+++ b/sponge/src/main/java/me/lucko/luckperms/api/sponge/LuckPermsUserSubject.java
@@ -24,9 +24,9 @@ package me.lucko.luckperms.api.sponge;
import lombok.Getter;
import lombok.NonNull;
+import me.lucko.luckperms.api.Contexts;
import me.lucko.luckperms.api.event.events.UserPermissionRefreshEvent;
import me.lucko.luckperms.api.implementation.internal.UserLink;
-import me.lucko.luckperms.contexts.Contexts;
import me.lucko.luckperms.users.User;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.command.CommandSource;
diff --git a/standalone/pom.xml b/standalone/pom.xml
index 08c31412..1e1e6138 100644
--- a/standalone/pom.xml
+++ b/standalone/pom.xml
@@ -5,7 +5,7 @@
luckperms
me.lucko.luckperms
- 2.10-SNAPSHOT
+ 2.11-SNAPSHOT
4.0.0