aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2024-04-22 12:43:29 -0400
committerAaron <51387595+AzureAaron@users.noreply.github.com>2024-04-26 16:23:21 -0400
commitaface0d01336c444093f4bee21e623cc8bfb4062 (patch)
tree51a4cd2df7cd9e70be7840aa5e90be7dc6a52c3a
parent6bf62de110378f06ace7c41d287bbc8923355cc8 (diff)
downloadSkyblocker-aface0d01336c444093f4bee21e623cc8bfb4062.tar.gz
Skyblocker-aface0d01336c444093f4bee21e623cc8bfb4062.tar.bz2
Skyblocker-aface0d01336c444093f4bee21e623cc8bfb4062.zip
Refactor MobGlow and MobBoundingBoxes to use pattern matching
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/LividColor.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/entity/MobBoundingBoxes.java25
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/entity/MobGlow.java94
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) {