22
33import me .armar .plugins .autorank .Autorank ;
44import 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 ;
910import 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 */
1722public 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