aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2023-07-13 01:54:10 -0400
committerAaron <51387595+AzureAaron@users.noreply.github.com>2023-07-13 01:58:03 -0400
commitaa7c7329d4d10f5b1c8c30acb1181a3df7e68404 (patch)
tree11dc8f8aa5017fd5a2fe0ab63370ea08b88ebbd5
parent2243d4035b522cc872393801edea7600be84ad05 (diff)
downloadSkyblocker-aa7c7329d4d10f5b1c8c30acb1181a3df7e68404.tar.gz
Skyblocker-aa7c7329d4d10f5b1c8c30acb1181a3df7e68404.tar.bz2
Skyblocker-aa7c7329d4d10f5b1c8c30acb1181a3df7e68404.zip
Format player names in the players widget
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java19
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/PlayerListWidget.java17
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlayerComponent.java12
-rw-r--r--src/main/resources/assets/skyblocker/lang/en_us.json4
4 files changed, 43 insertions, 9 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
index bd616c2c..04cfaea3 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java
@@ -188,6 +188,25 @@ public class SkyblockerConfig implements ConfigData {
@ConfigEntry.BoundedDiscrete(min = 10, max = 200)
@ConfigEntry.Gui.Tooltip()
public int tabHudScale = 100;
+ @ConfigEntry.Gui.Tooltip
+ public boolean plainPlayerNames = false;
+ @ConfigEntry.Gui.EnumHandler(option = ConfigEntry.Gui.EnumHandler.EnumDisplayOption.BUTTON)
+ @ConfigEntry.Gui.Tooltip
+ public NameSorting nameSorting = NameSorting.DEFAULT;
+
+ }
+
+ public enum NameSorting {
+ DEFAULT,
+ ALPHABETICAL;
+
+ @Override
+ public String toString() {
+ return switch (this) {
+ case DEFAULT -> "Default";
+ case ALPHABETICAL -> "Alphabetical";
+ };
+ }
}
public static class Bars {
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/PlayerListWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/PlayerListWidget.java
index 2cd710eb..0f0d1fa9 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/PlayerListWidget.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/PlayerListWidget.java
@@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.skyblock.tabhud.util.PlayerListMgr;
import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.component.PlainTextComponent;
import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.component.PlayerComponent;
@@ -48,13 +49,15 @@ public class PlayerListWidget extends Widget {
for (int i = 80; i < listlen; i++) {
list.add(PlayerListMgr.getRaw(i));
}
-
- Collections.sort(list, new Comparator<PlayerListEntry>() {
- @Override
- public int compare(PlayerListEntry o1, PlayerListEntry o2) {
- return o1.getProfile().getName().toLowerCase().compareTo(o2.getProfile().getName().toLowerCase());
- }
- });
+
+ if (SkyblockerConfig.get().general.tabHud.nameSorting == SkyblockerConfig.NameSorting.ALPHABETICAL) {
+ Collections.sort(list, new Comparator<PlayerListEntry>() {
+ @Override
+ public int compare(PlayerListEntry o1, PlayerListEntry o2) {
+ return o1.getProfile().getName().toLowerCase().compareTo(o2.getProfile().getName().toLowerCase());
+ }
+ });
+ }
int x = 0, y = 0;
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlayerComponent.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlayerComponent.java
index fd66ec73..32058e26 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlayerComponent.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/component/PlayerComponent.java
@@ -1,8 +1,11 @@
package me.xmrvizzy.skyblocker.skyblock.tabhud.widget.component;
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.PlayerSkinDrawer;
import net.minecraft.client.network.PlayerListEntry;
+import net.minecraft.scoreboard.Team;
+import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
/**
@@ -12,12 +15,17 @@ public class PlayerComponent extends Component {
private static final int SKIN_ICO_DIM = 8;
- private String name;
+ private Text name;
private Identifier tex;
public PlayerComponent(PlayerListEntry ple) {
+
+ boolean plainNames = SkyblockerConfig.get().general.tabHud.plainPlayerNames;
+ Team team = ple.getScoreboardTeam();
+ String username = ple.getProfile().getName();
+ Text displayName = (team != null && !plainNames) ? Text.empty().append(team.getPrefix()).append(Text.literal(username).formatted(team.getColor())).append(team.getSuffix()) : Text.of(username);
- name = ple.getProfile().getName();
+ name = displayName;
tex = ple.getSkinTexture();
this.width = SKIN_ICO_DIM + PAD_S + txtRend.getWidth(name);
diff --git a/src/main/resources/assets/skyblocker/lang/en_us.json b/src/main/resources/assets/skyblocker/lang/en_us.json
index 9dc2a856..0cf9933c 100644
--- a/src/main/resources/assets/skyblocker/lang/en_us.json
+++ b/src/main/resources/assets/skyblocker/lang/en_us.json
@@ -36,6 +36,10 @@
"text.autoconfig.skyblocker.option.general.tabHud.tabHudEnabled": "Enable fancy tab HUD",
"text.autoconfig.skyblocker.option.general.tabHud.tabHudScale": "Scale factor of fancy tab HUD",
"text.autoconfig.skyblocker.option.general.tabHud.tabHudScale.@Tooltip": "Value in %, relative to your vanilla GUI scale",
+ "text.autoconfig.skyblocker.option.general.tabHud.plainPlayerNames": "Plain Player Names",
+ "text.autoconfig.skyblocker.option.general.tabHud.plainPlayerNames.@Tooltip":"Enable to display player names without any special formatting on public islands.",
+ "text.autoconfig.skyblocker.option.general.tabHud.nameSorting": "Player Name Sorting Method",
+ "text.autoconfig.skyblocker.option.general.tabHud.nameSorting.@Tooltip": "Alphabetical sorting sorts names alphabetically while Default has no particular order.",
"text.autoconfig.skyblocker.option.general.itemTooltip": "Item Tooltip",
"text.autoconfig.skyblocker.option.general.itemTooltip.enableNPCPrice": "Enable NPC Price",
"text.autoconfig.skyblocker.option.general.itemTooltip.enableMotesPrice": "Enable Motes Price",