diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-04-22 12:43:29 -0400 |
---|---|---|
committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-04-26 16:23:21 -0400 |
commit | aface0d01336c444093f4bee21e623cc8bfb4062 (patch) | |
tree | 51a4cd2df7cd9e70be7840aa5e90be7dc6a52c3a | |
parent | 6bf62de110378f06ace7c41d287bbc8923355cc8 (diff) | |
download | Skyblocker-aface0d01336c444093f4bee21e623cc8bfb4062.tar.gz Skyblocker-aface0d01336c444093f4bee21e623cc8bfb4062.tar.bz2 Skyblocker-aface0d01336c444093f4bee21e623cc8bfb4062.zip |
Refactor MobGlow and MobBoundingBoxes to use pattern matching
3 files changed, 56 insertions, 65 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/LividColor.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/LividColor.java index 15efe6e4..ee9791d5 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/LividColor.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/LividColor.java @@ -16,6 +16,7 @@ import net.minecraft.util.Formatting; import net.minecraft.util.math.BlockPos; import java.util.Map; +import java.util.Set; public class LividColor { private static final Map<Block, Formatting> WOOL_TO_FORMATTING = Map.of( @@ -40,6 +41,7 @@ public class LividColor { "Doctor Livid", Formatting.GRAY, "Vendetta Livid", Formatting.WHITE ); + public static final Set<String> LIVID_NAMES = Set.copyOf(LIVID_TO_FORMATTING.keySet()); public static final SkyblockerConfig.LividColor CONFIG = SkyblockerConfigManager.get().locations.dungeons.lividColor; private static int tenTicks = 0; private static Formatting color; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobBoundingBoxes.java b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobBoundingBoxes.java index b969ba0b..6ab4e3f2 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobBoundingBoxes.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobBoundingBoxes.java @@ -31,20 +31,21 @@ public class MobBoundingBoxes { if (Utils.isInDungeons() && FrustumUtils.isVisible(box) && !entity.isInvisible()) { String name = entity.getName().getString(); - // Minibosses - if (entity instanceof PlayerEntity) { - switch (name) { - case "Lost Adventurer", "Shadow Assassin", "Diamond Guy": return SkyblockerConfigManager.get().locations.dungeons.starredMobBoundingBoxes; - } - } + return switch (entity) { + case PlayerEntity p when name.equals("Lost Adventurer") || name.equals("Shadow Assassin") || name.equals("Diamond Guy") -> SkyblockerConfigManager.get().locations.dungeons.starredMobBoundingBoxes; + + default -> { + // Regular Mobs + if (!(entity instanceof ArmorStandEntity)) { + List<ArmorStandEntity> armorStands = MobGlow.getArmorStands(entity); - // Regular Mobs - if (!(entity instanceof ArmorStandEntity)) { - List<ArmorStandEntity> armorStands = MobGlow.getArmorStands(entity); + if (!armorStands.isEmpty() && armorStands.get(0).getName().getString().contains("✯")) + yield SkyblockerConfigManager.get().locations.dungeons.starredMobBoundingBoxes; + } - if (!armorStands.isEmpty() && armorStands.get(0).getName().getString().contains("✯")) - return SkyblockerConfigManager.get().locations.dungeons.starredMobBoundingBoxes; - } + yield false; + } + }; } return false; 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 9650e39b..5076e153 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java @@ -30,55 +30,48 @@ public class MobGlow { Box box = entity.getBoundingBox(); if (OcclusionCulling.getReducedCuller().isVisible(box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ)) { - String name = entity.getName().getString(); - - if (!entity.isInvisible()) { + if (entity.isInvisible()) return false; - // Dungeons - if (Utils.isInDungeons()) { + String name = entity.getName().getString(); + // Dungeons + if (Utils.isInDungeons()) { + return switch (entity) { // Minibosses - if (entity instanceof PlayerEntity) { - switch (name) { - case "Lost Adventurer", "Shadow Assassin", "Diamond Guy": return SkyblockerConfigManager.get().locations.dungeons.starredMobGlow; - case "Arcade Livid", "Crossed Livid", "Doctor Livid", "Frog Livid", "Hockey Livid", - "Purple Livid", "Scream Livid", "Smile Livid", "Vendetta Livid": return LividColor.shouldGlow(name); - } - } + case PlayerEntity p when name.equals("Lost Adventurer") || name.equals("Shadow Assassin") || name.equals("Diamond Guy") -> SkyblockerConfigManager.get().locations.dungeons.starredMobGlow; + case PlayerEntity p when LividColor.LIVID_NAMES.contains(name) -> LividColor.shouldGlow(name); - // Regular Mobs - if (!(entity instanceof ArmorStandEntity)) { - List<ArmorStandEntity> armorStands = getArmorStands(entity); + //Bats + case BatEntity b -> SkyblockerConfigManager.get().locations.dungeons.starredMobGlow || SkyblockerConfigManager.get().locations.dungeons.starredMobBoundingBoxes; - if (!armorStands.isEmpty() && armorStands.get(0).getName().getString().contains("✯")) - return SkyblockerConfigManager.get().locations.dungeons.starredMobGlow; - } - - // Bats - return (SkyblockerConfigManager.get().locations.dungeons.starredMobGlow || SkyblockerConfigManager.get().locations.dungeons.starredMobBoundingBoxes) && entity instanceof BatEntity; - } + default -> { + // Regular Mobs + if (!(entity instanceof ArmorStandEntity)) { + List<ArmorStandEntity> armorStands = getArmorStands(entity); - // Rift - if (Utils.isInTheRift()) { - if (entity instanceof PlayerEntity) { - switch (name) { - // They have a space in their name for some reason... - case "Blobbercyst ": return SkyblockerConfigManager.get().locations.rift.blobbercystGlow; + if (!armorStands.isEmpty() && armorStands.get(0).getName().getString().contains("✯")) + yield SkyblockerConfigManager.get().locations.dungeons.starredMobGlow; } + + yield false; } - } + }; } - // Enderman Slayer - // Highlights Nukekubi Heads - return SkyblockerConfigManager.get().slayer.endermanSlayer.highlightNukekubiHeads - && SlayerUtils.isInSlayer() - && entity instanceof ArmorStandEntity armorStandEntity - && isNukekubiHead(armorStandEntity); - } + return switch (entity) { + // Rift + case PlayerEntity p when Utils.isInTheRift() && name.equals("Blobbercyst ") -> SkyblockerConfigManager.get().locations.rift.blobbercystGlow; + + // Enderman Slayer + // Highlights Nukekubi Heads + case ArmorStandEntity armorStand when Utils.isInTheEnd() && SlayerUtils.isInSlayer() && isNukekubiHead(armorStand) -> SkyblockerConfigManager.get().slayer.endermanSlayer.highlightNukekubiHeads; + + // Special Zelot + case EndermanEntity enderman when Utils.isInTheEnd() -> TheEnd.isSpecialZealot(enderman); - // Special Zelot - if (entity instanceof EndermanEntity enderman && TheEnd.isSpecialZealot(enderman)) return true; + default -> false; + }; + } return false; } @@ -94,23 +87,18 @@ public class MobGlow { public static int getGlowColor(Entity entity) { String name = entity.getName().getString(); - if (entity instanceof PlayerEntity) { - return switch (name) { - case "Lost Adventurer" -> 0xfee15c; - case "Shadow Assassin" -> 0x5b2cb2; - case "Diamond Guy" -> 0x57c2f7; - case "Arcade Livid", "Crossed Livid", "Doctor Livid", "Frog Livid", "Hockey Livid", - "Purple Livid", "Scream Livid", "Smile Livid", "Vendetta Livid" -> LividColor.getGlowColor(name); - case "Blobbercyst " -> Formatting.GREEN.getColorValue(); - default -> 0xf57738; - }; - } - if (entity instanceof EndermanEntity enderman && TheEnd.isSpecialZealot(enderman)) return Formatting.RED.getColorValue(); + return switch (entity) { + case PlayerEntity p when name.equals("Lost Adventurer") -> 0xfee15c; + case PlayerEntity p when name.equals("Shadow Assassin") -> 0x5b2cb2; + case PlayerEntity p when name.equals("Diamond Guy") -> 0x57c2f7; + case PlayerEntity p when LividColor.LIVID_NAMES.contains(name) -> LividColor.getGlowColor(name); + case PlayerEntity p when name.equals("Blobbercyst ") -> Formatting.GREEN.getColorValue(); - // copypaste nukekebi head logic - if (entity instanceof ArmorStandEntity armorStandEntity && isNukekubiHead(armorStandEntity)) return 0x990099; + case EndermanEntity enderman when TheEnd.isSpecialZealot(enderman) -> Formatting.RED.getColorValue(); + case ArmorStandEntity armorStand when isNukekubiHead(armorStand) -> 0x990099; - return 0xf57738; + default -> 0xf57738; + }; } private static boolean isNukekubiHead(ArmorStandEntity entity) { |