Skip to content

Commit a88bb97

Browse files
committed
Update LuckPerms to v5.
1 parent 8f24f04 commit a88bb97

2 files changed

Lines changed: 27 additions & 62 deletions

File tree

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -190,9 +190,9 @@
190190
</dependency>
191191

192192
<dependency>
193-
<groupId>me.lucko.luckperms</groupId>
194-
<artifactId>luckperms-api</artifactId>
195-
<version>4.1</version>
193+
<groupId>net.luckperms</groupId>
194+
<artifactId>api</artifactId>
195+
<version>5.0</version>
196196
<scope>provided</scope>
197197
</dependency>
198198

src/me/armar/plugins/autorank/permissions/handlers/LuckPermsHandler.java

Lines changed: 24 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,26 @@
22

33
import me.armar.plugins.autorank.Autorank;
44
import me.armar.plugins.autorank.permissions.PermissionsHandler;
5-
import me.lucko.luckperms.LuckPerms;
6-
import me.lucko.luckperms.api.LuckPermsApi;
7-
import me.lucko.luckperms.api.Node;
8-
import me.lucko.luckperms.api.User;
5+
import net.luckperms.api.LuckPerms;
6+
import net.luckperms.api.model.group.Group;
7+
import net.luckperms.api.model.user.User;
8+
import net.luckperms.api.node.types.InheritanceNode;
9+
import org.bukkit.Bukkit;
910
import org.bukkit.entity.Player;
11+
import org.bukkit.plugin.RegisteredServiceProvider;
1012

11-
import java.util.*;
13+
import java.util.ArrayList;
14+
import java.util.Collection;
15+
import java.util.Collections;
16+
import java.util.stream.Collectors;
1217

1318
/**
1419
* @author Staartvin This is a special permission handler that handles all work
1520
* from LuckPerms
1621
*/
1722
public class LuckPermsHandler extends PermissionsHandler {
1823

19-
private LuckPermsApi luckPermsApi;
24+
private LuckPerms luckPermsApi;
2025

2126
public LuckPermsHandler(final Autorank plugin) {
2227
super(plugin);
@@ -78,14 +83,9 @@ public boolean removeGroup(final Player player, final String world, final String
7883
*/
7984
@Override
8085
public Collection<String> getGroups() {
81-
82-
List<String> groupNames = new ArrayList<>();
83-
84-
for (me.lucko.luckperms.api.Group luckPermGroup : luckPermsApi.getGroups()) {
85-
groupNames.add(luckPermGroup.getName());
86-
}
87-
88-
return Collections.unmodifiableCollection(groupNames);
86+
return Collections.unmodifiableCollection(
87+
luckPermsApi.getGroupManager().getLoadedGroups().stream()
88+
.map(Group::getName).collect(Collectors.toList()));
8989
}
9090

9191
/*
@@ -100,58 +100,23 @@ public String getName() {
100100

101101
@Override
102102
public Collection<String> getPlayerGroups(final Player player) {
103-
User user = luckPermsApi.getUser(player.getUniqueId());
103+
104+
User user = luckPermsApi.getUserManager().getUser(player.getUniqueId());
104105

105106
if (user == null) {
106107
return new ArrayList<>();
107108
}
108109

109-
List<String> groupNames = new ArrayList<>();
110-
111-
for (Node luckPermsNode : user.getAllNodes()) {
112-
if (luckPermsNode.isGroupNode()) {
113-
groupNames.add(luckPermsNode.getGroupName());
114-
}
115-
}
116-
117-
return Collections.unmodifiableCollection(groupNames);
110+
return Collections.unmodifiableCollection(user.getDistinctNodes().parallelStream()
111+
.filter(node -> node instanceof InheritanceNode)
112+
.map(node -> ((InheritanceNode) node).getGroupName())
113+
.collect(Collectors.toList()));
118114
}
119115

120116
@Override
121117
public Collection<String> getWorldGroups(final Player player, final String world) {
122-
User user = luckPermsApi.getUser(player.getUniqueId());
123-
124-
if (user == null) {
125-
return new ArrayList<>();
126-
}
127-
128-
List<String> groupNames = new ArrayList<>();
129-
130-
for (Node luckPermsNode : user.getAllNodes()) {
131-
if (luckPermsNode.isGroupNode()) {
132-
133-
// If group is not world specific, it also applies to the given world and hence should be added.
134-
if (!luckPermsNode.isWorldSpecific()) {
135-
groupNames.add(luckPermsNode.getGroupName());
136-
continue;
137-
}
138-
139-
Optional<String> validOnWorld = luckPermsNode.getWorld();
140-
141-
// World is unknown and so not world specific.
142-
if (!validOnWorld.isPresent()) {
143-
groupNames.add(luckPermsNode.getGroupName());
144-
} else {
145-
// World is not unknown and we should check if it matches the given world.
146-
if (validOnWorld.get().equals(world)) {
147-
groupNames.add(luckPermsNode.getGroupName());
148-
}
149-
}
150-
151-
}
152-
}
153-
154-
return Collections.unmodifiableCollection(groupNames);
118+
// The API is not very clear on how to check for world groups, so I'm ignoring that for now.
119+
return this.getPlayerGroups(player);
155120
}
156121

157122

@@ -163,9 +128,9 @@ public boolean replaceGroup(final Player player, final String world, final Strin
163128

164129
@Override
165130
public boolean setupPermissionsHandler() {
166-
Optional<LuckPermsApi> optional = LuckPerms.getApiSafe();
131+
RegisteredServiceProvider<LuckPerms> provider = Bukkit.getServicesManager().getRegistration(LuckPerms.class);
167132

168-
optional.ifPresent(luckPermsApi1 -> luckPermsApi = luckPermsApi1);
133+
if (provider != null) luckPermsApi = provider.getProvider();
169134

170135
return luckPermsApi != null;
171136
}

0 commit comments

Comments
 (0)