diff options
| author | nmccullagh <narhanael64@gmail.com> | 2024-08-04 21:28:53 +0100 |
|---|---|---|
| committer | nmccullagh <narhanael64@gmail.com> | 2024-08-07 19:44:52 +0100 |
| commit | a087b150caa15b2401717c802720332818a5245e (patch) | |
| tree | 97d11e614ba3d0f6dc8d63684ef9ad707cd08d64 /src/main/java | |
| parent | d167b8671da767da2335aa4eebd5335a8a790acb (diff) | |
| download | Skyblocker-a087b150caa15b2401717c802720332818a5245e.tar.gz Skyblocker-a087b150caa15b2401717c802720332818a5245e.tar.bz2 Skyblocker-a087b150caa15b2401717c802720332818a5245e.zip | |
small distance tweaks
Diffstat (limited to 'src/main/java')
3 files changed, 27 insertions, 7 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/slayer/FirePillarAnnouncer.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/slayer/FirePillarAnnouncer.java index 388e66dd..534d7a2f 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/slayer/FirePillarAnnouncer.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/slayer/FirePillarAnnouncer.java @@ -42,7 +42,7 @@ public class FirePillarAnnouncer { // There is an edge case where the slayer has entered demon phase and temporarily despawned with // an active fire pillar in play, So fallback to the player Entity referenceEntity = SlayerUtils.getSlayerEntity(); - if (!(referenceEntity != null ? referenceEntity : MinecraftClient.getInstance().player).getBlockPos().isWithinDistance(entity.getPos(), 24)) return; + if (!(referenceEntity != null ? referenceEntity : MinecraftClient.getInstance().player).getBlockPos().isWithinDistance(entity.getPos(), 22)) return; announceFirePillarDetails(entityName); } } 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 83519c32..734fc821 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java @@ -2,6 +2,7 @@ package de.hysky.skyblocker.skyblock.entity; import com.google.common.collect.Streams; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.config.configs.SlayersConfig; import de.hysky.skyblocker.skyblock.crimson.dojo.DojoManager; import de.hysky.skyblocker.skyblock.crimson.kuudra.Kuudra; import de.hysky.skyblocker.skyblock.crimson.slayer.AttunementColours; @@ -60,13 +61,13 @@ public class MobGlow { /** * Checks if the player can see the entity. - * Has "True sight" within an small aura, but since name tags exist I think this is fine... + * Has "True sight" within a certain aura, but since name tags exist I think this is fine... */ private static boolean playerCanSee(Entity entity, long currentTime) { CacheEntry canSee = canSeeCache.get(entity); if (canSee == null || (currentTime - canSee.timestamp) > PLAYER_CAN_SEE_CACHE_DURATION) { - boolean playerCanSee = entity.distanceTo(MinecraftClient.getInstance().player) <= 15 || MinecraftClient.getInstance().player.canSee(entity); + boolean playerCanSee = entity.distanceTo(MinecraftClient.getInstance().player) <= 20 || MinecraftClient.getInstance().player.canSee(entity); canSeeCache.put(entity, new CacheEntry(playerCanSee, currentTime)); return playerCanSee; } @@ -128,10 +129,10 @@ public class MobGlow { SkyblockerConfigManager.get().slayers.endermanSlayer.highlightNukekubiHeads; // Blaze Slayer's Demonic minions - case WitherSkeletonEntity e when SkyblockerConfigManager.get().slayers.highlightBosses.toString().equals("GLOW") -> - SlayerUtils.isInSlayerQuestType(SlayerUtils.DEMONLORD) && e.distanceTo(MinecraftClient.getInstance().player) <= 10; - case ZombifiedPiglinEntity e when SkyblockerConfigManager.get().slayers.highlightBosses.toString().equals("GLOW") -> - SlayerUtils.isInSlayerQuestType(SlayerUtils.DEMONLORD) && e.distanceTo(MinecraftClient.getInstance().player) <= 10; + case WitherSkeletonEntity e when SkyblockerConfigManager.get().slayers.highlightBosses == SlayersConfig.HighlightSlayerEntities.GLOW -> + SlayerUtils.isInSlayerType(SlayerUtils.DEMONLORD) && e.distanceTo(MinecraftClient.getInstance().player) <= 14; + case ZombifiedPiglinEntity e when SkyblockerConfigManager.get().slayers.highlightBosses == SlayersConfig.HighlightSlayerEntities.GLOW -> + SlayerUtils.isInSlayerType(SlayerUtils.DEMONLORD) && e.distanceTo(MinecraftClient.getInstance().player) <= 14; default -> false; }; diff --git a/src/main/java/de/hysky/skyblocker/utils/SlayerUtils.java b/src/main/java/de/hysky/skyblocker/utils/SlayerUtils.java index eb07dec9..363de85a 100644 --- a/src/main/java/de/hysky/skyblocker/utils/SlayerUtils.java +++ b/src/main/java/de/hysky/skyblocker/utils/SlayerUtils.java @@ -58,6 +58,25 @@ public class SlayerUtils { return false; } + public static boolean isInSlayerType(String slayer) { + try { + boolean inFight = false; + boolean type = false; + for (String line : Utils.STRING_SCOREBOARD) { + switch (line) { + case String a when a.contains("Slayer Quest") -> { return false; } + case String b when b.contains("Slay the boss!") -> inFight = true; + case String c when c.contains(slayer) -> type = true; + default -> { continue; } + } + if (inFight && type) return true; + } + } catch (NullPointerException e) { + LOGGER.error("[Skyblocker] Error while checking if player is in slayer", e); + } + return false; + } + public static boolean isInSlayerQuestType(String slayer) { try { boolean quest = false; |
