From b700db32f2bccde3b6381d5d28136814c9fe9e37 Mon Sep 17 00:00:00 2001 From: olim Date: Mon, 29 Apr 2024 21:50:44 +0100 Subject: initial commit detection of when the player is in the dojo and the helper for the discipline is implemented --- .../de/hysky/skyblocker/skyblock/entity/MobGlow.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java index d6f9410b..d373d2e1 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java @@ -1,15 +1,18 @@ package de.hysky.skyblocker.skyblock.entity; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.skyblock.crimson.dojo.DisciplineTestHelper; import de.hysky.skyblocker.skyblock.dungeon.LividColor; import de.hysky.skyblocker.skyblock.end.TheEnd; import de.hysky.skyblocker.utils.ItemUtils; +import de.hysky.skyblocker.utils.Location; import de.hysky.skyblocker.utils.SlayerUtils; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.render.culling.OcclusionCulling; import net.minecraft.entity.Entity; import net.minecraft.entity.decoration.ArmorStandEntity; import net.minecraft.entity.mob.EndermanEntity; +import net.minecraft.entity.mob.ZombieEntity; import net.minecraft.entity.passive.BatEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; @@ -28,6 +31,7 @@ public class MobGlow { if (OcclusionCulling.getReducedCuller().isVisible(box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ)) { String name = entity.getName().getString(); + // Dungeons if (Utils.isInDungeons() && !entity.isInvisible()) { return switch (entity) { @@ -46,6 +50,7 @@ public class MobGlow { }; } + return switch (entity) { // Rift case PlayerEntity p when Utils.isInTheRift() && !entity.isInvisible() && name.equals("Blobbercyst ") -> SkyblockerConfigManager.get().otherLocations.rift.blobbercystGlow; @@ -57,6 +62,9 @@ public class MobGlow { // Special Zelot case EndermanEntity enderman when Utils.isInTheEnd() && !entity.isInvisible() -> TheEnd.isSpecialZealot(enderman); + //dojo + case ZombieEntity zombie when Utils.getLocation() == Location.CRIMSON_ISLE -> DisciplineTestHelper.isCorrect(getArmourStandName(zombie)); + default -> false; }; } @@ -73,6 +81,13 @@ public class MobGlow { List armorStands = getArmorStands(entity); return !armorStands.isEmpty() && armorStands.getFirst().getName().getString().contains("✯"); } + public static String getArmourStandName(Entity entity) { + List armorStands = getArmorStands(entity); + if (armorStands.isEmpty()) { + return null; + } + return armorStands.getFirst().getName().getString(); + } public static List getArmorStands(Entity entity) { return getArmorStands(entity.getWorld(), entity.getBoundingBox()); @@ -94,6 +109,7 @@ public class MobGlow { case EndermanEntity enderman when TheEnd.isSpecialZealot(enderman) -> Formatting.RED.getColorValue(); case ArmorStandEntity armorStand when isNukekubiHead(armorStand) -> 0x990099; + case ZombieEntity zombie when Utils.getLocation() == Location.CRIMSON_ISLE -> DisciplineTestHelper.getColor(); default -> 0xf57738; }; -- cgit From 654b66e62bdb63a2ef3dc9607c941027c6c07812 Mon Sep 17 00:00:00 2001 From: olim Date: Wed, 1 May 2024 17:03:56 +0100 Subject: add force test helpder add helper for the force test. unsure if timer is correct. sometimes last to long? --- .../crimson/dojo/DisciplineTestHelper.java | 22 ++++++--- .../skyblock/crimson/dojo/DojoManager.java | 49 ++++++++++++++----- .../skyblock/crimson/dojo/ForceTestHelper.java | 55 ++++++++++++++++++++++ .../hysky/skyblocker/skyblock/entity/MobGlow.java | 6 +-- 4 files changed, 111 insertions(+), 21 deletions(-) create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java (limited to 'src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java index d5e19f28..6312bbdc 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java @@ -1,17 +1,23 @@ package de.hysky.skyblocker.skyblock.crimson.dojo; import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip; -import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; import net.minecraft.client.MinecraftClient; -import net.minecraft.item.ItemStack; -import net.minecraft.text.Text; +import net.minecraft.entity.mob.ZombieEntity; import net.minecraft.util.Util; -import java.awt.*; +import java.text.DecimalFormat; import java.util.HashMap; +import java.util.Map; public class DisciplineTestHelper { private static final MinecraftClient CLIENT = MinecraftClient.getInstance(); + private static final DecimalFormat FORMATTER = new DecimalFormat("0.0"); + + private static final Map zombies = new HashMap<>(); + + protected static void reset() { + zombies.clear(); + } private static final HashMap SWORD_TO_NAME_LOOKUP = Util.make(new HashMap<>(), map -> { map.put("WOOD_SWORD","Wood"); @@ -26,8 +32,8 @@ public class DisciplineTestHelper { map.put("DIAMOND_SWORD",0x00ffff); }); - public static boolean isCorrect(String name) { - if (DojoManager.currentChallenge != DojoManager.DojoChallenges.DISCIPLINE || CLIENT == null || CLIENT.player == null) { + protected static boolean shouldGlow(String name) { + if (CLIENT == null || CLIENT.player == null) { return false; } String heldId = ItemTooltip.getInternalNameFromNBT(CLIENT.player.getMainHandStack(), true); @@ -38,7 +44,7 @@ public class DisciplineTestHelper { return false; } - public static int getColor() { + protected static int getColor() { if (DojoManager.currentChallenge != DojoManager.DojoChallenges.DISCIPLINE || CLIENT == null || CLIENT.player == null) { return 0; } @@ -48,4 +54,6 @@ public class DisciplineTestHelper { } return 0; } + + } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java index b7b39f32..61a8d010 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java @@ -26,6 +26,7 @@ public class DojoManager { protected enum DojoChallenges { NONE("none"), + FORCE("Force"), MASTERY("Mastery"), DISCIPLINE("Discipline"), SWIFTNESS("Swiftness"), @@ -43,7 +44,7 @@ public class DojoManager { } protected static DojoChallenges currentChallenge = DojoChallenges.NONE; - private static boolean inAreana = false; + public static boolean inArena = false; public static void init() { ClientReceiveMessageEvents.GAME.register(DojoManager::onMessage); @@ -55,11 +56,12 @@ public class DojoManager { } private static void reset() { - inAreana = false; + inArena = false; currentChallenge = DojoChallenges.NONE; SwiftnessTestHelper.reset(); MasteryTestHelper.reset(); TenacityTestHelper.reset(); + ForceTestHelper.reset(); } private static void onMessage(Text text, Boolean overlay) { @@ -67,10 +69,10 @@ public class DojoManager { return; } if (text.getString().equals(START_MESSAGE)) { - inAreana = true; + inArena = true; return; } - if (!inAreana) { + if (!inArena) { return; } if (text.getString().matches(CHALLENGE_FINISHED_REGEX)) { @@ -88,8 +90,30 @@ public class DojoManager { } } + public static boolean shouldGlow(String name) { + if (Utils.getLocation() != Location.CRIMSON_ISLE || !inArena) { + return false; + } + return switch (currentChallenge) { + case DISCIPLINE -> DisciplineTestHelper.shouldGlow(name); + case FORCE -> ForceTestHelper.shouldGlow(name); + default -> false; + }; + } + + public static int getColor() { + if (Utils.getLocation() != Location.CRIMSON_ISLE || !inArena) { + return 0xf57738; + } + return switch (currentChallenge) { + case DISCIPLINE -> DisciplineTestHelper.getColor(); + case FORCE -> ForceTestHelper.getColor(); + default -> 0xf57738; + }; + } + public static void onBlockUpdate(BlockUpdateS2CPacket packet) { - if (Utils.getLocation() != Location.CRIMSON_ISLE || !inAreana) { + if (Utils.getLocation() != Location.CRIMSON_ISLE || !inArena) { return; } switch (currentChallenge) { @@ -98,37 +122,40 @@ public class DojoManager { } } private static void onEntitySpawn(Entity entity, ClientWorld clientWorld) { - if (Utils.getLocation() != Location.CRIMSON_ISLE || !inAreana) { + if (Utils.getLocation() != Location.CRIMSON_ISLE || !inArena) { return; } switch (currentChallenge) { case TENACITY -> TenacityTestHelper.onEntitySpawn(entity); + case FORCE -> ForceTestHelper.onEntitySpawn(entity); } } private static void onEntityDespawn(Entity entity, ClientWorld clientWorld) { - if (Utils.getLocation() != Location.CRIMSON_ISLE || !inAreana) { + if (Utils.getLocation() != Location.CRIMSON_ISLE || !inArena) { return; } switch (currentChallenge) { case TENACITY -> TenacityTestHelper.onEntityDespawn(entity); + case FORCE -> ForceTestHelper.onEntityDespawn(entity); } } public static void onParticle(ParticleS2CPacket packet) { - if (Utils.getLocation() != Location.CRIMSON_ISLE || !inAreana) { + if (Utils.getLocation() != Location.CRIMSON_ISLE || !inArena) { return; } - switch (currentChallenge) { - case TENACITY -> TenacityTestHelper.onParticle(packet); + if (currentChallenge == DojoChallenges.TENACITY) { + TenacityTestHelper.onParticle(packet); } } private static void render(WorldRenderContext context) { - if (Utils.getLocation() != Location.CRIMSON_ISLE || !inAreana) { + if (Utils.getLocation() != Location.CRIMSON_ISLE || !inArena) { return; } switch (currentChallenge) { + case FORCE -> ForceTestHelper.render(context); case SWIFTNESS -> SwiftnessTestHelper.render(context); case TENACITY -> TenacityTestHelper.render(context); case MASTERY -> MasteryTestHelper.render(context); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java new file mode 100644 index 00000000..bf27ce1f --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java @@ -0,0 +1,55 @@ +package de.hysky.skyblocker.skyblock.crimson.dojo; + +import de.hysky.skyblocker.utils.render.RenderHelper; +import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; +import net.minecraft.entity.Entity; +import net.minecraft.entity.mob.ZombieEntity; +import net.minecraft.text.Text; +import net.minecraft.util.math.Vec3d; + +import java.awt.*; +import java.text.DecimalFormat; +import java.util.HashMap; +import java.util.Map; + +public class ForceTestHelper { + + private static final DecimalFormat FORMATTER = new DecimalFormat("0.0"); + + private static final Map zombies = new HashMap<>(); + + protected static void reset() { + zombies.clear(); + } + + protected static boolean shouldGlow(String name) { + if (name == null) return false; + return name.contains("-"); + } + + protected static int getColor() { + return Color.RED.getRGB(); + } + + protected static void onEntitySpawn(Entity entity) { + if (entity instanceof ZombieEntity zombie) { + zombies.put(zombie, System.currentTimeMillis() + 10100); //they last for 10100 millis ish so this is the time they despawn + } + } + protected static void onEntityDespawn(Entity entity) { + if (entity instanceof ZombieEntity zombie) { + zombies.remove(zombie); + } + } + + protected static void render(WorldRenderContext context) { + //render times + long currentTime = System.currentTimeMillis(); + for (Map.Entry zombie : zombies.entrySet()) { + float secondsTime = Math.max((zombie.getValue() - currentTime) / 1000f, 0); + Vec3d lablePos = zombie.getKey().getEyePos(); + RenderHelper.renderText(context, Text.literal(FORMATTER.format(secondsTime)), lablePos, 1.5f, true); + + } + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java index d373d2e1..182fae77 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java @@ -1,7 +1,7 @@ package de.hysky.skyblocker.skyblock.entity; import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.skyblock.crimson.dojo.DisciplineTestHelper; +import de.hysky.skyblocker.skyblock.crimson.dojo.DojoManager; import de.hysky.skyblocker.skyblock.dungeon.LividColor; import de.hysky.skyblocker.skyblock.end.TheEnd; import de.hysky.skyblocker.utils.ItemUtils; @@ -63,7 +63,7 @@ public class MobGlow { case EndermanEntity enderman when Utils.isInTheEnd() && !entity.isInvisible() -> TheEnd.isSpecialZealot(enderman); //dojo - case ZombieEntity zombie when Utils.getLocation() == Location.CRIMSON_ISLE -> DisciplineTestHelper.isCorrect(getArmourStandName(zombie)); + case ZombieEntity zombie when Utils.getLocation() == Location.CRIMSON_ISLE && DojoManager.inArena -> DojoManager.shouldGlow(getArmourStandName(zombie)); default -> false; }; @@ -109,7 +109,7 @@ public class MobGlow { case EndermanEntity enderman when TheEnd.isSpecialZealot(enderman) -> Formatting.RED.getColorValue(); case ArmorStandEntity armorStand when isNukekubiHead(armorStand) -> 0x990099; - case ZombieEntity zombie when Utils.getLocation() == Location.CRIMSON_ISLE -> DisciplineTestHelper.getColor(); + case ZombieEntity zombie when Utils.getLocation() == Location.CRIMSON_ISLE && DojoManager.inArena -> DojoManager.getColor(); default -> 0xf57738; }; -- cgit From 75dbf2677618947320f9421fe9a314e890e7978a Mon Sep 17 00:00:00 2001 From: olim Date: Tue, 4 Jun 2024 12:05:07 +0100 Subject: add isInCrimson function --- .../de/hysky/skyblocker/mixins/ClientWorldMixin.java | 2 +- .../de/hysky/skyblocker/mixins/PingMeasureMixin.java | 2 +- .../skyblock/crimson/dojo/ControlTestHelper.java | 2 +- .../skyblock/crimson/dojo/DojoManager.java | 20 ++++++++++---------- .../skyblock/crimson/dojo/StaminaTestHelper.java | 2 +- .../de/hysky/skyblocker/skyblock/entity/MobGlow.java | 4 ++-- src/main/java/de/hysky/skyblocker/utils/Utils.java | 3 +++ 7 files changed, 19 insertions(+), 16 deletions(-) (limited to 'src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java') diff --git a/src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java b/src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java index ff0b1ae6..0e1e6881 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java @@ -17,7 +17,7 @@ public class ClientWorldMixin { @Inject(method = "handleBlockUpdate", at = @At("RETURN")) private void skyblocker$handleBlockUpdate(BlockPos pos, BlockState state, int flags, CallbackInfo ci) { - if (Utils.getLocation() == Location.CRIMSON_ISLE) { + if (Utils.isInCrimson()) { DojoManager.onBlockUpdate(pos.toImmutable(), state); } } diff --git a/src/main/java/de/hysky/skyblocker/mixins/PingMeasureMixin.java b/src/main/java/de/hysky/skyblocker/mixins/PingMeasureMixin.java index 0e9c5e13..e87b66f2 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/PingMeasureMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/PingMeasureMixin.java @@ -15,7 +15,7 @@ public class PingMeasureMixin { @Inject(method = "onPingResult", at = @At("RETURN")) private void skyblocker$onPingResult(PingResultS2CPacket packet, CallbackInfo ci) { - if (Utils.getLocation() == Location.CRIMSON_ISLE) { + if (Utils.isInCrimson()) { long ping = System.currentTimeMillis() - packet.startTime(); DojoManager.onPingResult(ping); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ControlTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ControlTestHelper.java index dfc3ae2a..5092b6fe 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ControlTestHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ControlTestHelper.java @@ -69,7 +69,7 @@ public class ControlTestHelper { double updatePercent = (double) (System.currentTimeMillis() - lastUpdate) / 150; Vec3d aimPos = correctWitherSkeleton.getEyePos().add(pingOffset.multiply(updatePercent)).add(lastPingOffset.multiply(1 - updatePercent)); Box targetBox = new Box(aimPos.add(-0.5, -0.5, -0.5), aimPos.add(0.5, 0.5, 0.5)); - boolean playerLookingAtBox = targetBox.raycast(CLIENT.player.getCameraPosVec(tickDelta),CLIENT.player.getCameraPosVec(tickDelta).add(CLIENT.player.getRotationVec(tickDelta).multiply(30))).isPresent(); + boolean playerLookingAtBox = targetBox.raycast(CLIENT.player.getCameraPosVec(tickDelta), CLIENT.player.getCameraPosVec(tickDelta).add(CLIENT.player.getRotationVec(tickDelta).multiply(30))).isPresent(); float[] boxColor = playerLookingAtBox ? Color.GREEN.getColorComponents(new float[]{0, 0, 0}) : Color.LIGHT_GRAY.getColorComponents(new float[]{0, 0, 0}); RenderHelper.renderOutline(context, targetBox, boxColor, 3, true); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java index 8278f089..02b20e08 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java @@ -96,7 +96,7 @@ public class DojoManager { * @param overlay is overlay */ private static void onMessage(Text text, Boolean overlay) { - if (Utils.getLocation() != Location.CRIMSON_ISLE || overlay) { + if (!Utils.isInCrimson() || overlay) { return; } if (Objects.equals(Formatting.strip(text.getString()), START_MESSAGE)) { @@ -137,7 +137,7 @@ public class DojoManager { } private static void update() { - if (Utils.getLocation() != Location.CRIMSON_ISLE || !inArena) { + if (!Utils.isInCrimson() || !inArena) { return; } switch (currentChallenge) { @@ -153,7 +153,7 @@ public class DojoManager { * @return if the zombie should glow */ public static boolean shouldGlow(String name) { - if (Utils.getLocation() != Location.CRIMSON_ISLE || !inArena) { + if (!Utils.isInCrimson() || !inArena) { return false; } return switch (currentChallenge) { @@ -169,7 +169,7 @@ public class DojoManager { * @return if the zombie should glow */ public static int getColor() { - if (Utils.getLocation() != Location.CRIMSON_ISLE || !inArena) { + if (!Utils.isInCrimson() || !inArena) { return 0xf57738; } return switch (currentChallenge) { @@ -186,7 +186,7 @@ public class DojoManager { * @param state the state of the new block */ public static void onBlockUpdate(BlockPos pos, BlockState state) { - if (Utils.getLocation() != Location.CRIMSON_ISLE || !inArena) { + if (!Utils.isInCrimson() || !inArena) { return; } switch (currentChallenge) { @@ -196,7 +196,7 @@ public class DojoManager { } private static void onEntitySpawn(Entity entity, ClientWorld clientWorld) { - if (Utils.getLocation() != Location.CRIMSON_ISLE || !inArena || CLIENT == null || CLIENT.player == null) { + if (!Utils.isInCrimson() || !inArena || CLIENT == null || CLIENT.player == null) { return; } //check close by @@ -211,7 +211,7 @@ public class DojoManager { } private static void onEntityDespawn(Entity entity, ClientWorld clientWorld) { - if (Utils.getLocation() != Location.CRIMSON_ISLE || !inArena) { + if (!Utils.isInCrimson() || !inArena) { return; } switch (currentChallenge) { @@ -221,7 +221,7 @@ public class DojoManager { } private static ActionResult onEntityAttacked(PlayerEntity playerEntity, World world, Hand hand, Entity entity, EntityHitResult entityHitResult) { - if (Utils.getLocation() != Location.CRIMSON_ISLE || !inArena) { + if (!Utils.isInCrimson() || !inArena) { return ActionResult.PASS; } if (currentChallenge == DojoChallenges.FORCE) { @@ -231,7 +231,7 @@ public class DojoManager { } public static void onParticle(ParticleS2CPacket packet) { - if (Utils.getLocation() != Location.CRIMSON_ISLE || !inArena) { + if (!Utils.isInCrimson() || !inArena) { return; } if (currentChallenge == DojoChallenges.TENACITY) { @@ -240,7 +240,7 @@ public class DojoManager { } private static void render(WorldRenderContext context) { - if (Utils.getLocation() != Location.CRIMSON_ISLE || !inArena) { + if (!Utils.isInCrimson() || !inArena) { return; } switch (currentChallenge) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/StaminaTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/StaminaTestHelper.java index d32656e8..afb53243 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/StaminaTestHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/StaminaTestHelper.java @@ -192,7 +192,7 @@ public class StaminaTestHelper { //do not check non-air continue; } - boolean top = y == box.maxY - 1|| !CLIENT.world.getBlockState(pos.add(0, 1, 0)).isAir(); + boolean top = y == box.maxY - 1 || !CLIENT.world.getBlockState(pos.add(0, 1, 0)).isAir(); boolean bottom = !CLIENT.world.getBlockState(pos.add(0, -1, 0)).isAir(); boolean left = !CLIENT.world.getBlockState(pos.add(wallDirection)).isAir(); boolean right = !CLIENT.world.getBlockState(pos.subtract(wallDirection)).isAir(); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java index 182fae77..6df7d4d5 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java @@ -63,7 +63,7 @@ public class MobGlow { case EndermanEntity enderman when Utils.isInTheEnd() && !entity.isInvisible() -> TheEnd.isSpecialZealot(enderman); //dojo - case ZombieEntity zombie when Utils.getLocation() == Location.CRIMSON_ISLE && DojoManager.inArena -> DojoManager.shouldGlow(getArmourStandName(zombie)); + case ZombieEntity zombie when Utils.isInCrimson() && DojoManager.inArena -> DojoManager.shouldGlow(getArmourStandName(zombie)); default -> false; }; @@ -109,7 +109,7 @@ public class MobGlow { case EndermanEntity enderman when TheEnd.isSpecialZealot(enderman) -> Formatting.RED.getColorValue(); case ArmorStandEntity armorStand when isNukekubiHead(armorStand) -> 0x990099; - case ZombieEntity zombie when Utils.getLocation() == Location.CRIMSON_ISLE && DojoManager.inArena -> DojoManager.getColor(); + case ZombieEntity zombie when Utils.isInCrimson() && DojoManager.inArena -> DojoManager.getColor(); default -> 0xf57738; }; diff --git a/src/main/java/de/hysky/skyblocker/utils/Utils.java b/src/main/java/de/hysky/skyblocker/utils/Utils.java index f383c94a..8c8cef57 100644 --- a/src/main/java/de/hysky/skyblocker/utils/Utils.java +++ b/src/main/java/de/hysky/skyblocker/utils/Utils.java @@ -120,6 +120,9 @@ public class Utils { public static boolean isInKuudra() { return location == Location.KUUDRAS_HOLLOW; } + public static boolean isInCrimson() { + return location == Location.CRIMSON_ISLE; + } public static boolean isInModernForagingIsland() { return location == Location.MODERN_FORAGING_ISLAND; -- cgit From 095223a1b5e105b670d785ce1b539db087d61bb1 Mon Sep 17 00:00:00 2001 From: olim Date: Tue, 4 Jun 2024 12:10:30 +0100 Subject: clean imports --- .../de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java | 1 - src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java | 1 - src/main/java/de/hysky/skyblocker/mixins/PingMeasureMixin.java | 1 - .../java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java | 2 -- .../de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java | 2 -- .../hysky/skyblocker/skyblock/crimson/dojo/SwiftnessTestHelper.java | 4 ---- src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java | 1 - 7 files changed, 12 deletions(-) (limited to 'src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java') diff --git a/src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java b/src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java index 3797004a..7bbbac81 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/ClientPlayNetworkHandlerMixin.java @@ -13,7 +13,6 @@ import de.hysky.skyblocker.skyblock.end.BeaconHighlighter; import de.hysky.skyblocker.skyblock.end.EnderNodes; import de.hysky.skyblocker.skyblock.end.TheEnd; import de.hysky.skyblocker.skyblock.waypoint.MythologicalRitual; -import de.hysky.skyblocker.utils.Location; import de.hysky.skyblocker.utils.SlayerUtils; import de.hysky.skyblocker.utils.Utils; import net.minecraft.block.Blocks; diff --git a/src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java b/src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java index 0e1e6881..6c10e5d2 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/ClientWorldMixin.java @@ -2,7 +2,6 @@ package de.hysky.skyblocker.mixins; import de.hysky.skyblocker.skyblock.crimson.dojo.DojoManager; -import de.hysky.skyblocker.utils.Location; import de.hysky.skyblocker.utils.Utils; import net.minecraft.block.BlockState; import net.minecraft.client.world.ClientWorld; diff --git a/src/main/java/de/hysky/skyblocker/mixins/PingMeasureMixin.java b/src/main/java/de/hysky/skyblocker/mixins/PingMeasureMixin.java index e87b66f2..e82fc86e 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/PingMeasureMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/PingMeasureMixin.java @@ -1,7 +1,6 @@ package de.hysky.skyblocker.mixins; import de.hysky.skyblocker.skyblock.crimson.dojo.DojoManager; -import de.hysky.skyblocker.utils.Location; import de.hysky.skyblocker.utils.Utils; import net.minecraft.client.network.PingMeasurer; import net.minecraft.network.packet.s2c.query.PingResultS2CPacket; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java index 02b20e08..1f92c7db 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java @@ -1,7 +1,6 @@ package de.hysky.skyblocker.skyblock.crimson.dojo; import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.Location; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.scheduler.Scheduler; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientEntityEvents; @@ -28,7 +27,6 @@ import net.minecraft.world.World; import java.util.Arrays; import java.util.Objects; -import java.util.function.Function; import java.util.function.Predicate; import java.util.regex.Matcher; import java.util.regex.Pattern; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java index 172de7f5..32b2442a 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java @@ -5,9 +5,7 @@ import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; -import net.minecraft.network.packet.s2c.play.BlockUpdateS2CPacket; import net.minecraft.text.Text; -import net.minecraft.util.Util; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/SwiftnessTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/SwiftnessTestHelper.java index df2c26d5..678005c4 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/SwiftnessTestHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/SwiftnessTestHelper.java @@ -2,13 +2,9 @@ package de.hysky.skyblocker.skyblock.crimson.dojo; import de.hysky.skyblocker.utils.render.RenderHelper; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; -import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; -import net.minecraft.client.MinecraftClient; -import net.minecraft.network.packet.s2c.play.BlockUpdateS2CPacket; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Box; public class SwiftnessTestHelper { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java index 6df7d4d5..152c09a3 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java @@ -5,7 +5,6 @@ import de.hysky.skyblocker.skyblock.crimson.dojo.DojoManager; import de.hysky.skyblocker.skyblock.dungeon.LividColor; import de.hysky.skyblocker.skyblock.end.TheEnd; import de.hysky.skyblocker.utils.ItemUtils; -import de.hysky.skyblocker.utils.Location; import de.hysky.skyblocker.utils.SlayerUtils; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.render.culling.OcclusionCulling; -- cgit From 6863c696e9ce34854aabdf0a4e2883e7ea8be0a8 Mon Sep 17 00:00:00 2001 From: olim Date: Wed, 3 Jul 2024 17:45:35 +0100 Subject: clean code and implement requested changes --- .../skyblocker/mixins/PingMeasuererMixin.java | 22 ---------------------- .../hysky/skyblocker/mixins/PingMeasurerMixin.java | 22 ++++++++++++++++++++++ .../crimson/dojo/DisciplineTestHelper.java | 22 +++++++--------------- .../skyblock/crimson/dojo/DojoManager.java | 9 +++++---- .../skyblock/crimson/dojo/ForceTestHelper.java | 3 --- .../skyblock/crimson/dojo/MasteryTestHelper.java | 6 ++---- .../skyblock/crimson/dojo/StaminaTestHelper.java | 9 +++++---- .../skyblock/crimson/dojo/TenacityTestHelper.java | 4 +--- .../hysky/skyblocker/skyblock/entity/MobGlow.java | 14 +++++++++++--- src/main/resources/skyblocker.mixins.json | 2 +- 10 files changed, 54 insertions(+), 59 deletions(-) delete mode 100644 src/main/java/de/hysky/skyblocker/mixins/PingMeasuererMixin.java create mode 100644 src/main/java/de/hysky/skyblocker/mixins/PingMeasurerMixin.java (limited to 'src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java') diff --git a/src/main/java/de/hysky/skyblocker/mixins/PingMeasuererMixin.java b/src/main/java/de/hysky/skyblocker/mixins/PingMeasuererMixin.java deleted file mode 100644 index 803a65ab..00000000 --- a/src/main/java/de/hysky/skyblocker/mixins/PingMeasuererMixin.java +++ /dev/null @@ -1,22 +0,0 @@ -package de.hysky.skyblocker.mixins; - -import com.llamalad7.mixinextras.injector.wrapoperation.Operation; -import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; -import de.hysky.skyblocker.skyblock.crimson.dojo.DojoManager; -import de.hysky.skyblocker.utils.Utils; -import net.minecraft.client.network.PingMeasurer; -import net.minecraft.util.profiler.MultiValueDebugSampleLogImpl; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; - -@Mixin(PingMeasurer.class) -public class PingMeasuererMixin { - - @WrapOperation(method = "onPingResult", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/profiler/MultiValueDebugSampleLogImpl;push(J)V")) - private void skyblocker$onPingResult(MultiValueDebugSampleLogImpl log, long ping, Operation operation) { - if (Utils.isInCrimson()) { - DojoManager.onPingResult(ping); - } - operation.call(log, ping); - } -} diff --git a/src/main/java/de/hysky/skyblocker/mixins/PingMeasurerMixin.java b/src/main/java/de/hysky/skyblocker/mixins/PingMeasurerMixin.java new file mode 100644 index 00000000..a9fae752 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/mixins/PingMeasurerMixin.java @@ -0,0 +1,22 @@ +package de.hysky.skyblocker.mixins; + +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; +import de.hysky.skyblocker.skyblock.crimson.dojo.DojoManager; +import de.hysky.skyblocker.utils.Utils; +import net.minecraft.client.network.PingMeasurer; +import net.minecraft.util.profiler.MultiValueDebugSampleLogImpl; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(PingMeasurer.class) +public class PingMeasurerMixin { + + @WrapOperation(method = "onPingResult", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/profiler/MultiValueDebugSampleLogImpl;push(J)V")) + private void skyblocker$onPingResult(MultiValueDebugSampleLogImpl log, long ping, Operation operation) { + if (Utils.isInCrimson()) { + DojoManager.onPingResult(ping); + } + operation.call(log, ping); + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java index 5cee126f..c01bfd73 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DisciplineTestHelper.java @@ -1,13 +1,10 @@ package de.hysky.skyblocker.skyblock.crimson.dojo; -import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip; import it.unimi.dsi.fastutil.objects.Object2IntMap; import it.unimi.dsi.fastutil.objects.Object2IntMaps; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import net.minecraft.client.MinecraftClient; -import net.minecraft.util.Util; -import java.util.HashMap; import java.util.Map; public class DisciplineTestHelper { @@ -16,12 +13,12 @@ public class DisciplineTestHelper { /** * Stores what sword is needed for the name of a zombie */ - private static final HashMap SWORD_TO_NAME_LOOKUP = Util.make(new HashMap<>(), map -> { - map.put("WOOD_SWORD", "Wood"); - map.put("IRON_SWORD", "Iron"); - map.put("GOLD_SWORD", "Gold"); - map.put("DIAMOND_SWORD", "Diamond"); - }); + private static final Map SWORD_TO_NAME_LOOKUP = Map.of( + "WOOD_SWORD", "Wood", + "IRON_SWORD", "Iron", + "GOLD_SWORD", "Gold", + "DIAMOND_SWORD", "Diamond" + ); /** * Stores a color related to the color of the sword: wood = brown, iron = silver, gold = gold, diamond = cyan @@ -61,11 +58,6 @@ public class DisciplineTestHelper { return 0; } String heldId = CLIENT.player.getMainHandStack().getSkyblockId(); - if (SWORD_TO_COLOR_LOOKUP.containsKey(heldId)) { - return SWORD_TO_COLOR_LOOKUP.getInt(heldId); - } - return 0; + return SWORD_TO_COLOR_LOOKUP.getOrDefault(heldId, 0); } - - } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java index f431275d..323c985c 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/DojoManager.java @@ -131,6 +131,7 @@ public class DojoManager { networkHandler.sendPacket(new QueryPingC2SPacket(Util.getMeasuringTimeMs())); } } + public static void onPingResult(long ping) { DojoManager.ping = ping; } @@ -139,10 +140,10 @@ public class DojoManager { if (!Utils.isInCrimson() || !inArena) { return; } - switch (currentChallenge) { + switch (currentChallenge) { case STAMINA -> StaminaTestHelper.update(); case CONTROL -> ControlTestHelper.update(); - }; + } } /** @@ -198,8 +199,8 @@ public class DojoManager { if (!Utils.isInCrimson() || !inArena || CLIENT == null || CLIENT.player == null) { return; } - //check close by - if (entity.distanceTo(CLIENT.player) > 50 || Math.abs(entity.getBlockY() - CLIENT.player.getBlockY()) > 5) { + // Check if within 50 blocks and 5 blocks vertically + if (entity.squaredDistanceTo(CLIENT.player) > 2500 || Math.abs(entity.getBlockY() - CLIENT.player.getBlockY()) > 5) { return; } switch (currentChallenge) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java index 664e25d5..70d6a401 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/ForceTestHelper.java @@ -1,8 +1,6 @@ package de.hysky.skyblocker.skyblock.crimson.dojo; import de.hysky.skyblocker.utils.render.RenderHelper; -import it.unimi.dsi.fastutil.objects.Object2LongMap; -import it.unimi.dsi.fastutil.objects.Object2LongMaps; import it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; import net.minecraft.entity.Entity; @@ -34,7 +32,6 @@ public class ForceTestHelper { * @return if the zombie should glow */ protected static boolean shouldGlow(String name) { - if (name == null) return false; return name.contains("-"); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java index d40c89c3..625b91eb 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/MasteryTestHelper.java @@ -1,8 +1,6 @@ package de.hysky.skyblocker.skyblock.crimson.dojo; import de.hysky.skyblocker.utils.render.RenderHelper; -import it.unimi.dsi.fastutil.objects.Object2LongMap; -import it.unimi.dsi.fastutil.objects.Object2LongMaps; import it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; import net.minecraft.block.BlockState; @@ -14,7 +12,7 @@ import net.minecraft.util.math.Vec3d; import java.awt.*; import java.text.DecimalFormat; -import java.util.*; +import java.util.ArrayList; import java.util.List; public class MasteryTestHelper { @@ -41,7 +39,7 @@ public class MasteryTestHelper { blockOrder.add(pos); //add lifetime of a block to the time to get time when block expires // work out how long it will take between the player firing and arrow hitting the block and to subtract from time - long travelTime = (long) (CLIENT.player.getPos().distanceTo(pos.toCenterPos()) * (1000 / 60)); //an arrow speed is about 60 blocks a second from a full draw + long travelTime = (long) (CLIENT.player.getPos().distanceTo(pos.toCenterPos()) * 1000 / 60); //an arrow speed is about 60 blocks a second from a full draw endTimes.put(pos, System.currentTimeMillis() + BLOCK_LIFE_TIME - DojoManager.ping - travelTime); } if (state.isAir()) { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/StaminaTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/StaminaTestHelper.java index d8b17cd4..3f7dfe56 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/StaminaTestHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/StaminaTestHelper.java @@ -1,14 +1,15 @@ package de.hysky.skyblocker.skyblock.crimson.dojo; import de.hysky.skyblocker.utils.render.RenderHelper; -import it.unimi.dsi.fastutil.ints.Int2ObjectMap; -import it.unimi.dsi.fastutil.ints.Int2ObjectMaps; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.client.MinecraftClient; -import net.minecraft.util.math.*; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Box; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.math.Vec3i; import java.util.ArrayList; import java.util.HashMap; @@ -33,7 +34,7 @@ public class StaminaTestHelper { NEGATIVE_X, NEGATIVE_Z, NEW, - UNCHANGED; + UNCHANGED } protected static void reset() { diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/TenacityTestHelper.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/TenacityTestHelper.java index 71c49d76..51e99fbd 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/TenacityTestHelper.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/dojo/TenacityTestHelper.java @@ -13,8 +13,6 @@ import net.minecraft.util.hit.HitResult; import net.minecraft.util.math.Vec3d; import net.minecraft.world.RaycastContext; -import java.util.*; - public class TenacityTestHelper { private static final MinecraftClient CLIENT = MinecraftClient.getInstance(); @@ -72,7 +70,7 @@ public class TenacityTestHelper { } /** - * Uses the particles spawned with the fireballs to offset from the armour stand position to get a mor accurate guess of where its going + * Uses the particles spawned with the fireballs to offset from the armour stand position to get a more accurate guess of where it's going * * @param packet particle packet */ diff --git a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java index 152c09a3..81e328ca 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java @@ -62,7 +62,7 @@ public class MobGlow { case EndermanEntity enderman when Utils.isInTheEnd() && !entity.isInvisible() -> TheEnd.isSpecialZealot(enderman); //dojo - case ZombieEntity zombie when Utils.isInCrimson() && DojoManager.inArena -> DojoManager.shouldGlow(getArmourStandName(zombie)); + case ZombieEntity zombie when Utils.isInCrimson() && DojoManager.inArena -> DojoManager.shouldGlow(getArmorStandName(zombie)); default -> false; }; @@ -73,6 +73,7 @@ public class MobGlow { /** * Checks if an entity is starred by checking if its armor stand contains a star in its name. + * * @param entity the entity to check. * @return true if the entity is starred, false otherwise */ @@ -80,10 +81,17 @@ public class MobGlow { List armorStands = getArmorStands(entity); return !armorStands.isEmpty() && armorStands.getFirst().getName().getString().contains("✯"); } - public static String getArmourStandName(Entity entity) { + + /** + * Returns name of entity by finding closed armor stand and getting name of that + * + * @param entity the entity to check + * @return the name string of the entities label + */ + public static String getArmorStandName(Entity entity) { List armorStands = getArmorStands(entity); if (armorStands.isEmpty()) { - return null; + return ""; } return armorStands.getFirst().getName().getString(); } diff --git a/src/main/resources/skyblocker.mixins.json b/src/main/resources/skyblocker.mixins.json index 81dcfc03..fa23abb7 100644 --- a/src/main/resources/skyblocker.mixins.json +++ b/src/main/resources/skyblocker.mixins.json @@ -27,7 +27,7 @@ "LivingEntityRendererMixin", "MinecraftClientMixin", "MouseMixin", - "PingMeasuererMixin", + "PingMeasurerMixin", "PlayerInventoryMixin", "PlayerListHudMixin", "PlayerSkinProviderMixin", -- cgit