From 01c5472e4cda70ef4bfd8621b6ab4f7d099745e0 Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Tue, 11 Jul 2023 22:00:40 -0400 Subject: Sort + Colourize Blessings --- .../skyblock/tabhud/widget/DungeonBuffWidget.java | 33 ++++++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonBuffWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonBuffWidget.java index 6ad5268e..56529e55 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonBuffWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonBuffWidget.java @@ -1,5 +1,8 @@ package me.xmrvizzy.skyblocker.skyblock.tabhud.widget; +import java.util.Arrays; +import java.util.Comparator; + import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.component.PlainTextComponent; import net.minecraft.text.MutableText; import net.minecraft.text.Text; @@ -30,15 +33,39 @@ public class DungeonBuffWidget extends Widget { this.pack(); return; } + + //Filter out text unrelated to blessings + lines = Arrays.stream(lines).filter(s -> s.contains("Blessing")).toArray(String[]::new); + + //Alphabetically sort the blessings + Arrays.sort(lines, new Comparator() { + @Override + public int compare(String o1, String o2) { + return o1.toLowerCase().compareTo(o2.toLowerCase()); + } + }); - for (int i = 1; i < lines.length; i++) { + for (int i = 0; i < lines.length; i++) { if (lines[i].length() < 3) { // empty line is §s break; } - this.addComponent(new PlainTextComponent(Text.of(lines[i]))); + + int color = getBlessingColor(lines[i]); + + this.addComponent(new PlainTextComponent(Text.literal(lines[i]).styled(style -> style.withColor(color)))); } this.pack(); } + + public int getBlessingColor(String blessing) { + if (blessing.contains("Life")) return Formatting.LIGHT_PURPLE.getColorValue().intValue(); + if (blessing.contains("Power")) return Formatting.RED.getColorValue().intValue(); + if (blessing.contains("Stone")) return Formatting.GREEN.getColorValue().intValue(); + if (blessing.contains("Time")) return 0xafb8c1; + if (blessing.contains("Wisdom")) return Formatting.AQUA.getColorValue().intValue(); + + return 0xffffff; + } -} +} \ No newline at end of file -- cgit From a22be409f7f9e62aa195387f61ae981eb75c7e8f Mon Sep 17 00:00:00 2001 From: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> Date: Fri, 14 Jul 2023 09:42:47 +0800 Subject: Refactor DungeonBuffWidget --- .../skyblock/tabhud/widget/DungeonBuffWidget.java | 46 ++++++++++------------ 1 file changed, 20 insertions(+), 26 deletions(-) (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonBuffWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonBuffWidget.java index 56529e55..d56d3522 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonBuffWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/tabhud/widget/DungeonBuffWidget.java @@ -1,13 +1,13 @@ package me.xmrvizzy.skyblocker.skyblock.tabhud.widget; -import java.util.Arrays; -import java.util.Comparator; - import me.xmrvizzy.skyblocker.skyblock.tabhud.widget.component.PlainTextComponent; import net.minecraft.text.MutableText; import net.minecraft.text.Text; import net.minecraft.util.Formatting; +import java.util.Arrays; +import java.util.Comparator; + // this widget shows a list of obtained dungeon buffs // TODO: could be more pretty, can't be arsed atm @@ -33,39 +33,33 @@ public class DungeonBuffWidget extends Widget { this.pack(); return; } - + //Filter out text unrelated to blessings lines = Arrays.stream(lines).filter(s -> s.contains("Blessing")).toArray(String[]::new); - + //Alphabetically sort the blessings - Arrays.sort(lines, new Comparator() { - @Override - public int compare(String o1, String o2) { - return o1.toLowerCase().compareTo(o2.toLowerCase()); - } - }); - - for (int i = 0; i < lines.length; i++) { - if (lines[i].length() < 3) { // empty line is §s + Arrays.sort(lines, Comparator.comparing(String::toLowerCase)); + + for (String line : lines) { + if (line.length() < 3) { // empty line is §s break; } - - int color = getBlessingColor(lines[i]); - - this.addComponent(new PlainTextComponent(Text.literal(lines[i]).styled(style -> style.withColor(color)))); + int color = getBlessingColor(line); + this.addComponent(new PlainTextComponent(Text.literal(line).styled(style -> style.withColor(color)))); } this.pack(); } - + + @SuppressWarnings("DataFlowIssue") public int getBlessingColor(String blessing) { - if (blessing.contains("Life")) return Formatting.LIGHT_PURPLE.getColorValue().intValue(); - if (blessing.contains("Power")) return Formatting.RED.getColorValue().intValue(); - if (blessing.contains("Stone")) return Formatting.GREEN.getColorValue().intValue(); - if (blessing.contains("Time")) return 0xafb8c1; - if (blessing.contains("Wisdom")) return Formatting.AQUA.getColorValue().intValue(); - - return 0xffffff; + if (blessing.contains("Life")) return Formatting.LIGHT_PURPLE.getColorValue(); + if (blessing.contains("Power")) return Formatting.RED.getColorValue(); + if (blessing.contains("Stone")) return Formatting.GREEN.getColorValue(); + if (blessing.contains("Time")) return 0xafb8c1; + if (blessing.contains("Wisdom")) return Formatting.AQUA.getColorValue(); + + return 0xffffff; } } \ No newline at end of file -- cgit