diff --git a/Essentials/src/main/java/com/earth2me/essentials/perm/impl/LuckPermsHandler.java b/Essentials/src/main/java/com/earth2me/essentials/perm/impl/LuckPermsHandler.java index b8d92879980..ea7f4b17b45 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/perm/impl/LuckPermsHandler.java +++ b/Essentials/src/main/java/com/earth2me/essentials/perm/impl/LuckPermsHandler.java @@ -2,17 +2,19 @@ import com.earth2me.essentials.Essentials; import com.earth2me.essentials.User; - import net.luckperms.api.LuckPerms; import net.luckperms.api.context.ContextCalculator; import net.luckperms.api.context.ContextConsumer; import net.luckperms.api.context.ContextSet; import net.luckperms.api.context.ImmutableContextSet; +import net.luckperms.api.model.group.Group; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.plugin.RegisteredServiceProvider; +import java.util.ArrayList; import java.util.HashSet; +import java.util.List; import java.util.Set; import java.util.function.Function; import java.util.function.Supplier; @@ -39,6 +41,23 @@ public void unregisterContexts() { } } + @Override + public List getGroups() { + final List groups = new ArrayList<>(); + for (final Group group : luckPerms.getGroupManager().getLoadedGroups()) { + groups.add(group.getName()); + } + + // Also add the vault group names for backwards compatibility + for (final String group : super.getGroups()) { + if (!groups.contains(group)) { + groups.add(group); + } + } + + return groups; + } + @Override public boolean tryProvider(Essentials ess) { final RegisteredServiceProvider provider = Bukkit.getServicesManager().getRegistration(LuckPerms.class); @@ -62,7 +81,7 @@ private Calculator(String id, Function> function, Supplie } // By combining all calculators into one, we only need to make one call to ess.getUser(). - private class CombinedCalculator implements ContextCalculator { + private final class CombinedCalculator implements ContextCalculator { private final Set calculators = new HashSet<>(); @Override