From 6b073b2d1590ebd1755426212d4e05ebcd7bf7a5 Mon Sep 17 00:00:00 2001 From: penguin Date: Mon, 7 Jul 2025 03:15:57 -0400 Subject: [PATCH 1/9] fix: smolpeople/breefingdog --- .../entity/MixinEntityLivingBase.java | 5 -- .../renderer/MixinPlayerEntityRenderer.java | 46 +++++++++++++++++++ .../ExtensionPlayerEntityRenderer.kt | 24 ++++++++++ .../hooks/entity/EntityLivingBaseHook.kt | 14 ------ .../renderer/PlayerEntityRendererHook.kt | 38 +++++++++++++++ mod/src/main/resources/mixins.skytils.json | 1 + 6 files changed, 109 insertions(+), 19 deletions(-) create mode 100644 mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java create mode 100644 mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/extensions/ExtensionPlayerEntityRenderer.kt create mode 100644 mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/renderer/PlayerEntityRendererHook.kt diff --git a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/entity/MixinEntityLivingBase.java b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/entity/MixinEntityLivingBase.java index 0d625c955..48c6508cb 100644 --- a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/entity/MixinEntityLivingBase.java +++ b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/entity/MixinEntityLivingBase.java @@ -82,11 +82,6 @@ private boolean spawnParticle(World instance, Entity entity, byte b) { //#endif } - @Inject(method = "isBaby", at = @At("HEAD"), cancellable = true) - private void setChildState(CallbackInfoReturnable cir) { - hook.isChild(cir); - } - @NotNull @Override public EntityLivingBaseHook getSkytilsHook() { diff --git a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java new file mode 100644 index 000000000..6278f3ce0 --- /dev/null +++ b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java @@ -0,0 +1,46 @@ +/* + * Skytils - Hypixel Skyblock Quality of Life Mod + * Copyright (C) 2020-2025 Skytils + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package gg.skytils.skytilsmod.mixins.transformers.renderer; + +import gg.skytils.skytilsmod.mixins.extensions.ExtensionPlayerEntityRenderer; +import gg.skytils.skytilsmod.mixins.hooks.renderer.PlayerEntityRendererHook; +import net.minecraft.client.render.entity.PlayerEntityRenderer; +import net.minecraft.client.render.entity.state.PlayerEntityRenderState; +import net.minecraft.client.util.math.MatrixStack; +import org.jetbrains.annotations.NotNull; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(PlayerEntityRenderer.class) +public class MixinPlayerEntityRenderer implements ExtensionPlayerEntityRenderer { + private static final PlayerEntityRendererHook hook = new PlayerEntityRendererHook(); + + @Inject(method = "scale(Lnet/minecraft/client/render/entity/state/PlayerEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;)V", at = @At("HEAD")) + private static void doScale(PlayerEntityRenderState playerEntityRenderState, MatrixStack matrixStack, CallbackInfo ci){ + hook.smol(playerEntityRenderState, matrixStack); + } + + @NotNull + @Override + public PlayerEntityRendererHook getSkytilsHook() { + return hook; + } +} diff --git a/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/extensions/ExtensionPlayerEntityRenderer.kt b/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/extensions/ExtensionPlayerEntityRenderer.kt new file mode 100644 index 000000000..2fc139d7c --- /dev/null +++ b/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/extensions/ExtensionPlayerEntityRenderer.kt @@ -0,0 +1,24 @@ +/* + * Skytils - Hypixel Skyblock Quality of Life Mod + * Copyright (C) 2020-2025 Skytils + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package gg.skytils.skytilsmod.mixins.extensions + +import gg.skytils.skytilsmod.mixins.hooks.renderer.PlayerEntityRendererHook +interface ExtensionPlayerEntityRenderer { + val skytilsHook: PlayerEntityRendererHook +} \ No newline at end of file diff --git a/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/entity/EntityLivingBaseHook.kt b/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/entity/EntityLivingBaseHook.kt index 501fb466a..c0ecd9c9d 100644 --- a/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/entity/EntityLivingBaseHook.kt +++ b/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/entity/EntityLivingBaseHook.kt @@ -43,16 +43,6 @@ class EntityLivingBaseHook(val entity: LivingEntity) { var colorMultiplier: Color? = null var masterDragonType: WitherKingDragons? = null - val isBreefing by lazy { - entity.name.string == "Breefing" && (SuperSecretSettings.breefingDog || Random.nextInt( - 100 - ) < 3) - } - - val isSmol by lazy { - Utils.inSkyblock && entity is PlayerEntity && (SuperSecretSettings.smolPeople || isBreefing) - } - //#if MC>12000 fun modifyPotionActive(statusEffect: StatusEffect, cir: CallbackInfoReturnable) { if (!Utils.inSkyblock) return @@ -78,8 +68,4 @@ class EntityLivingBaseHook(val entity: LivingEntity) { //$$ return !Skytils.config.hideDeathParticles || !Utils.inSkyblock || particleType != ParticleTypes.EXPLOSION //$$ } //#endif - - fun isChild(cir: CallbackInfoReturnable) { - cir.returnValue = isSmol - } } \ No newline at end of file diff --git a/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/renderer/PlayerEntityRendererHook.kt b/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/renderer/PlayerEntityRendererHook.kt new file mode 100644 index 000000000..302ac4ea9 --- /dev/null +++ b/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/renderer/PlayerEntityRendererHook.kt @@ -0,0 +1,38 @@ +/* + * Skytils - Hypixel Skyblock Quality of Life Mod + * Copyright (C) 2020-2025 Skytils + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package gg.skytils.skytilsmod.mixins.hooks.renderer + +import gg.skytils.skytilsmod.utils.SuperSecretSettings +import gg.skytils.skytilsmod.utils.Utils +import net.minecraft.client.render.entity.state.PlayerEntityRenderState +import net.minecraft.client.util.math.MatrixStack +import kotlin.random.Random + +class PlayerEntityRendererHook { + fun isBreefing(state: PlayerEntityRenderState): Boolean + = state.name == "Breefing" && (SuperSecretSettings.breefingDog || Random.nextInt( + 100 + ) < 3) + + fun smol(state: PlayerEntityRenderState, ms: MatrixStack) { + if (Utils.inSkyblock && (SuperSecretSettings.smolPeople || isBreefing(state))){ + ms.scale(0.5f, 0.5f, 0.5f) + } + } +} \ No newline at end of file diff --git a/mod/src/main/resources/mixins.skytils.json b/mod/src/main/resources/mixins.skytils.json index 0d16fa703..e5a1ba7d9 100644 --- a/mod/src/main/resources/mixins.skytils.json +++ b/mod/src/main/resources/mixins.skytils.json @@ -67,6 +67,7 @@ "renderer.MixinTileEntityChestRenderer", "renderer.MixinTileEntitySkullRenderer", "renderer.MixinWorldRenderer_Glow", + "renderer.MixinPlayerEntityRenderer", "util.MixinChatStyle", "util.MixinUtil", "world.MixinClientWorld", From 1e708b8455cb47e9139ca162801fd688ad44c096 Mon Sep 17 00:00:00 2001 From: sychic <47618543+Sychic@users.noreply.github.com> Date: Mon, 7 Jul 2025 10:57:26 -0400 Subject: [PATCH 2/9] readded 1.8 code and preprocessing (might be wrong) --- .../entity/MixinEntityLivingBase.java | 7 +++++++ .../renderer/MixinPlayerEntityRenderer.java | 3 ++- .../hooks/entity/EntityLivingBaseHook.kt | 18 ++++++++++++++++++ .../hooks/renderer/PlayerEntityRendererHook.kt | 5 +++-- 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/entity/MixinEntityLivingBase.java b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/entity/MixinEntityLivingBase.java index 48c6508cb..5c3bf29ed 100644 --- a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/entity/MixinEntityLivingBase.java +++ b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/entity/MixinEntityLivingBase.java @@ -82,6 +82,13 @@ private boolean spawnParticle(World instance, Entity entity, byte b) { //#endif } + //#if MC==10809 + //$$ @Inject(method = "isBaby", at = @At("HEAD"), cancellable = true) + //$$ private void setChildState(CallbackInfoReturnable cir) { + //$$ hook.isChild(cir); + //$$ } + //#endif + @NotNull @Override public EntityLivingBaseHook getSkytilsHook() { diff --git a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java index 6278f3ce0..eb416d013 100644 --- a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java +++ b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ - +//#if MC>12000 package gg.skytils.skytilsmod.mixins.transformers.renderer; import gg.skytils.skytilsmod.mixins.extensions.ExtensionPlayerEntityRenderer; @@ -44,3 +44,4 @@ public PlayerEntityRendererHook getSkytilsHook() { return hook; } } +//#endif \ No newline at end of file diff --git a/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/entity/EntityLivingBaseHook.kt b/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/entity/EntityLivingBaseHook.kt index c0ecd9c9d..a0b94971c 100644 --- a/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/entity/EntityLivingBaseHook.kt +++ b/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/entity/EntityLivingBaseHook.kt @@ -43,6 +43,18 @@ class EntityLivingBaseHook(val entity: LivingEntity) { var colorMultiplier: Color? = null var masterDragonType: WitherKingDragons? = null + //#if MC==10809 + //$$ val isBreefing by lazy { + //$$ entity.name.string == "Breefing" && (SuperSecretSettings.breefingDog || Random.nextInt( + //$$ 100 + //$$ ) < 3) + //$$ } + //$$ + //$$ val isSmol by lazy { + //$$ Utils.inSkyblock && entity is PlayerEntity && (SuperSecretSettings.smolPeople || isBreefing) + //$$ } + //#endif + //#if MC>12000 fun modifyPotionActive(statusEffect: StatusEffect, cir: CallbackInfoReturnable) { if (!Utils.inSkyblock) return @@ -68,4 +80,10 @@ class EntityLivingBaseHook(val entity: LivingEntity) { //$$ return !Skytils.config.hideDeathParticles || !Utils.inSkyblock || particleType != ParticleTypes.EXPLOSION //$$ } //#endif + + //#if MC==10809 + //$$fun isChild(cir: CallbackInfoReturnable) { + //$$ cir.returnValue = isSmol + //$$} + //#endif } \ No newline at end of file diff --git a/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/renderer/PlayerEntityRendererHook.kt b/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/renderer/PlayerEntityRendererHook.kt index 302ac4ea9..dac18d872 100644 --- a/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/renderer/PlayerEntityRendererHook.kt +++ b/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/renderer/PlayerEntityRendererHook.kt @@ -17,7 +17,7 @@ */ package gg.skytils.skytilsmod.mixins.hooks.renderer - +//#if MC>12000 import gg.skytils.skytilsmod.utils.SuperSecretSettings import gg.skytils.skytilsmod.utils.Utils import net.minecraft.client.render.entity.state.PlayerEntityRenderState @@ -35,4 +35,5 @@ class PlayerEntityRendererHook { ms.scale(0.5f, 0.5f, 0.5f) } } -} \ No newline at end of file +} +//#endif \ No newline at end of file From f8c312e7e2a94b3c9a7f44143c578436b002c7c5 Mon Sep 17 00:00:00 2001 From: penguin Date: Mon, 7 Jul 2025 14:39:01 -0400 Subject: [PATCH 3/9] included package --- .../mixins/transformers/renderer/MixinPlayerEntityRenderer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java index eb416d013..2d9477101 100644 --- a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java +++ b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java @@ -15,9 +15,9 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ -//#if MC>12000 package gg.skytils.skytilsmod.mixins.transformers.renderer; +//#if MC>12000 import gg.skytils.skytilsmod.mixins.extensions.ExtensionPlayerEntityRenderer; import gg.skytils.skytilsmod.mixins.hooks.renderer.PlayerEntityRendererHook; import net.minecraft.client.render.entity.PlayerEntityRenderer; From 60d10c6d75d12134b9dca55ed7d2daa3b6c3fb2a Mon Sep 17 00:00:00 2001 From: penguin Date: Mon, 7 Jul 2025 14:40:54 -0400 Subject: [PATCH 4/9] remove unused extension --- .../renderer/MixinPlayerEntityRenderer.java | 9 +------ .../ExtensionPlayerEntityRenderer.kt | 24 ------------------- 2 files changed, 1 insertion(+), 32 deletions(-) delete mode 100644 mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/extensions/ExtensionPlayerEntityRenderer.kt diff --git a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java index 2d9477101..d81d4d597 100644 --- a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java +++ b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java @@ -18,7 +18,6 @@ package gg.skytils.skytilsmod.mixins.transformers.renderer; //#if MC>12000 -import gg.skytils.skytilsmod.mixins.extensions.ExtensionPlayerEntityRenderer; import gg.skytils.skytilsmod.mixins.hooks.renderer.PlayerEntityRendererHook; import net.minecraft.client.render.entity.PlayerEntityRenderer; import net.minecraft.client.render.entity.state.PlayerEntityRenderState; @@ -30,18 +29,12 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(PlayerEntityRenderer.class) -public class MixinPlayerEntityRenderer implements ExtensionPlayerEntityRenderer { +public class MixinPlayerEntityRenderer { private static final PlayerEntityRendererHook hook = new PlayerEntityRendererHook(); @Inject(method = "scale(Lnet/minecraft/client/render/entity/state/PlayerEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;)V", at = @At("HEAD")) private static void doScale(PlayerEntityRenderState playerEntityRenderState, MatrixStack matrixStack, CallbackInfo ci){ hook.smol(playerEntityRenderState, matrixStack); } - - @NotNull - @Override - public PlayerEntityRendererHook getSkytilsHook() { - return hook; - } } //#endif \ No newline at end of file diff --git a/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/extensions/ExtensionPlayerEntityRenderer.kt b/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/extensions/ExtensionPlayerEntityRenderer.kt deleted file mode 100644 index 2fc139d7c..000000000 --- a/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/extensions/ExtensionPlayerEntityRenderer.kt +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Skytils - Hypixel Skyblock Quality of Life Mod - * Copyright (C) 2020-2025 Skytils - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package gg.skytils.skytilsmod.mixins.extensions - -import gg.skytils.skytilsmod.mixins.hooks.renderer.PlayerEntityRendererHook -interface ExtensionPlayerEntityRenderer { - val skytilsHook: PlayerEntityRendererHook -} \ No newline at end of file From 2dda415f68330b5e26995b67a74e4a9742358c2a Mon Sep 17 00:00:00 2001 From: penguin Date: Mon, 7 Jul 2025 14:48:50 -0400 Subject: [PATCH 5/9] isSmol directly referenced in mixin --- .../renderer/MixinPlayerEntityRenderer.java | 6 +++--- .../mixins/hooks/renderer/PlayerEntityRendererHook.kt | 10 ++++------ 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java index d81d4d597..d190f8682 100644 --- a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java +++ b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java @@ -30,11 +30,11 @@ @Mixin(PlayerEntityRenderer.class) public class MixinPlayerEntityRenderer { - private static final PlayerEntityRendererHook hook = new PlayerEntityRendererHook(); - @Inject(method = "scale(Lnet/minecraft/client/render/entity/state/PlayerEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;)V", at = @At("HEAD")) private static void doScale(PlayerEntityRenderState playerEntityRenderState, MatrixStack matrixStack, CallbackInfo ci){ - hook.smol(playerEntityRenderState, matrixStack); + if (PlayerEntityRendererHook.isSmol(playerEntityRenderState)){ + matrixStack.scale(0.5f, 0.5f, 0.5f); + } } } //#endif \ No newline at end of file diff --git a/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/renderer/PlayerEntityRendererHook.kt b/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/renderer/PlayerEntityRendererHook.kt index dac18d872..b527846a2 100644 --- a/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/renderer/PlayerEntityRendererHook.kt +++ b/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/renderer/PlayerEntityRendererHook.kt @@ -24,16 +24,14 @@ import net.minecraft.client.render.entity.state.PlayerEntityRenderState import net.minecraft.client.util.math.MatrixStack import kotlin.random.Random -class PlayerEntityRendererHook { +object PlayerEntityRendererHook { fun isBreefing(state: PlayerEntityRenderState): Boolean = state.name == "Breefing" && (SuperSecretSettings.breefingDog || Random.nextInt( 100 ) < 3) - fun smol(state: PlayerEntityRenderState, ms: MatrixStack) { - if (Utils.inSkyblock && (SuperSecretSettings.smolPeople || isBreefing(state))){ - ms.scale(0.5f, 0.5f, 0.5f) - } - } + @JvmStatic + fun isSmol(state: PlayerEntityRenderState): Boolean + = Utils.inSkyblock && (SuperSecretSettings.smolPeople || isBreefing(state)) } //#endif \ No newline at end of file From e7f373144be327a685892ea17fc26493b07f68c9 Mon Sep 17 00:00:00 2001 From: penguin Date: Mon, 7 Jul 2025 15:51:26 -0400 Subject: [PATCH 6/9] apply logic in mixin, remove hook --- .../renderer/MixinPlayerEntityRenderer.java | 14 +++++-- .../renderer/PlayerEntityRendererHook.kt | 37 ------------------- 2 files changed, 11 insertions(+), 40 deletions(-) delete mode 100644 mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/renderer/PlayerEntityRendererHook.kt diff --git a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java index d190f8682..31e5a1713 100644 --- a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java +++ b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/renderer/MixinPlayerEntityRenderer.java @@ -18,23 +18,31 @@ package gg.skytils.skytilsmod.mixins.transformers.renderer; //#if MC>12000 -import gg.skytils.skytilsmod.mixins.hooks.renderer.PlayerEntityRendererHook; +import gg.skytils.skytilsmod.utils.SuperSecretSettings; +import gg.skytils.skytilsmod.utils.Utils; import net.minecraft.client.render.entity.PlayerEntityRenderer; import net.minecraft.client.render.entity.state.PlayerEntityRenderState; import net.minecraft.client.util.math.MatrixStack; -import org.jetbrains.annotations.NotNull; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import java.util.Random; + @Mixin(PlayerEntityRenderer.class) public class MixinPlayerEntityRenderer { + private static final Random random = new Random(); @Inject(method = "scale(Lnet/minecraft/client/render/entity/state/PlayerEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;)V", at = @At("HEAD")) private static void doScale(PlayerEntityRenderState playerEntityRenderState, MatrixStack matrixStack, CallbackInfo ci){ - if (PlayerEntityRendererHook.isSmol(playerEntityRenderState)){ + if (isSmol(playerEntityRenderState)){ matrixStack.scale(0.5f, 0.5f, 0.5f); } } + + private static boolean isSmol(PlayerEntityRenderState state){ + boolean isBreefing = state.name.equals("Breefing") && (SuperSecretSettings.breefingDog || random.nextInt(100) < 3); + return Utils.INSTANCE.getInSkyblock() && (SuperSecretSettings.smolPeople || isBreefing); + } } //#endif \ No newline at end of file diff --git a/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/renderer/PlayerEntityRendererHook.kt b/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/renderer/PlayerEntityRendererHook.kt deleted file mode 100644 index b527846a2..000000000 --- a/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/renderer/PlayerEntityRendererHook.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Skytils - Hypixel Skyblock Quality of Life Mod - * Copyright (C) 2020-2025 Skytils - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package gg.skytils.skytilsmod.mixins.hooks.renderer -//#if MC>12000 -import gg.skytils.skytilsmod.utils.SuperSecretSettings -import gg.skytils.skytilsmod.utils.Utils -import net.minecraft.client.render.entity.state.PlayerEntityRenderState -import net.minecraft.client.util.math.MatrixStack -import kotlin.random.Random - -object PlayerEntityRendererHook { - fun isBreefing(state: PlayerEntityRenderState): Boolean - = state.name == "Breefing" && (SuperSecretSettings.breefingDog || Random.nextInt( - 100 - ) < 3) - - @JvmStatic - fun isSmol(state: PlayerEntityRenderState): Boolean - = Utils.inSkyblock && (SuperSecretSettings.smolPeople || isBreefing(state)) -} -//#endif \ No newline at end of file From daa758b3902b1ec59d3cdbebfe47f3168e6d36d1 Mon Sep 17 00:00:00 2001 From: penguin Date: Wed, 9 Jul 2025 19:14:14 -0400 Subject: [PATCH 7/9] changed MC==10809 to MC>12000 else for better version compat --- .../mixins/transformers/entity/MixinEntityLivingBase.java | 3 ++- .../skytilsmod/mixins/hooks/entity/EntityLivingBaseHook.kt | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/entity/MixinEntityLivingBase.java b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/entity/MixinEntityLivingBase.java index 5c3bf29ed..e9ac246db 100644 --- a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/entity/MixinEntityLivingBase.java +++ b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/entity/MixinEntityLivingBase.java @@ -82,7 +82,8 @@ private boolean spawnParticle(World instance, Entity entity, byte b) { //#endif } - //#if MC==10809 + //#if MC>12000 + //#else //$$ @Inject(method = "isBaby", at = @At("HEAD"), cancellable = true) //$$ private void setChildState(CallbackInfoReturnable cir) { //$$ hook.isChild(cir); diff --git a/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/entity/EntityLivingBaseHook.kt b/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/entity/EntityLivingBaseHook.kt index a0b94971c..3c1ecb697 100644 --- a/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/entity/EntityLivingBaseHook.kt +++ b/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/entity/EntityLivingBaseHook.kt @@ -43,7 +43,8 @@ class EntityLivingBaseHook(val entity: LivingEntity) { var colorMultiplier: Color? = null var masterDragonType: WitherKingDragons? = null - //#if MC==10809 + //#if MC>12000 + //#else //$$ val isBreefing by lazy { //$$ entity.name.string == "Breefing" && (SuperSecretSettings.breefingDog || Random.nextInt( //$$ 100 @@ -81,7 +82,8 @@ class EntityLivingBaseHook(val entity: LivingEntity) { //$$ } //#endif - //#if MC==10809 + //#if MC>12000 + //#else //$$fun isChild(cir: CallbackInfoReturnable) { //$$ cir.returnValue = isSmol //$$} From 46d32ba7ec3cd860dd488aad2dcd321b7f1d4aaa Mon Sep 17 00:00:00 2001 From: penguin Date: Sat, 26 Jul 2025 12:09:42 -0400 Subject: [PATCH 8/9] changed 1.8 to reflect 1.21 implementation (no by lazy) --- .../hooks/entity/EntityLivingBaseHook.kt | 29 +++++++------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/entity/EntityLivingBaseHook.kt b/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/entity/EntityLivingBaseHook.kt index 3c1ecb697..33f18157c 100644 --- a/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/entity/EntityLivingBaseHook.kt +++ b/mod/src/main/kotlin/gg/skytils/skytilsmod/mixins/hooks/entity/EntityLivingBaseHook.kt @@ -17,25 +17,22 @@ */ package gg.skytils.skytilsmod.mixins.hooks.entity +//#if MC>12000 import gg.skytils.skytilsmod.Skytils import gg.skytils.skytilsmod.features.impl.dungeons.WitherKingDragons +import gg.skytils.skytilsmod.mixins.transformers.renderer.MixinPlayerEntityRenderer import gg.skytils.skytilsmod.utils.SuperSecretSettings import gg.skytils.skytilsmod.utils.Utils +import gg.skytils.skytilsmod.utils.Utils.inSkyblock import net.minecraft.client.network.ClientPlayerEntity +import net.minecraft.client.render.entity.state.PlayerEntityRenderState import net.minecraft.entity.LivingEntity -import net.minecraft.entity.player.PlayerEntity import net.minecraft.entity.effect.StatusEffect -import net.minecraft.particle.ParticleType -import net.minecraft.potion.Potions -import net.minecraft.world.World +import net.minecraft.entity.effect.StatusEffects import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable import java.awt.Color import kotlin.random.Random -//#if MC>12000 -import net.minecraft.entity.effect.StatusEffects -import net.minecraft.particle.ParticleTypes - //#endif class EntityLivingBaseHook(val entity: LivingEntity) { @@ -45,15 +42,11 @@ class EntityLivingBaseHook(val entity: LivingEntity) { //#if MC>12000 //#else - //$$ val isBreefing by lazy { - //$$ entity.name.string == "Breefing" && (SuperSecretSettings.breefingDog || Random.nextInt( - //$$ 100 - //$$ ) < 3) - //$$ } - //$$ - //$$ val isSmol by lazy { - //$$ Utils.inSkyblock && entity is PlayerEntity && (SuperSecretSettings.smolPeople || isBreefing) - //$$ } + //$$fun isSmol(): Boolean { + //$$ val isBreefing = + //$$ entity.name.string == "Breefing" && (SuperSecretSettings.breefingDog || Random.nextInt(100) < 3) + //$$ return Utils.inSkyblock && (SuperSecretSettings.smolPeople || isBreefing) + //$$} //#endif //#if MC>12000 @@ -85,7 +78,7 @@ class EntityLivingBaseHook(val entity: LivingEntity) { //#if MC>12000 //#else //$$fun isChild(cir: CallbackInfoReturnable) { - //$$ cir.returnValue = isSmol + //$$ cir.returnValue = isSmol() //$$} //#endif } \ No newline at end of file From e7ff4ac8b0f847bcb1aff33339943f99d53100e7 Mon Sep 17 00:00:00 2001 From: penguin <136866320+P3nguinMinecraft@users.noreply.github.com> Date: Fri, 5 Sep 2025 22:44:05 -0400 Subject: [PATCH 9/9] change cond Co-authored-by: Sychic <47618543+Sychic@users.noreply.github.com> Signed-off-by: penguin <136866320+P3nguinMinecraft@users.noreply.github.com> --- .../mixins/transformers/entity/MixinEntityLivingBase.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/entity/MixinEntityLivingBase.java b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/entity/MixinEntityLivingBase.java index e9ac246db..5c3bf29ed 100644 --- a/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/entity/MixinEntityLivingBase.java +++ b/mod/src/main/java/gg/skytils/skytilsmod/mixins/transformers/entity/MixinEntityLivingBase.java @@ -82,8 +82,7 @@ private boolean spawnParticle(World instance, Entity entity, byte b) { //#endif } - //#if MC>12000 - //#else + //#if MC==10809 //$$ @Inject(method = "isBaby", at = @At("HEAD"), cancellable = true) //$$ private void setChildState(CallbackInfoReturnable cir) { //$$ hook.isChild(cir);