Skip to content

Commit 19f7e99

Browse files
authored
Add support for LuckPerms group names (#6229)
Closes #5463
1 parent e9da116 commit 19f7e99

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

Essentials/src/main/java/com/earth2me/essentials/perm/impl/LuckPermsHandler.java

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,19 @@
22

33
import com.earth2me.essentials.Essentials;
44
import com.earth2me.essentials.User;
5-
65
import net.luckperms.api.LuckPerms;
76
import net.luckperms.api.context.ContextCalculator;
87
import net.luckperms.api.context.ContextConsumer;
98
import net.luckperms.api.context.ContextSet;
109
import net.luckperms.api.context.ImmutableContextSet;
10+
import net.luckperms.api.model.group.Group;
1111
import org.bukkit.Bukkit;
1212
import org.bukkit.entity.Player;
1313
import org.bukkit.plugin.RegisteredServiceProvider;
1414

15+
import java.util.ArrayList;
1516
import java.util.HashSet;
17+
import java.util.List;
1618
import java.util.Set;
1719
import java.util.function.Function;
1820
import 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

Comments
 (0)