Add 'current_group_on_track' placeholder (#10)
This commit is contained in:
1 file changed
+26
-2
@@ -211,6 +211,25 @@ public class LPPlaceholderProvider implements PlaceholderProvider {
|
||||
.map(this::convertGroupDisplayName)
|
||||
.orElse("");
|
||||
});
|
||||
builder.addDynamic("current_group_on_track", (player, user, userData, queryOptions, trackName) -> {
|
||||
Track track = this.luckPerms.getTrackManager().getTrack(trackName);
|
||||
if (track == null || track.getGroups().size() <= 1) {
|
||||
return "";
|
||||
}
|
||||
|
||||
List<Group> groups = user.getNodes(NodeType.INHERITANCE).stream()
|
||||
.filter(n -> track.containsGroup(n.getGroupName()))
|
||||
.filter(n -> queryOptions.satisfies(n.getContexts()))
|
||||
.distinct()
|
||||
.map(n -> this.luckPerms.getGroupManager().getGroup(n.getGroupName()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (groups.size() != 1) {
|
||||
return "";
|
||||
}
|
||||
|
||||
return groups.get(0).getFriendlyName();
|
||||
});
|
||||
builder.addDynamic("next_group_on_track", (player, user, userData, queryOptions, trackName) -> {
|
||||
Track track = this.luckPerms.getTrackManager().getTrack(trackName);
|
||||
if (track == null || track.getGroups().size() <= 1) {
|
||||
@@ -228,7 +247,7 @@ public class LPPlaceholderProvider implements PlaceholderProvider {
|
||||
return "";
|
||||
}
|
||||
|
||||
return Strings.nullToEmpty(track.getNext(groups.get(0)));
|
||||
return Strings.nullToEmpty(convertGroupDisplayName(track.getNext(groups.get(0))));
|
||||
});
|
||||
builder.addDynamic("previous_group_on_track", (player, user, userData, queryOptions, trackName) -> {
|
||||
Track track = this.luckPerms.getTrackManager().getTrack(trackName);
|
||||
@@ -247,7 +266,7 @@ public class LPPlaceholderProvider implements PlaceholderProvider {
|
||||
return "";
|
||||
}
|
||||
|
||||
return Strings.nullToEmpty(track.getPrevious(groups.get(0)));
|
||||
return Strings.nullToEmpty(convertGroupDisplayName(track.getPrevious(groups.get(0))));
|
||||
});
|
||||
builder.addDynamic("expiry_time", (player, user, userData, queryOptions, node) ->
|
||||
user.getNodes().stream()
|
||||
@@ -415,10 +434,15 @@ public class LPPlaceholderProvider implements PlaceholderProvider {
|
||||
* @return a "display name" for the given group
|
||||
*/
|
||||
private String convertGroupDisplayName(String groupName) {
|
||||
if (groupName == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Group group = this.luckPerms.getGroupManager().getGroup(groupName);
|
||||
if (group != null) {
|
||||
groupName = group.getFriendlyName();
|
||||
}
|
||||
|
||||
return groupName;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user