aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java1
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Dungeon.java10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLevelColor.kt55
3 files changed, 66 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
index a20ce7bc0..b3622499f 100644
--- a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
+++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
@@ -164,6 +164,7 @@ public class SkyHanniMod {
registerEvent(new GriffinBurrowParticleFinder());
registerEvent(new BurrowWarpHelper());
registerEvent(new HighlightBonzoMasks());
+ registerEvent(new DungeonLevelColor());
Commands.INSTANCE.init();
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Dungeon.java b/src/main/java/at/hannibal2/skyhanni/config/features/Dungeon.java
index 40f58df81..f706446a1 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/Dungeon.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/Dungeon.java
@@ -149,6 +149,16 @@ public class Dungeon {
@ConfigAccordionId(id = 5)
public Position copilotPos = new Position(10, 10, false, true);
+ @ConfigOption(name = "Party Finder", desc = "")
+ @ConfigEditorAccordion(id = 6)
+ public boolean partyFinder = false;
+
+ @Expose
+ @ConfigOption(name = "Colored Class Level", desc = "Show the class levels in party finder in colors.")
+ @ConfigAccordionId(id = 6)
+ @ConfigEditorBoolean
+ public boolean partyFinderColoredClassLevel = true;
+
@Expose
@ConfigOption(name = "Moving Skeleton Skulls", desc = "Highlight Skeleton Skulls when combining into a " +
"Skeletor in orange color (not useful combined with feature Hide Skeleton Skull)")
diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLevelColor.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLevelColor.kt
new file mode 100644
index 000000000..796f93ef4
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLevelColor.kt
@@ -0,0 +1,55 @@
+package at.hannibal2.skyhanni.features.dungeon
+
+import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.utils.ItemUtils.getLore
+import at.hannibal2.skyhanni.utils.LorenzUtils
+import net.minecraft.client.Minecraft
+import net.minecraft.client.gui.inventory.GuiChest
+import net.minecraft.inventory.ContainerChest
+import net.minecraftforge.event.entity.player.ItemTooltipEvent
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import java.util.regex.Pattern
+
+class DungeonLevelColor {
+
+ private val pattern = Pattern.compile(" §.(.*)§f: §e(.*)§b \\(§e(.*)§b\\)")
+
+ @SubscribeEvent
+ fun onItemTooltip(event: ItemTooltipEvent) {
+ if (!LorenzUtils.inSkyblock) return
+ if (!SkyHanniMod.feature.dungeon.partyFinderColoredClassLevel) return
+
+ if (event.toolTip == null) return
+ val guiChest = Minecraft.getMinecraft().currentScreen
+ if (guiChest !is GuiChest) return
+ val chest = guiChest.inventorySlots as ContainerChest
+ val chestName = chest.lowerChestInventory.displayName.unformattedText.trim()
+ if (chestName != "Party Finder") return
+
+ val stack = event.itemStack
+ var index = 0
+ for (line in stack.getLore()) {
+ index++
+ val matcher = pattern.matcher(line)
+ if (!matcher.matches()) continue
+
+ val playerName = matcher.group(1)
+ val className = matcher.group(2)
+ val level = matcher.group(3).toInt()
+ val color = getColor(level)
+ event.toolTip[index] = " §b$playerName§f: §e$className $color$level"
+ }
+ }
+
+ private fun getColor(level: Int): String {
+ if (level >= 50) return "§c§l"
+ if (level >= 45) return "§c"
+ if (level >= 40) return "§d"
+ if (level >= 35) return "§b"
+ if (level >= 30) return "§5"
+ if (level >= 25) return "§9"
+ if (level >= 20) return "§a"
+ if (level >= 10) return "§f"
+ return "§7"
+ }
+}