summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/end
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2022-09-07 05:09:48 +0200
committerGitHub <noreply@github.com>2022-09-07 05:09:48 +0200
commitcfeac0b6a71c592b61c53fad192eb22bb24b0f54 (patch)
tree2d4cbf11b8f5b93b6d907404399ffcd8ae08e763 /src/main/java/at/hannibal2/skyhanni/features/end
parent5b76d78b62420bfa5c9cca3cb3ebc50a12e812b7 (diff)
downloadskyhanni-cfeac0b6a71c592b61c53fad192eb22bb24b0f54.tar.gz
skyhanni-cfeac0b6a71c592b61c53fad192eb22bb24b0f54.tar.bz2
skyhanni-cfeac0b6a71c592b61c53fad192eb22bb24b0f54.zip
0.7 (#2)
* code cleanup * Option to hide the Skyblock Level from the chat messages, Option to change the way the Skyblock Level gets displayed in the chat * change version to 0.6.1 * add highlight the voidling extremist in pink color * add highlight corrupted mobs in purple color * fixed highlight corrupted mobs in purple color in the private island * another minor fix for highlight corrupted mobs in purple color * created EntityHealthUpdateEvent and fixing CorruptedMobHighlight * using EntityHealthUpdateEvent everywhere * added marking a player with yellow color * highlight slayer miniboss in blue color * /copyentities now shows health correctly for every entity * infer fix * fixing bazaar message filter * changelog * hides the death messages of other players, except for players who are close to the player. * hiding tip messages * highlight deathmites in dungeon in red color * code cleanup * code cleanup * hide tnt laying around in dungeon * fix infer * remove debug * Added hide Blessings laying around in dungeon. Added hide Revive Stones laying around in dungeon. * Hide Premium Flesh laying around in dungeon. * edited LorenzTest * Added dungeon copilot and separate filter for hiding dungeon key and door messages. * Added hide Journal Entry pages laying around in dungeon. * Added hide Skeleton Skulls laying around in dungeon. * credits * Added highlight Skeleton Skulls when combining into a skeleton in orange color (not useful combined with feature Hide Skeleton Skull) * Added highlight Skeleton Skulls when combining into a skeleton in orange color (not useful combined with feature Hide Skeleton Skull) * fix wording * clarification * small fixes * Highlight the enderman slayer Yang Glyph (Beacon) in red color (supports beacon in hand and beacon flying) * better/more readability for CopyNearbyEntitiesCommand * make version 0.7
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/end')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/end/VoidlingExtremistColor.kt65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/end/VoidlingExtremistColor.kt b/src/main/java/at/hannibal2/skyhanni/features/end/VoidlingExtremistColor.kt
new file mode 100644
index 000000000..f2dcaed89
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/features/end/VoidlingExtremistColor.kt
@@ -0,0 +1,65 @@
+package at.hannibal2.skyhanni.features.end
+
+import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.events.RenderMobColoredEvent
+import at.hannibal2.skyhanni.events.ResetEntityHurtEvent
+import at.hannibal2.skyhanni.events.withAlpha
+import at.hannibal2.skyhanni.utils.LorenzColor
+import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.LorenzUtils.baseMaxHealth
+import net.minecraft.client.Minecraft
+import net.minecraft.entity.monster.EntityEnderman
+import net.minecraftforge.event.world.WorldEvent
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import net.minecraftforge.fml.common.gameevent.TickEvent
+
+class VoidlingExtremistColor {
+
+ private var tick = 0
+ private val extremists = mutableListOf<EntityEnderman>()
+
+ @SubscribeEvent
+ fun onTick(event: TickEvent.ClientTickEvent) {
+ if (!isEnabled()) return
+
+ if (tick++ % 20 == 0) {
+ find()
+ }
+ }
+
+ @SubscribeEvent
+ fun onRenderMobColored(event: RenderMobColoredEvent) {
+ if (!isEnabled()) return
+ val entity = event.entity
+
+ if (entity in extremists) {
+ event.color = LorenzColor.LIGHT_PURPLE.toColor().withAlpha(127)
+ }
+ }
+
+ @SubscribeEvent
+ fun onResetEntityHurtTime(event: ResetEntityHurtEvent) {
+ if (!isEnabled()) return
+ val entity = event.entity
+
+ if (entity in extremists) {
+ event.shouldReset = true
+ }
+ }
+
+ @SubscribeEvent
+ fun onWorldChange(event: WorldEvent.Load) {
+ extremists.clear()
+ }
+
+ private fun find() {
+ Minecraft.getMinecraft().theWorld.loadedEntityList.filterIsInstance<EntityEnderman>()
+ .filter { it !in extremists && it.baseMaxHealth % 8_000_000 == 0.0 }.forEach { extremists.add(it) }
+ }
+
+ private fun isEnabled(): Boolean {
+
+ return LorenzUtils.inSkyblock && LorenzUtils.skyBlockIsland == "The End" &&
+ SkyHanniMod.feature.misc.voidlingExtremistColor
+ }
+} \ No newline at end of file