aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/misc
diff options
context:
space:
mode:
authorjani270 <69345714+jani270@users.noreply.github.com>2024-01-11 15:50:52 +0100
committerGitHub <noreply@github.com>2024-01-11 15:50:52 +0100
commit2e12fc657e03c26f26e61b5e9da939b23a73f528 (patch)
tree44a08f611a8f7560b7e784b158915f3d602a6b34 /src/main/java/at/hannibal2/skyhanni/features/misc
parent96cdf8e2aef9dbc025f431a81df0d5aa6f257dbb (diff)
downloadskyhanni-2e12fc657e03c26f26e61b5e9da939b23a73f528.tar.gz
skyhanni-2e12fc657e03c26f26e61b5e9da939b23a73f528.tar.bz2
skyhanni-2e12fc657e03c26f26e61b5e9da939b23a73f528.zip
Added-Lesser-Orb-of-Healing-Hider (#904)
Lesser Orb of Healing Hider. #904
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/misc')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/LesserOrbHider.kt54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/LesserOrbHider.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/LesserOrbHider.kt
new file mode 100644
index 000000000..000587afd
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/LesserOrbHider.kt
@@ -0,0 +1,54 @@
+package at.hannibal2.skyhanni.features.misc
+
+import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.events.CheckRenderEntityEvent
+import at.hannibal2.skyhanni.events.EntityEquipmentChangeEvent
+import at.hannibal2.skyhanni.events.ReceiveParticleEvent
+import at.hannibal2.skyhanni.utils.ItemUtils.getSkullTexture
+import at.hannibal2.skyhanni.utils.LocationUtils.distanceTo
+import at.hannibal2.skyhanni.utils.LorenzUtils
+import net.minecraft.entity.item.EntityArmorStand
+import net.minecraft.util.EnumParticleTypes
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+
+class LesserOrbHider {
+ private val config get() = SkyHanniMod.feature.misc
+ private val hiddenEntities = LorenzUtils.weakReferenceList<EntityArmorStand>()
+
+ private val lesserTexture =
+ "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjgzMjM2NjM5NjA3MDM2YzFiYTM5MWMyYjQ2YTljN2IwZWZkNzYwYzhiZmEyOTk2YTYwNTU1ODJiNGRhNSJ9fX0="
+
+ @SubscribeEvent
+ fun onArmorChange(event: EntityEquipmentChangeEvent) {
+ val entity = event.entity
+ val itemStack = event.newItemStack ?: return
+
+ if (entity is EntityArmorStand && event.isHand && itemStack.getSkullTexture() == lesserTexture) {
+ hiddenEntities.add(entity)
+ }
+ }
+
+ @SubscribeEvent
+ fun onCheckRender(event: CheckRenderEntityEvent<*>) {
+ if (!isEnabled()) return
+
+ if (event.entity in hiddenEntities) {
+ event.isCanceled = true
+ }
+ }
+
+ @SubscribeEvent
+ fun onReceiveParticle(event: ReceiveParticleEvent) {
+ if (!isEnabled()) return
+ if (event.type != EnumParticleTypes.REDSTONE) return
+
+ for (armorStand in hiddenEntities) {
+ val distance = armorStand.distanceTo(event.location)
+ if (distance < 4) {
+ event.isCanceled = true
+ }
+ }
+ }
+
+ fun isEnabled() = LorenzUtils.inSkyBlock && config.lesserOrbHider
+}