diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-10-08 02:54:00 -0400 |
---|---|---|
committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2023-10-08 02:58:06 -0400 |
commit | 6e5bef27ff2d78b5012f99c9d96e99d9b9673e4c (patch) | |
tree | 12f39e8ebe0a92ced6e8474cefc179819c48db2f /src/main/java/me/xmrvizzy/skyblocker/skyblock/rift/EffigyWaypoints.java | |
parent | 0c9381191663a74a9ec3cff9aae1c8b523215f0e (diff) | |
download | Skyblocker-6e5bef27ff2d78b5012f99c9d96e99d9b9673e4c.tar.gz Skyblocker-6e5bef27ff2d78b5012f99c9d96e99d9b9673e4c.tar.bz2 Skyblocker-6e5bef27ff2d78b5012f99c9d96e99d9b9673e4c.zip |
Optimize Scoreboard Stuff
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/rift/EffigyWaypoints.java')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/skyblock/rift/EffigyWaypoints.java | 45 |
1 files changed, 18 insertions, 27 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rift/EffigyWaypoints.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rift/EffigyWaypoints.java index 5548484e..4db5f3e6 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rift/EffigyWaypoints.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rift/EffigyWaypoints.java @@ -4,13 +4,6 @@ import me.xmrvizzy.skyblocker.config.SkyblockerConfigManager; import me.xmrvizzy.skyblocker.utils.Utils; import me.xmrvizzy.skyblocker.utils.render.RenderHelper; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.scoreboard.Scoreboard; -import net.minecraft.scoreboard.ScoreboardDisplaySlot; -import net.minecraft.scoreboard.ScoreboardObjective; -import net.minecraft.scoreboard.ScoreboardPlayerScore; -import net.minecraft.scoreboard.Team; import net.minecraft.text.Text; import net.minecraft.text.TextColor; import net.minecraft.util.DyeColor; @@ -23,7 +16,7 @@ import java.util.List; public class EffigyWaypoints { private static final Logger LOGGER = LoggerFactory.getLogger(EffigyWaypoints.class); - private static final List<BlockPos> effigies = List.of( + private static final List<BlockPos> EFFIGIES = List.of( new BlockPos(150, 79, 95), //Effigy 1 new BlockPos(193, 93, 119), //Effigy 2 new BlockPos(235, 110, 147), //Effigy 3 @@ -31,29 +24,27 @@ public class EffigyWaypoints { new BlockPos(262, 99, 94), //Effigy 5 new BlockPos(240, 129, 118) //Effigy 6 ); - private static final List<BlockPos> unBrokenEffigies = new ArrayList<>(); + private static final List<BlockPos> UNBROKEN_EFFIGIES = new ArrayList<>(); protected static void updateEffigies() { if (!SkyblockerConfigManager.get().slayer.vampireSlayer.enableEffigyWaypoints || !Utils.isOnSkyblock() || !Utils.isInTheRift() || !Utils.getLocation().contains("Stillgore Château")) return; - unBrokenEffigies.clear(); + UNBROKEN_EFFIGIES.clear(); + try { - ClientPlayerEntity player = MinecraftClient.getInstance().player; - if (player == null) return; - Scoreboard scoreboard = player.getScoreboard(); - ScoreboardObjective objective = scoreboard.getObjectiveForSlot(ScoreboardDisplaySlot.FROM_ID.apply(1)); - for (ScoreboardPlayerScore score : scoreboard.getAllPlayerScores(objective)) { - Team team = scoreboard.getPlayerTeam(score.getPlayerName()); - if (team != null) { - String line = team.getPrefix().getString() + team.getSuffix().getString(); - if (line.contains("Effigies")) { - List<Text> newList = new ArrayList<>(team.getPrefix().getSiblings()); - newList.addAll(team.getSuffix().getSiblings()); - for (int i = 1; i < newList.size(); i++) { - if (newList.get(i).getStyle().getColor() == TextColor.parse("gray")) { - unBrokenEffigies.add(effigies.get(i - 1)); - } - } + for (int i = 0; i < Utils.STRING_SCOREBOARD.size(); i++) { + String line = Utils.STRING_SCOREBOARD.get(i); + + if (line.contains("Effigies")) { + List<Text> effigiesText = new ArrayList<>(); + List<Text> prefixAndSuffix = Utils.TEXT_SCOREBOARD.get(i).getSiblings(); + + //Add contents of prefix and suffix to list + effigiesText.addAll(prefixAndSuffix.get(0).getSiblings()); + effigiesText.addAll(prefixAndSuffix.get(1).getSiblings()); + + for (int i2 = 1; i2 < effigiesText.size(); i2++) { + if (effigiesText.get(i2).getStyle().getColor() == TextColor.parse("gray")) UNBROKEN_EFFIGIES.add(EFFIGIES.get(i2 - 1)); } } } @@ -64,7 +55,7 @@ public class EffigyWaypoints { protected static void render(WorldRenderContext context) { if (SkyblockerConfigManager.get().slayer.vampireSlayer.enableEffigyWaypoints && Utils.getLocation().contains("Stillgore Château")) { - for (BlockPos effigy : unBrokenEffigies) { + for (BlockPos effigy : UNBROKEN_EFFIGIES) { float[] colorComponents = DyeColor.RED.getColorComponents(); if (SkyblockerConfigManager.get().slayer.vampireSlayer.compactEffigyWaypoints) { RenderHelper.renderFilledThroughWallsWithBeaconBeam(context, effigy.down(6), colorComponents, 0.5F); |