diff --git a/src/main/java/net/william278/velocitab/config/Placeholder.java b/src/main/java/net/william278/velocitab/config/Placeholder.java index 06017d4..28a4cd9 100644 --- a/src/main/java/net/william278/velocitab/config/Placeholder.java +++ b/src/main/java/net/william278/velocitab/config/Placeholder.java @@ -106,7 +106,8 @@ public enum Placeholder { .orElse(getPlaceholderFallback(plugin, "%luckperms_primary_group_name%"))), ROLE_DISPLAY_NAME((plugin, player) -> player.getRole().getDisplayName() .orElse(getPlaceholderFallback(plugin, "%luckperms_primary_group_name%"))), - ROLE_WEIGHT((plugin, player) -> player.getRoleWeightString()), + ROLE_WEIGHT((plugin, player) -> player.getRoleWeightString() + .orElse(getPlaceholderFallback(plugin, "%luckperms_meta_weight%"))), SERVER_GROUP((plugin, player) -> player.getGroup().name()), SERVER_GROUP_INDEX((plugin, player) -> Integer.toString(player.getServerGroupPosition(plugin))), DEBUG_TEAM_NAME((plugin, player) -> plugin.getFormatter().escape(player.getLastTeamName().orElse(""))), diff --git a/src/main/java/net/william278/velocitab/player/Role.java b/src/main/java/net/william278/velocitab/player/Role.java index d62c539..03805ba 100644 --- a/src/main/java/net/william278/velocitab/player/Role.java +++ b/src/main/java/net/william278/velocitab/player/Role.java @@ -30,7 +30,7 @@ import java.util.Optional; @RequiredArgsConstructor public class Role implements Comparable { - public static final int DEFAULT_WEIGHT = 0; + public static final int DEFAULT_WEIGHT = -1; public static final Role DEFAULT_ROLE = new Role(DEFAULT_WEIGHT, null, null, null, null); @Getter private final int weight; @@ -65,8 +65,11 @@ public class Role implements Comparable { } @NotNull - protected String getWeightString() { - return Integer.toString(weight); + protected Optional getWeightString() { + if (weight == -1) { + return Optional.empty(); + } + return Optional.of(Integer.toString(weight)); } @Override diff --git a/src/main/java/net/william278/velocitab/player/TabPlayer.java b/src/main/java/net/william278/velocitab/player/TabPlayer.java index 82bc7cb..c1f1952 100644 --- a/src/main/java/net/william278/velocitab/player/TabPlayer.java +++ b/src/main/java/net/william278/velocitab/player/TabPlayer.java @@ -96,7 +96,7 @@ public final class TabPlayer implements Comparable { } @NotNull - public String getRoleWeightString() { + public Optional getRoleWeightString() { return getRole().getWeightString(); } @@ -263,7 +263,7 @@ public final class TabPlayer implements Comparable { @Override public int compareTo(@NotNull TabPlayer o) { final int roleDifference = role.compareTo(o.role); - if (roleDifference == 0) { + if (roleDifference <= 0) { return player.getUsername().compareTo(o.player.getUsername()); } return roleDifference;