22
33import com .earth2me .essentials .Essentials ;
44import com .earth2me .essentials .User ;
5-
65import net .luckperms .api .LuckPerms ;
76import net .luckperms .api .context .ContextCalculator ;
87import net .luckperms .api .context .ContextConsumer ;
98import net .luckperms .api .context .ContextSet ;
109import net .luckperms .api .context .ImmutableContextSet ;
10+ import net .luckperms .api .model .group .Group ;
1111import org .bukkit .Bukkit ;
1212import org .bukkit .entity .Player ;
1313import org .bukkit .plugin .RegisteredServiceProvider ;
1414
15+ import java .util .ArrayList ;
1516import java .util .HashSet ;
17+ import java .util .List ;
1618import java .util .Set ;
1719import java .util .function .Function ;
1820import java .util .function .Supplier ;
@@ -39,6 +41,23 @@ public void unregisterContexts() {
3941 }
4042 }
4143
44+ @ Override
45+ public List <String > getGroups () {
46+ final List <String > groups = new ArrayList <>();
47+ for (final Group group : luckPerms .getGroupManager ().getLoadedGroups ()) {
48+ groups .add (group .getName ());
49+ }
50+
51+ // Also add the vault group names for backwards compatibility
52+ for (final String group : super .getGroups ()) {
53+ if (!groups .contains (group )) {
54+ groups .add (group );
55+ }
56+ }
57+
58+ return groups ;
59+ }
60+
4261 @ Override
4362 public boolean tryProvider (Essentials ess ) {
4463 final RegisteredServiceProvider <LuckPerms > provider = Bukkit .getServicesManager ().getRegistration (LuckPerms .class );
@@ -62,7 +81,7 @@ private Calculator(String id, Function<User, Iterable<String>> function, Supplie
6281 }
6382
6483 // By combining all calculators into one, we only need to make one call to ess.getUser().
65- private class CombinedCalculator implements ContextCalculator <Player > {
84+ private final class CombinedCalculator implements ContextCalculator <Player > {
6685 private final Set <Calculator > calculators = new HashSet <>();
6786
6887 @ Override
0 commit comments