diff --git a/src/main/java/net/aspw/client/features/module/ModuleManager.kt b/src/main/java/net/aspw/client/features/module/ModuleManager.kt index 49b04e77..3daef0d9 100644 --- a/src/main/java/net/aspw/client/features/module/ModuleManager.kt +++ b/src/main/java/net/aspw/client/features/module/ModuleManager.kt @@ -7,7 +7,6 @@ import net.aspw.client.event.Listenable import net.aspw.client.features.command.impl.ModuleCommand import net.aspw.client.features.module.impl.combat.* import net.aspw.client.features.module.impl.exploit.* -import net.aspw.client.features.module.impl.other.SnakeGame import net.aspw.client.features.module.impl.movement.* import net.aspw.client.features.module.impl.other.* import net.aspw.client.features.module.impl.player.* diff --git a/src/main/java/net/aspw/client/features/module/impl/combat/KillAura.kt b/src/main/java/net/aspw/client/features/module/impl/combat/KillAura.kt index b2930214..f4149024 100644 --- a/src/main/java/net/aspw/client/features/module/impl/combat/KillAura.kt +++ b/src/main/java/net/aspw/client/features/module/impl/combat/KillAura.kt @@ -95,7 +95,7 @@ class KillAura : Module() { } // Modes - val rotations = ListValue("RotationMode", arrayOf("Undetectable", "Standard", "Zero", "None"), "Undetectable") + val rotations = ListValue("RotationMode", arrayOf("Standard", "Zero", "None"), "Standard") // Turn Speed private val maxTurnSpeed: FloatValue = @@ -148,11 +148,6 @@ class KillAura : Module() { private val noInventoryAttackValue = BoolValue("NoInvAttack", false) private val checkSprintValue = BoolValue("StopSprint", false) - private val throughWallsValue = BoolValue( - "No-Walls", - false - ) { rotations.get().equals("undetectable", true) } - private val randomValue = BoolValue("Random", true) { rotations.get().equals("undetectable", true) } private val multiCombo = BoolValue("MultiCombo", false) private val amountValue = IntegerValue("Multi-Packet", 5, 0, 20, "x") { multiCombo.get() } @@ -322,9 +317,7 @@ class KillAura : Module() { } fun update() { - if (cancelRun || (noInventoryAttackValue.get() && (mc.currentScreen is GuiContainer || - System.currentTimeMillis() - containerOpen < 200)) - ) + if (cancelRun) return // Update target @@ -420,7 +413,7 @@ class KillAura : Module() { } private fun updateKA() { - if (clickOnly.get() && !mc.gameSettings.keyBindAttack.isKeyDown || mc.thePlayer.isRiding) return + if (clickOnly.get() && !mc.gameSettings.keyBindAttack.isKeyDown || mc.thePlayer.isRiding || noInventoryAttackValue.get() && mc.currentScreen is GuiContainer) return if (cancelRun) { target = null @@ -430,16 +423,6 @@ class KillAura : Module() { return } - if (noInventoryAttackValue.get() && (mc.currentScreen is GuiContainer || - System.currentTimeMillis() - containerOpen < 200) - ) { - target = null - currentTarget = null - hitable = false - if (mc.currentScreen is GuiContainer) containerOpen = System.currentTimeMillis() - return - } - if (coolDownCheck.get() && CooldownHelper.getAttackCooldownProgress() < 1f) { return } @@ -517,20 +500,10 @@ class KillAura : Module() { return } - if (noInventoryAttackValue.get() && (mc.currentScreen is GuiContainer || - System.currentTimeMillis() - containerOpen < 200) - ) { - target = null - currentTarget = null - hitable = false - if (mc.currentScreen is GuiContainer) containerOpen = System.currentTimeMillis() - return - } - target ?: return if (espValue.get()) { - if (clickOnly.get() && !mc.gameSettings.keyBindAttack.isKeyDown || mc.thePlayer.isRiding) return + if (clickOnly.get() && !mc.gameSettings.keyBindAttack.isKeyDown || mc.thePlayer.isRiding || noInventoryAttackValue.get() && mc.currentScreen is GuiContainer) return GL11.glPushMatrix() GL11.glTranslated( target!!.lastTickPosX + (target!!.posX - target!!.lastTickPosX) * mc.timer.renderPartialTicks - mc.renderManager.renderPosX, @@ -859,7 +832,7 @@ class KillAura : Module() { * Update killaura rotations to enemy */ private fun updateRotations(entity: Entity): Boolean { - if (clickOnly.get() && !mc.gameSettings.keyBindAttack.isKeyDown || mc.thePlayer.isRiding) return false + if (clickOnly.get() && !mc.gameSettings.keyBindAttack.isKeyDown || mc.thePlayer.isRiding || noInventoryAttackValue.get() && mc.currentScreen is GuiContainer) return false if (rotations.get().equals("none", true)) return true val defRotation = getTargetRotation(entity) ?: return false @@ -882,6 +855,9 @@ class KillAura : Module() { private fun getTargetRotation(entity: Entity): Rotation? { val boundingBox = entity.entityBoundingBox if (rotations.get().equals("Standard", ignoreCase = true)) { + if (maxTurnSpeed.get() <= 0F) + return RotationUtils.serverRotation + val limitedRotation = RotationUtils.serverRotation?.let { RotationUtils.limitAngleChange( it, @@ -889,7 +865,7 @@ class KillAura : Module() { boundingBox, RotationUtils.getCenter(entity.entityBoundingBox), false, - mc.thePlayer!!.getDistanceToEntityBox(entity) < rangeValue.get(), + true, maxRange ), (Math.random() * (maxTurnSpeed.get() - minTurnSpeed.get()) + minTurnSpeed.get()).toFloat() ) @@ -897,31 +873,9 @@ class KillAura : Module() { return limitedRotation } - if (rotations.get().equals("Undetectable", ignoreCase = true)) { + if (rotations.get().equals("Zero", ignoreCase = true)) { if (maxTurnSpeed.get() <= 0F) return RotationUtils.serverRotation - - val (_, rotation) = RotationUtils.searchCenter( - boundingBox, - false, - true, - false, - if (!throughWallsValue.get()) mc.thePlayer!!.getDistanceToEntityBox(entity) < rangeValue.get() else false, - maxRange, - if (randomValue.get()) 0.5F else 0F, - false - ) ?: return null - - val limitedRotation = RotationUtils.serverRotation?.let { - RotationUtils.limitAngleChange( - it, rotation, - (Math.random() * (maxTurnSpeed.get() - minTurnSpeed.get()) + minTurnSpeed.get()).toFloat() - ) - } - - return limitedRotation - } - if (rotations.get().equals("Zero", ignoreCase = true)) { return RotationUtils.calculate(getNearestPointBB(mc.thePlayer.getPositionEyes(1F), boundingBox)) } return RotationUtils.serverRotation @@ -1071,10 +1025,7 @@ class KillAura : Module() { * Range */ private val maxRange: Float - get() = if (!noHitCheck.get()) max( - rangeValue.get(), - if (!throughWallsValue.get()) rangeValue.get() else 0.0f - ) else max(rangeValue.get(), if (!throughWallsValue.get()) rangeValue.get() else 0.0f) + get() = max(rangeValue.get(), rangeValue.get()) /** * HUD Tag diff --git a/src/main/java/net/aspw/client/features/module/impl/exploit/Disabler.kt b/src/main/java/net/aspw/client/features/module/impl/exploit/Disabler.kt index cf69c7a9..b9c590a4 100644 --- a/src/main/java/net/aspw/client/features/module/impl/exploit/Disabler.kt +++ b/src/main/java/net/aspw/client/features/module/impl/exploit/Disabler.kt @@ -22,7 +22,6 @@ import net.aspw.client.value.ListValue import net.aspw.client.visual.font.semi.Fonts import net.aspw.client.visual.font.smooth.FontLoaders import net.aspw.client.visual.hud.element.elements.Notification -import net.minecraft.client.gui.GuiGameOver import net.minecraft.client.gui.ScaledResolution import net.minecraft.entity.Entity import net.minecraft.entity.item.EntityBoat diff --git a/src/main/java/net/aspw/client/features/module/impl/player/Blink.kt b/src/main/java/net/aspw/client/features/module/impl/player/Blink.kt index aca131ea..ca3bfd1f 100644 --- a/src/main/java/net/aspw/client/features/module/impl/player/Blink.kt +++ b/src/main/java/net/aspw/client/features/module/impl/player/Blink.kt @@ -1,6 +1,5 @@ package net.aspw.client.features.module.impl.player -import net.aspw.client.Client import net.aspw.client.event.EventTarget import net.aspw.client.event.PacketEvent import net.aspw.client.event.Render3DEvent @@ -19,7 +18,6 @@ import net.minecraft.network.play.client.* import net.minecraft.network.play.client.C03PacketPlayer.C04PacketPlayerPosition import net.minecraft.network.play.client.C03PacketPlayer.C06PacketPlayerPosLook import org.lwjgl.opengl.GL11 -import java.awt.Color import java.util.* import java.util.concurrent.LinkedBlockingQueue diff --git a/src/main/java/net/aspw/client/features/module/impl/visual/Cape.kt b/src/main/java/net/aspw/client/features/module/impl/visual/Cape.kt index f336ff1a..38614dca 100644 --- a/src/main/java/net/aspw/client/features/module/impl/visual/Cape.kt +++ b/src/main/java/net/aspw/client/features/module/impl/visual/Cape.kt @@ -25,6 +25,7 @@ class Cape : Module() { "Mode", arrayOf( "None", + "NightXSmooth", "NightX", "Delta", "Funny", @@ -52,21 +53,12 @@ class Cape : Module() { "Minecon2016", "MojangDeveloper", "Migrator", - "Vanilla" + "Vanilla", + "CherryBlossom" ), - "NightX" + "NightXSmooth" ) { customCape.get() } - val movingModeValue = ListValue( - "MovingMode", - arrayOf( - "Smooth", - "Vanilla" - ), - "Smooth" - ) - - private val capeCache = hashMapOf() fun getCapeLocation(value: String): ResourceLocation { if (capeCache[value.uppercase(Locale.getDefault())] == null) { @@ -82,6 +74,7 @@ class Cape : Module() { enum class CapeStyle(val location: ResourceLocation) { NONE(ResourceLocation("client/cape/none.png")), + NIGHTXSMOOTH(ResourceLocation("client/cape/nightxsmooth.png")), NIGHTX(ResourceLocation("client/cape/animation/nightx/base.png")), DELTA(ResourceLocation("client/cape/delta.png")), FUNNY(ResourceLocation("client/cape/funny.png")), @@ -108,7 +101,8 @@ class Cape : Module() { MINECON2016(ResourceLocation("client/cape/2016.png")), MOJANGDEVELOPER(ResourceLocation("client/cape/mojangdeveloper.png")), MIGRATOR(ResourceLocation("client/cape/migrator.png")), - VANILLA(ResourceLocation("client/cape/vanilla.png")) + VANILLA(ResourceLocation("client/cape/vanilla.png")), + CHERRYBLOSSOM(ResourceLocation("client/cape/cherryblossom.png")) } override val tag: String diff --git a/src/main/java/net/aspw/client/features/module/impl/visual/Interface.kt b/src/main/java/net/aspw/client/features/module/impl/visual/Interface.kt index 07d62c92..aaf82bf2 100644 --- a/src/main/java/net/aspw/client/features/module/impl/visual/Interface.kt +++ b/src/main/java/net/aspw/client/features/module/impl/visual/Interface.kt @@ -5,7 +5,6 @@ import net.aspw.client.event.* import net.aspw.client.features.module.Module import net.aspw.client.features.module.ModuleCategory import net.aspw.client.features.module.ModuleInfo -import net.aspw.client.protocol.ProtocolBase import net.aspw.client.util.AnimationUtils import net.aspw.client.util.network.Access import net.aspw.client.util.render.RenderUtils @@ -57,7 +56,7 @@ class Interface : Module() { val firstChar = inputString[0] val restOfString = inputString.substring(1) val showName = - if (Access.canConnect) "$firstChar§d$restOfString" + " §b[" + Client.CLIENT_VERSION + "] | FPS: " + Minecraft.getDebugFPS() + " | version: " + ProtocolBase.getManager().targetVersion.getName() else "$firstChar§d$restOfString" + " §b[" + Client.CLIENT_VERSION + "] | FPS: " + Minecraft.getDebugFPS() + " | version: " + ProtocolBase.getManager().targetVersion.getName() + " | Disconnected" + if (Access.canConnect) "$firstChar§d$restOfString" + " §b[" + Client.CLIENT_VERSION + "] | FPS: " + Minecraft.getDebugFPS() else "$firstChar§d$restOfString" + " §b[" + Client.CLIENT_VERSION + "] | FPS: " + Minecraft.getDebugFPS() FontLoaders.SF20.drawStringWithShadow( showName, 2.0, diff --git a/src/main/java/net/aspw/client/features/module/impl/visual/ItemPhysics.kt b/src/main/java/net/aspw/client/features/module/impl/visual/ItemPhysics.kt index 1f1613a9..014d20ad 100644 --- a/src/main/java/net/aspw/client/features/module/impl/visual/ItemPhysics.kt +++ b/src/main/java/net/aspw/client/features/module/impl/visual/ItemPhysics.kt @@ -3,7 +3,6 @@ package net.aspw.client.features.module.impl.visual import net.aspw.client.features.module.Module import net.aspw.client.features.module.ModuleCategory import net.aspw.client.features.module.ModuleInfo -import net.aspw.client.value.FloatValue @ModuleInfo(name = "ItemPhysics", spacedName = "Item Physics", description = "", category = ModuleCategory.VISUAL) class ItemPhysics : Module() \ No newline at end of file diff --git a/src/main/java/net/aspw/client/features/module/impl/visual/SilentView.kt b/src/main/java/net/aspw/client/features/module/impl/visual/SilentView.kt index 0c118860..8c5b104d 100644 --- a/src/main/java/net/aspw/client/features/module/impl/visual/SilentView.kt +++ b/src/main/java/net/aspw/client/features/module/impl/visual/SilentView.kt @@ -17,11 +17,13 @@ import net.aspw.client.value.ListValue array = false ) class SilentView : Module() { - val rotationMode = ListValue("Mode", arrayOf("Normal", "Old"), "Normal") - val rotatingCheckValue = BoolValue("RotatingCheck", false) - val bodyLockValue = BoolValue("BodyLock", false) + private val rotationMode = ListValue("Mode", arrayOf("Fast", "Smooth"), "Fast") + private val bodyLockValue = BoolValue("BodyLock", false) { rotationMode.get().equals("smooth", true) } var playerYaw: Float? = null + var pitchRotating = false + var bodyLocked = false + var oldRotating = false companion object { @JvmStatic @@ -36,24 +38,44 @@ class SilentView : Module() { } } + override fun onDisable() { + playerYaw = null + pitchRotating = false + bodyLocked = false + oldRotating = false + headPitch = 0f + prevHeadPitch = 0f + } + @EventTarget fun onMotion(event: MotionEvent) { - if (mc.thePlayer == null) return - if (RotationUtils.targetRotation == null && rotatingCheckValue.get() || !rotatingCheckValue.get()) { - when (rotationMode.get().lowercase()) { - "normal" -> { - prevHeadPitch = headPitch - headPitch = RotationUtils.serverRotation?.pitch!! - playerYaw = RotationUtils.serverRotation?.yaw!! - } - - "old" -> { - if (mc.thePlayer.ticksExisted % 10 == 0) { - prevHeadPitch = headPitch - headPitch = RotationUtils.serverRotation?.pitch!! - playerYaw = RotationUtils.serverRotation?.yaw!! - } - } + if (mc.thePlayer == null || RotationUtils.targetRotation == null) { + playerYaw = null + pitchRotating = false + bodyLocked = false + oldRotating = false + headPitch = 0f + prevHeadPitch = 0f + return + } + + when (rotationMode.get().lowercase()) { + "fast" -> { + prevHeadPitch = headPitch + headPitch = RotationUtils.serverRotation?.pitch!! + pitchRotating = true + oldRotating = true + mc.thePlayer.renderYawOffset = RotationUtils.serverRotation?.yaw!! + mc.thePlayer.rotationYawHead = RotationUtils.serverRotation?.yaw!! + } + + "smooth" -> { + prevHeadPitch = headPitch + headPitch = RotationUtils.serverRotation?.pitch!! + pitchRotating = true + if (bodyLockValue.get()) + bodyLocked = true + playerYaw = RotationUtils.serverRotation?.yaw!! } } } diff --git a/src/main/java/net/aspw/client/injection/forge/mixins/block/MixinBlock.java b/src/main/java/net/aspw/client/injection/forge/mixins/block/MixinBlock.java index bdfe6cb5..4095208b 100644 --- a/src/main/java/net/aspw/client/injection/forge/mixins/block/MixinBlock.java +++ b/src/main/java/net/aspw/client/injection/forge/mixins/block/MixinBlock.java @@ -3,7 +3,6 @@ import net.aspw.client.Client; import net.aspw.client.event.BlockBBEvent; import net.aspw.client.features.module.impl.combat.Criticals; -import net.aspw.client.features.module.impl.combat.KillAura; import net.aspw.client.features.module.impl.exploit.NoMouseIntersect; import net.aspw.client.features.module.impl.movement.NoFall; import net.aspw.client.features.module.impl.visual.XRay; @@ -120,9 +119,8 @@ private void shouldSideBeRendered(CallbackInfoReturnable callbackInfoRe @Inject(method = "isCollidable", at = @At("HEAD"), cancellable = true) private void isCollidable(CallbackInfoReturnable callbackInfoReturnable) { final NoMouseIntersect noMouseIntersect = Objects.requireNonNull(Client.moduleManager.getModule(NoMouseIntersect.class)); - final KillAura killAura = Objects.requireNonNull(Client.moduleManager.getModule(KillAura.class)); - if (noMouseIntersect.getState() && !(noMouseIntersect.getBlockValue().get() == Block.getIdFromBlock((Block) (Object) this)) || killAura.getState() && killAura.getTarget() != null) + if (noMouseIntersect.getState() && !(noMouseIntersect.getBlockValue().get() == Block.getIdFromBlock((Block) (Object) this))) callbackInfoReturnable.setReturnValue(false); } diff --git a/src/main/java/net/aspw/client/injection/forge/mixins/entity/MixinEntity.java b/src/main/java/net/aspw/client/injection/forge/mixins/entity/MixinEntity.java index 17f88610..b95557f0 100644 --- a/src/main/java/net/aspw/client/injection/forge/mixins/entity/MixinEntity.java +++ b/src/main/java/net/aspw/client/injection/forge/mixins/entity/MixinEntity.java @@ -3,7 +3,6 @@ import net.aspw.client.Client; import net.aspw.client.event.StrafeEvent; import net.aspw.client.features.module.impl.combat.HitBox; -import net.aspw.client.features.module.impl.movement.Flight; import net.aspw.client.protocol.ProtocolBase; import net.aspw.client.util.EntityUtils; import net.aspw.client.util.MinecraftInstance; diff --git a/src/main/java/net/aspw/client/injection/forge/mixins/entity/MixinEntityLivingBase.java b/src/main/java/net/aspw/client/injection/forge/mixins/entity/MixinEntityLivingBase.java index f95fe871..061d71e4 100644 --- a/src/main/java/net/aspw/client/injection/forge/mixins/entity/MixinEntityLivingBase.java +++ b/src/main/java/net/aspw/client/injection/forge/mixins/entity/MixinEntityLivingBase.java @@ -29,9 +29,7 @@ import org.spongepowered.asm.mixin.injection.ModifyConstant; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; -import java.util.Iterator; import java.util.Objects; /** @@ -163,21 +161,21 @@ public void onLivingUpdate() { protected float updateDistance(float p_1101461, float p_1101462) { float rotationYaw = this.rotationYaw; final SilentView silentView = Objects.requireNonNull(Client.moduleManager.getModule(SilentView.class)); - if ((silentView.getRotationMode().get().equals("Normal") || silentView.getRotationMode().get().equals("Old")) && silentView.getState() && silentView.getPlayerYaw() != null && (EntityLivingBase) (Object) this instanceof EntityPlayerSP) { - if (this.swingProgress > 0F && !silentView.getBodyLockValue().get()) { + if (silentView.getState() && silentView.getPlayerYaw() != null && (EntityLivingBase) (Object) this instanceof EntityPlayerSP) { + if (this.swingProgress > 0F && !silentView.getBodyLocked()) { p_1101461 = silentView.getPlayerYaw(); } rotationYaw = silentView.getPlayerYaw(); rotationYawHead = silentView.getPlayerYaw(); } float f = MathHelper.wrapAngleTo180_float(p_1101461 - this.renderYawOffset); - if ((silentView.getRotationMode().get().equals("Normal") || silentView.getRotationMode().get().equals("Old")) && silentView.getBodyLockValue().get() && silentView.getState() && silentView.getPlayerYaw() != null && (EntityLivingBase) (Object) this instanceof EntityPlayerSP) + if (silentView.getBodyLocked() && silentView.getState() && silentView.getPlayerYaw() != null && (EntityLivingBase) (Object) this instanceof EntityPlayerSP) this.renderYawOffset += f; else this.renderYawOffset += f * 0.3F; float f1 = MathHelper.wrapAngleTo180_float(rotationYaw - this.renderYawOffset); boolean flag = f1 < 90.0F || f1 >= 90.0F; - if ((silentView.getRotationMode().get().equals("Normal") || silentView.getRotationMode().get().equals("Old")) && silentView.getBodyLockValue().get() && silentView.getState() && silentView.getPlayerYaw() != null && (EntityLivingBase) (Object) this instanceof EntityPlayerSP) { + if (silentView.getBodyLocked() && silentView.getState() && silentView.getPlayerYaw() != null && (EntityLivingBase) (Object) this instanceof EntityPlayerSP) { f1 = 0.0F; } diff --git a/src/main/java/net/aspw/client/injection/forge/mixins/entity/MixinEntityLivingBaseFix.java b/src/main/java/net/aspw/client/injection/forge/mixins/entity/MixinEntityLivingBaseFix.java new file mode 100644 index 00000000..964b7d48 --- /dev/null +++ b/src/main/java/net/aspw/client/injection/forge/mixins/entity/MixinEntityLivingBaseFix.java @@ -0,0 +1,25 @@ +package net.aspw.client.injection.forge.mixins.entity; + +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +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.CallbackInfoReturnable; + +@Mixin(EntityLivingBase.class) +public abstract class MixinEntityLivingBaseFix extends Entity { + + public MixinEntityLivingBaseFix(World p_i1582_1_) { + super(p_i1582_1_); + } + + @Inject(method = "getLook", at = @At("HEAD"), cancellable = true) + private void getLook(float partialTicks, CallbackInfoReturnable callbackInfoReturnable) { + if (((EntityLivingBase) (Object) this) instanceof EntityPlayerSP) + callbackInfoReturnable.setReturnValue(super.getLook(partialTicks)); + } +} \ No newline at end of file diff --git a/src/main/java/net/aspw/client/injection/forge/mixins/entity/MixinEntityPlayer.java b/src/main/java/net/aspw/client/injection/forge/mixins/entity/MixinEntityPlayer.java index 5f8567cd..822af42e 100644 --- a/src/main/java/net/aspw/client/injection/forge/mixins/entity/MixinEntityPlayer.java +++ b/src/main/java/net/aspw/client/injection/forge/mixins/entity/MixinEntityPlayer.java @@ -9,7 +9,6 @@ import net.aspw.client.util.CooldownHelper; import net.aspw.client.util.MinecraftInstance; import net.minecraft.client.Minecraft; -import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.PlayerCapabilities; @@ -21,7 +20,6 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.Objects; diff --git a/src/main/java/net/aspw/client/injection/forge/mixins/gui/MixinGuiIngameForge.java b/src/main/java/net/aspw/client/injection/forge/mixins/gui/MixinGuiIngameForge.java index bf5a2507..a741f1eb 100644 --- a/src/main/java/net/aspw/client/injection/forge/mixins/gui/MixinGuiIngameForge.java +++ b/src/main/java/net/aspw/client/injection/forge/mixins/gui/MixinGuiIngameForge.java @@ -48,6 +48,28 @@ public abstract class MixinGuiIngameForge extends MixinGuiInGame { @Shadow(remap = false) protected abstract void post(ElementType type); + @Inject( + method = "renderChat", + slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraftforge/fml/common/eventhandler/EventBus;post(Lnet/minecraftforge/fml/common/eventhandler/Event;)Z", ordinal = 0, remap = false)), + at = @At(value = "RETURN", ordinal = 0), + remap = false + ) + private void fixProfilerSectionNotEnding(int width, int height, CallbackInfo ci) { + final Minecraft mc = MinecraftInstance.mc; + if (mc.mcProfiler.getNameOfLastSection().endsWith("chat")) + mc.mcProfiler.endSection(); + } + + @Inject(method = "renderExperience", at = @At("HEAD"), remap = false) + private void enableExperienceAlpha(int filled, int top, CallbackInfo ci) { + GlStateManager.enableAlpha(); + } + + @Inject(method = "renderExperience", at = @At("RETURN"), remap = false) + private void disableExperienceAlpha(int filled, int top, CallbackInfo ci) { + GlStateManager.disableAlpha(); + } + /** * Render player list. * diff --git a/src/main/java/net/aspw/client/injection/forge/mixins/gui/MixinGuiOverlayDebug.java b/src/main/java/net/aspw/client/injection/forge/mixins/gui/MixinGuiOverlayDebug.java new file mode 100644 index 00000000..941deff4 --- /dev/null +++ b/src/main/java/net/aspw/client/injection/forge/mixins/gui/MixinGuiOverlayDebug.java @@ -0,0 +1,32 @@ +package net.aspw.client.injection.forge.mixins.gui; + +import net.aspw.client.protocol.ProtocolBase; +import net.minecraft.client.gui.GuiOverlayDebug; +import net.raphimc.vialegacy.api.LegacyProtocolVersion; +import net.raphimc.vialoader.util.VersionEnum; +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.CallbackInfoReturnable; + +import java.util.List; + +@Mixin(GuiOverlayDebug.class) +public class MixinGuiOverlayDebug { + + @Inject(method = "getDebugInfoRight", at = @At(value = "TAIL")) + public void addViaForgeVersion(CallbackInfoReturnable> cir) { + final ProtocolBase common = ProtocolBase.getManager(); + final VersionEnum version = ProtocolBase.getManager().getTargetVersion(); + + cir.getReturnValue().add(""); + + int protocolVersion = version.getVersion(); + if (version.isOlderThanOrEqualTo(VersionEnum.r1_6_4)) + protocolVersion = LegacyProtocolVersion.getRealProtocolVersion(protocolVersion); + + if (!common.getPlatform().isSingleplayer().get()) + cir.getReturnValue().add("Protocol: " + version.getName() + " (" + protocolVersion + ")"); + else cir.getReturnValue().add("Protocol: 1.8.x (47)"); + } +} diff --git a/src/main/java/net/aspw/client/injection/forge/mixins/network/MixinNetHandlerLoginClient.java b/src/main/java/net/aspw/client/injection/forge/mixins/network/MixinNetHandlerLoginClient.java new file mode 100644 index 00000000..0d59d0c3 --- /dev/null +++ b/src/main/java/net/aspw/client/injection/forge/mixins/network/MixinNetHandlerLoginClient.java @@ -0,0 +1,36 @@ +package net.aspw.client.injection.forge.mixins.network; + +import com.mojang.authlib.GameProfile; +import com.mojang.authlib.exceptions.AuthenticationException; +import com.mojang.authlib.minecraft.MinecraftSessionService; +import com.viaversion.viaversion.api.connection.UserConnection; +import net.aspw.client.protocol.ProtocolBase; +import net.minecraft.client.network.NetHandlerLoginClient; +import net.minecraft.network.NetworkManager; +import net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.storage.ProtocolMetadataStorage; +import net.raphimc.vialoader.util.VersionEnum; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@SuppressWarnings("DataFlowIssue") +@Mixin(NetHandlerLoginClient.class) +public class MixinNetHandlerLoginClient { + + @Shadow + @Final + private NetworkManager networkManager; + + @Redirect(method = "handleEncryptionRequest", at = @At(value = "INVOKE", target = "Lcom/mojang/authlib/minecraft/MinecraftSessionService;joinServer(Lcom/mojang/authlib/GameProfile;Ljava/lang/String;Ljava/lang/String;)V"), remap = false) + public void onlyJoinServerIfPremium(MinecraftSessionService instance, GameProfile profile, String authenticationToken, String serverId) throws AuthenticationException { + if (ProtocolBase.getManager().getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_6_4)) { + final UserConnection user = networkManager.channel().attr(ProtocolBase.LOCAL_VIA_USER).get(); + if (user != null && user.has(ProtocolMetadataStorage.class) && !user.get(ProtocolMetadataStorage.class).authenticate) { + return; + } + } + instance.joinServer(profile, authenticationToken, serverId); + } +} \ No newline at end of file diff --git a/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinLayerArmorBase.java b/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinLayerArmorBase.java index 6fa1ef53..c781cb35 100644 --- a/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinLayerArmorBase.java +++ b/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinLayerArmorBase.java @@ -2,9 +2,7 @@ import net.aspw.client.Client; import net.aspw.client.features.module.impl.visual.CustomModel; -import net.aspw.client.features.module.impl.visual.SilentView; import net.aspw.client.util.MinecraftInstance; -import net.aspw.client.util.RotationUtils; import net.minecraft.client.renderer.entity.layers.LayerArmorBase; import net.minecraft.entity.EntityLivingBase; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinLayerCape.java b/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinLayerCape.java index 6aaa17ca..4284406d 100644 --- a/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinLayerCape.java +++ b/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinLayerCape.java @@ -2,6 +2,7 @@ import net.aspw.client.Client; import net.aspw.client.features.module.impl.visual.Cape; +import net.aspw.client.features.module.impl.visual.SilentView; import net.aspw.client.util.MinecraftInstance; import net.aspw.client.util.render.RenderUtils; import net.minecraft.client.entity.AbstractClientPlayer; @@ -38,141 +39,136 @@ public MixinLayerCape(RenderPlayer playerRenderer) { @Overwrite public void doRenderLayer(final AbstractClientPlayer entitylivingbaseIn, final float p_177141_2_, final float p_177141_3_, final float partialTicks, final float p_177141_5_, final float p_177141_6_, final float p_177141_7_, final float scale) { final Cape cape = Objects.requireNonNull(Client.moduleManager.getModule(Cape.class)); + final SilentView silentView = Objects.requireNonNull(Client.moduleManager.getModule(SilentView.class)); if (!entitylivingbaseIn.isInvisible() && entitylivingbaseIn.isWearing(EnumPlayerModelParts.CAPE)) { if (entitylivingbaseIn == MinecraftInstance.mc.thePlayer) { if (entitylivingbaseIn.getLocationCape() != null || cape.getCustomCape().get()) { - switch (cape.getMovingModeValue().get()) { - case "Smooth": { - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - if (cape.getCustomCape().get() && cape.getStyleValue().get().equals("NightX")) - this.playerRenderer.bindTexture(new ResourceLocation("client/cape/animation/nightx/base.png")); - else this.playerRenderer.bindTexture(entitylivingbaseIn.getLocationCape()); - GlStateManager.pushMatrix(); - GlStateManager.translate(0.0F, 0.0F, 0.125F); - final double d0 = entitylivingbaseIn.prevChasingPosX + (entitylivingbaseIn.chasingPosX - entitylivingbaseIn.prevChasingPosX) * (double) partialTicks - (entitylivingbaseIn.prevPosX + (entitylivingbaseIn.posX - entitylivingbaseIn.prevPosX) * (double) partialTicks); - final double d1 = entitylivingbaseIn.prevChasingPosY + (entitylivingbaseIn.chasingPosY - entitylivingbaseIn.prevChasingPosY) * (double) partialTicks - (entitylivingbaseIn.prevPosY + (entitylivingbaseIn.posY - entitylivingbaseIn.prevPosY) * (double) partialTicks); - final double d2 = entitylivingbaseIn.prevChasingPosZ + (entitylivingbaseIn.chasingPosZ - entitylivingbaseIn.prevChasingPosZ) * (double) partialTicks - (entitylivingbaseIn.prevPosZ + (entitylivingbaseIn.posZ - entitylivingbaseIn.prevPosZ) * (double) partialTicks); - final float f = entitylivingbaseIn.prevRotationYaw + (entitylivingbaseIn.rotationYaw - entitylivingbaseIn.prevRotationYaw) * partialTicks; - final double d3 = MathHelper.sin(f * (float) Math.PI / 180.0F); - final double d4 = -MathHelper.cos(f * (float) Math.PI / 180.0F); - float f1 = (float) d1 * 10.0F; - f1 = MathHelper.clamp_float(f1, -6.0F, 32.0F); - float f2 = (float) (d0 * d3 + d2 * d4) * 100.0F; - final float f3 = (float) (d0 * d4 - d2 * d3) * 100.0F; - - if (f2 < 0.0F) { - f2 = 0.0F; - } - - if (f2 > 165.0F) { - f2 = 165.0F; - } - - if (f1 < -5.0F) { - f1 = -5.0F; - } - - final float f4 = entitylivingbaseIn.prevCameraYaw + (entitylivingbaseIn.cameraYaw - entitylivingbaseIn.prevCameraYaw) * partialTicks; - f1 = f1 + MathHelper.sin((entitylivingbaseIn.prevDistanceWalkedModified + (entitylivingbaseIn.distanceWalkedModified - entitylivingbaseIn.prevDistanceWalkedModified) * partialTicks) * 6.0F) * 32.0F * f4; - - if (entitylivingbaseIn.isSneaking()) { - f1 += 25.0F; - GlStateManager.translate(0.0F, 0.142F, -0.0178F); - } - - GlStateManager.rotate(6.0F + f2 / 2.0F + f1, 1.0F, 0.0F, 0.0F); - GlStateManager.rotate(f3 / 2.0F, 0.0F, 0.0F, 1.0F); - GlStateManager.rotate(-f3 / 2.0F, 0.0F, 1.0F, 0.0F); - GlStateManager.rotate(180.0F, 0.0F, 1.0F, 0.0F); + if (silentView.getPlayerYaw() != null || silentView.getOldRotating()) { + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); + if (cape.getCustomCape().get() && cape.getStyleValue().get().equals("NightX")) + this.playerRenderer.bindTexture(new ResourceLocation("client/cape/animation/nightx/base.png")); + else this.playerRenderer.bindTexture(entitylivingbaseIn.getLocationCape()); + GlStateManager.pushMatrix(); + GlStateManager.translate(0.0F, 0.0F, 0.125F); + final double d0 = entitylivingbaseIn.prevChasingPosX + (entitylivingbaseIn.chasingPosX - entitylivingbaseIn.prevChasingPosX) * (double) partialTicks - (entitylivingbaseIn.prevPosX + (entitylivingbaseIn.posX - entitylivingbaseIn.prevPosX) * (double) partialTicks); + final double d1 = entitylivingbaseIn.prevChasingPosY + (entitylivingbaseIn.chasingPosY - entitylivingbaseIn.prevChasingPosY) * (double) partialTicks - (entitylivingbaseIn.prevPosY + (entitylivingbaseIn.posY - entitylivingbaseIn.prevPosY) * (double) partialTicks); + final double d2 = entitylivingbaseIn.prevChasingPosZ + (entitylivingbaseIn.chasingPosZ - entitylivingbaseIn.prevChasingPosZ) * (double) partialTicks - (entitylivingbaseIn.prevPosZ + (entitylivingbaseIn.posZ - entitylivingbaseIn.prevPosZ) * (double) partialTicks); + final float f = entitylivingbaseIn.prevRotationYaw + (entitylivingbaseIn.rotationYaw - entitylivingbaseIn.prevRotationYaw) * partialTicks; + final double d3 = MathHelper.sin(f * (float) Math.PI / 180.0F); + final double d4 = -MathHelper.cos(f * (float) Math.PI / 180.0F); + float f1 = (float) d1 * 10.0F; + f1 = MathHelper.clamp_float(f1, -6.0F, 32.0F); + float f2 = (float) (d0 * d3 + d2 * d4) * 100.0F; + final float f3 = (float) (d0 * d4 - d2 * d3) * 100.0F; + + if (f2 < 0.0F) { + f2 = 0.0F; + } + + if (f2 > 165.0F) { + f2 = 165.0F; + } + + if (f1 < -5.0F) { + f1 = -5.0F; + } + + final float f4 = entitylivingbaseIn.prevCameraYaw + (entitylivingbaseIn.cameraYaw - entitylivingbaseIn.prevCameraYaw) * partialTicks; + f1 = f1 + MathHelper.sin((entitylivingbaseIn.prevDistanceWalkedModified + (entitylivingbaseIn.distanceWalkedModified - entitylivingbaseIn.prevDistanceWalkedModified) * partialTicks) * 6.0F) * 32.0F * f4; + + if (entitylivingbaseIn.isSneaking()) { + f1 += 25.0F; + GlStateManager.translate(0.0F, 0.142F, -0.0178F); + } + + GlStateManager.rotate(6.0F + f2 / 2.0F + f1, 1.0F, 0.0F, 0.0F); + GlStateManager.rotate(f3 / 2.0F, 0.0F, 0.0F, 1.0F); + GlStateManager.rotate(-f3 / 2.0F, 0.0F, 1.0F, 0.0F); + GlStateManager.rotate(180.0F, 0.0F, 1.0F, 0.0F); + this.playerRenderer.getMainModel().renderCape(0.0625F); + if (cape.getCustomCape().get() && (cape.getStyleValue().get().equals("Exhibition") || cape.getStyleValue().get().equals("NightX"))) { + if (cape.getStyleValue().get().equals("Exhibition")) + this.playerRenderer.bindTexture(new ResourceLocation("client/cape/animation/exhibition/overlay.png")); + if (cape.getStyleValue().get().equals("NightX")) + this.playerRenderer.bindTexture(entitylivingbaseIn.getLocationCape()); + float alpha; + float red; + int rgb; + float green; + rgb = RenderUtils.skyRainbow(0, 0.7f, 1).getRGB(); + alpha = 0.3F; + red = (float) (rgb >> 16 & 255) / 255.0F; + green = (float) (rgb >> 8 & 255) / 255.0F; + float blue = (float) (rgb & 255) / 255.0F; + if (cape.getStyleValue().get().equals("Exhibition")) + GlStateManager.color(red, green, blue, alpha); this.playerRenderer.getMainModel().renderCape(0.0625F); - if (cape.getCustomCape().get() && (cape.getStyleValue().get().equals("Exhibition") || cape.getStyleValue().get().equals("NightX"))) { - if (cape.getStyleValue().get().equals("Exhibition")) - this.playerRenderer.bindTexture(new ResourceLocation("client/cape/animation/exhibition/overlay.png")); - if (cape.getStyleValue().get().equals("NightX")) - this.playerRenderer.bindTexture(entitylivingbaseIn.getLocationCape()); - float alpha; - float red; - int rgb; - float green; - rgb = RenderUtils.skyRainbow(0, 0.7f, 1).getRGB(); - alpha = 0.3F; - red = (float) (rgb >> 16 & 255) / 255.0F; - green = (float) (rgb >> 8 & 255) / 255.0F; - float blue = (float) (rgb & 255) / 255.0F; - if (cape.getStyleValue().get().equals("Exhibition")) - GlStateManager.color(red, green, blue, alpha); - this.playerRenderer.getMainModel().renderCape(0.0625F); - GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); - } - GlStateManager.popMatrix(); - break; + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); + } + GlStateManager.popMatrix(); + } else { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + if (cape.getCustomCape().get() && cape.getStyleValue().get().equals("NightX")) + this.playerRenderer.bindTexture(new ResourceLocation("client/cape/animation/nightx/base.png")); + else this.playerRenderer.bindTexture(entitylivingbaseIn.getLocationCape()); + GL11.glPushMatrix(); + GL11.glTranslatef(0.0F, 0.0F, 0.125F); + double d0 = entitylivingbaseIn.prevChasingPosX + (entitylivingbaseIn.chasingPosX - entitylivingbaseIn.prevChasingPosX) * (double) partialTicks - (entitylivingbaseIn.prevPosX + (entitylivingbaseIn.posX - entitylivingbaseIn.prevPosX) * (double) partialTicks); + double d1 = entitylivingbaseIn.prevChasingPosY + (entitylivingbaseIn.chasingPosY - entitylivingbaseIn.prevChasingPosY) * (double) partialTicks - (entitylivingbaseIn.prevPosY + (entitylivingbaseIn.posY - entitylivingbaseIn.prevPosY) * (double) partialTicks); + double d2 = entitylivingbaseIn.prevChasingPosZ + (entitylivingbaseIn.chasingPosZ - entitylivingbaseIn.prevChasingPosZ) * (double) partialTicks - (entitylivingbaseIn.prevPosZ + (entitylivingbaseIn.posZ - entitylivingbaseIn.prevPosZ) * (double) partialTicks); + float f = entitylivingbaseIn.prevRenderYawOffset + (entitylivingbaseIn.renderYawOffset - entitylivingbaseIn.prevRenderYawOffset) * partialTicks; + double d3 = MathHelper.sin(f * 3.1415927F / 180.0F); + double d4 = -MathHelper.cos(f * 3.1415927F / 180.0F); + float f1 = (float) d1 * 10.0F; + f1 = MathHelper.clamp_float(f1, -6.0F, 32.0F); + float f2 = (float) (d0 * d3 + d2 * d4) * 100.0F; + float f3 = (float) (d0 * d4 - d2 * d3) * 100.0F; + + if (f2 < 0.0F) { + f2 = 0.0F; } - case "Vanilla": { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - if (cape.getCustomCape().get() && cape.getStyleValue().get().equals("NightX")) - this.playerRenderer.bindTexture(new ResourceLocation("client/cape/animation/nightx/base.png")); - else this.playerRenderer.bindTexture(entitylivingbaseIn.getLocationCape()); - GL11.glPushMatrix(); - GL11.glTranslatef(0.0F, 0.0F, 0.125F); - double d0 = entitylivingbaseIn.prevChasingPosX + (entitylivingbaseIn.chasingPosX - entitylivingbaseIn.prevChasingPosX) * (double) partialTicks - (entitylivingbaseIn.prevPosX + (entitylivingbaseIn.posX - entitylivingbaseIn.prevPosX) * (double) partialTicks); - double d1 = entitylivingbaseIn.prevChasingPosY + (entitylivingbaseIn.chasingPosY - entitylivingbaseIn.prevChasingPosY) * (double) partialTicks - (entitylivingbaseIn.prevPosY + (entitylivingbaseIn.posY - entitylivingbaseIn.prevPosY) * (double) partialTicks); - double d2 = entitylivingbaseIn.prevChasingPosZ + (entitylivingbaseIn.chasingPosZ - entitylivingbaseIn.prevChasingPosZ) * (double) partialTicks - (entitylivingbaseIn.prevPosZ + (entitylivingbaseIn.posZ - entitylivingbaseIn.prevPosZ) * (double) partialTicks); - float f = entitylivingbaseIn.prevRenderYawOffset + (entitylivingbaseIn.renderYawOffset - entitylivingbaseIn.prevRenderYawOffset) * partialTicks; - double d3 = MathHelper.sin(f * 3.1415927F / 180.0F); - double d4 = -MathHelper.cos(f * 3.1415927F / 180.0F); - float f1 = (float) d1 * 10.0F; - f1 = MathHelper.clamp_float(f1, -6.0F, 32.0F); - float f2 = (float) (d0 * d3 + d2 * d4) * 100.0F; - float f3 = (float) (d0 * d4 - d2 * d3) * 100.0F; - - if (f2 < 0.0F) { - f2 = 0.0F; - } - - if (f2 > 165.0F) { - f2 = 165.0F; - } - - if (f1 < -5.0F) { - f1 = -5.0F; - } - - float f4 = entitylivingbaseIn.prevCameraYaw + (entitylivingbaseIn.cameraYaw - entitylivingbaseIn.prevCameraYaw) * partialTicks; - f1 += MathHelper.sin((entitylivingbaseIn.prevDistanceWalkedModified + (entitylivingbaseIn.distanceWalkedModified - entitylivingbaseIn.prevDistanceWalkedModified) * partialTicks) * 6.0F) * 32.0F * f4; - - if (entitylivingbaseIn.isSneaking()) { - f1 += 25.0F; - GlStateManager.translate(0.0F, 0.142F, -0.0178F); - } - - GL11.glRotatef(6.0F + f2 / 2.0F + f1, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(f3 / 2.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-f3 / 2.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); + if (f2 > 165.0F) { + f2 = 165.0F; + } + + if (f1 < -5.0F) { + f1 = -5.0F; + } + + float f4 = entitylivingbaseIn.prevCameraYaw + (entitylivingbaseIn.cameraYaw - entitylivingbaseIn.prevCameraYaw) * partialTicks; + f1 += MathHelper.sin((entitylivingbaseIn.prevDistanceWalkedModified + (entitylivingbaseIn.distanceWalkedModified - entitylivingbaseIn.prevDistanceWalkedModified) * partialTicks) * 6.0F) * 32.0F * f4; + + if (entitylivingbaseIn.isSneaking()) { + f1 += 25.0F; + GlStateManager.translate(0.0F, 0.142F, -0.0178F); + } + + GL11.glRotatef(6.0F + f2 / 2.0F + f1, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(f3 / 2.0F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-f3 / 2.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); + this.playerRenderer.getMainModel().renderCape(0.0625F); + if (cape.getCustomCape().get() && (cape.getStyleValue().get().equals("Exhibition") || cape.getStyleValue().get().equals("NightX"))) { + if (cape.getStyleValue().get().equals("Exhibition")) + this.playerRenderer.bindTexture(new ResourceLocation("client/cape/animation/exhibition/overlay.png")); + if (cape.getStyleValue().get().equals("NightX")) + this.playerRenderer.bindTexture(entitylivingbaseIn.getLocationCape()); + float alpha; + float red; + int rgb; + float green; + rgb = RenderUtils.skyRainbow(0, 0.7f, 1).getRGB(); + alpha = 0.3F; + red = (float) (rgb >> 16 & 255) / 255.0F; + green = (float) (rgb >> 8 & 255) / 255.0F; + float blue = (float) (rgb & 255) / 255.0F; + if (cape.getStyleValue().get().equals("Exhibition")) + GL11.glColor4f(red, green, blue, alpha); this.playerRenderer.getMainModel().renderCape(0.0625F); - if (cape.getCustomCape().get() && (cape.getStyleValue().get().equals("Exhibition") || cape.getStyleValue().get().equals("NightX"))) { - if (cape.getStyleValue().get().equals("Exhibition")) - this.playerRenderer.bindTexture(new ResourceLocation("client/cape/animation/exhibition/overlay.png")); - if (cape.getStyleValue().get().equals("NightX")) - this.playerRenderer.bindTexture(entitylivingbaseIn.getLocationCape()); - float alpha; - float red; - int rgb; - float green; - rgb = RenderUtils.skyRainbow(0, 0.7f, 1).getRGB(); - alpha = 0.3F; - red = (float) (rgb >> 16 & 255) / 255.0F; - green = (float) (rgb >> 8 & 255) / 255.0F; - float blue = (float) (rgb & 255) / 255.0F; - if (cape.getStyleValue().get().equals("Exhibition")) - GL11.glColor4f(red, green, blue, alpha); - this.playerRenderer.getMainModel().renderCape(0.0625F); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - } - GL11.glPopMatrix(); - break; + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); } + GL11.glPopMatrix(); } } } else if (entitylivingbaseIn.getLocationCape() != null) { diff --git a/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinLayerSpiderEyes.java b/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinLayerSpiderEyes.java new file mode 100644 index 00000000..5ec702ff --- /dev/null +++ b/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinLayerSpiderEyes.java @@ -0,0 +1,19 @@ +package net.aspw.client.injection.forge.mixins.render; + +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.entity.layers.LayerSpiderEyes; +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; + +/** + * The type Mixin layer spider eyes. + */ +@Mixin(LayerSpiderEyes.class) +public class MixinLayerSpiderEyes { + @Inject(method = "doRenderLayer(Lnet/minecraft/entity/monster/EntitySpider;FFFFFFF)V", at = @At("TAIL")) + private void fixDepth(CallbackInfo ci) { + GlStateManager.depthMask(true); + } +} \ No newline at end of file diff --git a/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinLayerWitherAura.java b/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinLayerWitherAura.java new file mode 100644 index 00000000..c21b154f --- /dev/null +++ b/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinLayerWitherAura.java @@ -0,0 +1,19 @@ +package net.aspw.client.injection.forge.mixins.render; + +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.entity.layers.LayerWitherAura; +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; + +/** + * The type Mixin layer wither aura. + */ +@Mixin(LayerWitherAura.class) +public class MixinLayerWitherAura { + @Inject(method = "doRenderLayer(Lnet/minecraft/entity/boss/EntityWither;FFFFFFF)V", at = @At("TAIL")) + private void fixDepth(CallbackInfo ci) { + GlStateManager.depthMask(true); + } +} \ No newline at end of file diff --git a/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinModelBiped.java b/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinModelBiped.java index 4a100ba8..332ad4ae 100644 --- a/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinModelBiped.java +++ b/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinModelBiped.java @@ -7,7 +7,6 @@ import net.aspw.client.features.module.impl.visual.Animations; import net.aspw.client.features.module.impl.visual.SilentView; import net.aspw.client.util.MinecraftInstance; -import net.aspw.client.util.RotationUtils; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; @@ -100,7 +99,7 @@ private void revertSwordAnimation(float p_setRotationAngles1, float p_setRotatio final SilentView silentView = Objects.requireNonNull(Client.moduleManager.getModule(SilentView.class)); final KillAura killAura = Objects.requireNonNull(Client.moduleManager.getModule(KillAura.class)); final TPAura tpAura = Objects.requireNonNull(Client.moduleManager.getModule(TPAura.class)); - if (p_setRotationAngles7 instanceof EntityPlayer && p_setRotationAngles7.equals(MinecraftInstance.mc.thePlayer) && (silentView.getRotationMode().get().equals("Normal") || silentView.getRotationMode().get().equals("Old")) && silentView.getState() && (RotationUtils.targetRotation != null && silentView.getRotatingCheckValue().get() || !silentView.getRotatingCheckValue().get())) { + if (p_setRotationAngles7 instanceof EntityPlayer && p_setRotationAngles7.equals(MinecraftInstance.mc.thePlayer) && silentView.getState() && silentView.getPitchRotating()) { bipedHead.rotateAngleX = (float) Math.toRadians(SilentView.lerp(MinecraftInstance.mc.timer.renderPartialTicks, SilentView.getPrevHeadPitch(), SilentView.getHeadPitch())); } if (heldItemRight == 3) { diff --git a/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinRenderEntityItem.java b/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinRenderEntityItem.java index 4a9e22b2..316f20eb 100644 --- a/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinRenderEntityItem.java +++ b/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinRenderEntityItem.java @@ -63,14 +63,14 @@ private int func_177077_a(EntityItem itemIn, double p_177077_2_, double p_177077 GlStateManager.translate((float) p_177077_2_, (float) p_177077_4_ + f1 + 0.25F * f2, (float) p_177077_6_); if (flag || this.renderManager.options != null) { - float f3 = (((float) itemIn.getAge() + p_177077_8_) / 20.0F + itemIn.hoverStart) * (180F / (float) Math.PI); + float f3 = (((float) itemIn.getAge() + p_177077_8_) / 16.0F + itemIn.hoverStart) * (180F / (float) Math.PI); if (itemPhysics.getState()) { if (itemIn.onGround) { GL11.glRotatef(itemIn.rotationYaw, 0.0f, 1.0f, 0.0f); GL11.glRotatef(itemIn.rotationPitch + 90.0f, 1.0f, 0.0f, 0.0f); } else { for (int a = 0; a < 10; ++a) { - GL11.glRotatef(f3, 3.0f, 0.8f, 3.0f); + GL11.glRotatef(f3, 2.0f, 1.0f, 2.0f); } } } else { diff --git a/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinRenderPlayer.java b/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinRenderPlayer.java index 86794d90..dce318e6 100644 --- a/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinRenderPlayer.java +++ b/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinRenderPlayer.java @@ -4,13 +4,11 @@ import net.aspw.client.features.module.impl.visual.CustomModel; import net.aspw.client.util.MinecraftInstance; import net.minecraft.client.entity.AbstractClientPlayer; -import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.util.ResourceLocation; 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 org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.Objects; diff --git a/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinRendererLivingEntity.java b/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinRendererLivingEntity.java index e0d407eb..c97587c6 100644 --- a/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinRendererLivingEntity.java +++ b/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinRendererLivingEntity.java @@ -3,21 +3,14 @@ import net.aspw.client.Client; import net.aspw.client.features.api.PacketManager; import net.aspw.client.features.module.impl.visual.ESP; -import net.aspw.client.features.module.impl.visual.SilentView; import net.aspw.client.util.MinecraftInstance; -import net.aspw.client.util.RotationUtils; import net.minecraft.client.model.ModelBase; import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.entity.RendererLivingEntity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EnumPlayerModelParts; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.MathHelper; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.lwjgl.opengl.GL11; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; @@ -164,37 +157,6 @@ protected float getDeathMaxRotation(T p_getDeathMax @Shadow protected abstract void renderLayers(T entitylivingbaseIn, float p_177093_2_, float p_177093_3_, float partialTicks, float p_177093_5_, float p_177093_6_, float p_177093_7_, float p_177093_8_); - /** - * Rotate corpse. - * - * @param the type parameter - * @param p_rotateCorpse_1_ the p rotate corpse 1 - * @param p_rotateCorpse_2_ the p rotate corpse 2 - * @param p_rotateCorpse_3_ the p rotate corpse 3 - * @param p_rotateCorpse_4_ the p rotate corpse 4 - * @author As_pw - * @reason RotateCorpse - */ - @Overwrite - protected void rotateCorpse(T p_rotateCorpse_1_, float p_rotateCorpse_2_, float p_rotateCorpse_3_, float p_rotateCorpse_4_) { - GlStateManager.rotate(180.0F - p_rotateCorpse_3_, 0.0F, 1.0F, 0.0F); - if (p_rotateCorpse_1_.deathTime > 0) { - float f = ((float) p_rotateCorpse_1_.deathTime + p_rotateCorpse_4_ - 1.0F) / 20.0F * 1.6F; - f = MathHelper.sqrt_float(f); - if (f > 1.0F) { - f = 1.0F; - } - - GlStateManager.rotate(f * this.getDeathMaxRotation(p_rotateCorpse_1_), 0.0F, 0.0F, 1.0F); - } else { - String s = EnumChatFormatting.getTextWithoutFormattingCodes(p_rotateCorpse_1_.getName()); - if (s != null && ((EntityPlayer) p_rotateCorpse_1_).isWearing(EnumPlayerModelParts.CAPE)) { - GlStateManager.translate(0.0F, p_rotateCorpse_1_.height - 1.8F, 0.0F); - GlStateManager.rotate(0.0F, 0.0F, 0.0F, 1.0F); - } - } - } - @Inject(method = "doRender(Lnet/minecraft/entity/EntityLivingBase;DDDFF)V", at = @At("HEAD"), cancellable = true) private void injectChamsPre(T entity, double x, double y, double z, float entityYaw, float partialTicks, CallbackInfo callbackInfo) { if (PacketManager.shouldStopRender(entity)) diff --git a/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinTileEntityRendererDispatcher.java b/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinTileEntityRendererDispatcher.java index 287c3971..3e240f84 100644 --- a/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinTileEntityRendererDispatcher.java +++ b/src/main/java/net/aspw/client/injection/forge/mixins/render/MixinTileEntityRendererDispatcher.java @@ -2,7 +2,6 @@ import net.aspw.client.Client; import net.aspw.client.features.module.impl.visual.XRay; -import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; import net.minecraft.tileentity.TileEntity; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/net/aspw/client/util/MovementUtils.java b/src/main/java/net/aspw/client/util/MovementUtils.java index 3f4bd116..3e1d892e 100644 --- a/src/main/java/net/aspw/client/util/MovementUtils.java +++ b/src/main/java/net/aspw/client/util/MovementUtils.java @@ -94,6 +94,7 @@ public static boolean isBlockUnder() { } return false; } + public static boolean isRidingBlock() { return !(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1.8, mc.thePlayer.posZ)).getBlock() instanceof BlockAir) || !(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1, mc.thePlayer.posZ)).getBlock() instanceof BlockAir) || !(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 0.5, mc.thePlayer.posZ)).getBlock() instanceof BlockAir) || !(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX + 0.5, mc.thePlayer.posY - 1.8, mc.thePlayer.posZ + 0.5)).getBlock() instanceof BlockAir) || !(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX - 0.5, mc.thePlayer.posY - 1.8, mc.thePlayer.posZ + 0.5)).getBlock() instanceof BlockAir) || !(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX + 0.5, mc.thePlayer.posY - 1.8, mc.thePlayer.posZ - 0.5)).getBlock() instanceof BlockAir) || !(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX - 0.5, mc.thePlayer.posY - 1.8, mc.thePlayer.posZ - 0.5)).getBlock() instanceof BlockAir) || !(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX + 0.5, mc.thePlayer.posY - 1, mc.thePlayer.posZ + 0.5)).getBlock() instanceof BlockAir) || !(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX - 0.5, mc.thePlayer.posY - 1, mc.thePlayer.posZ + 0.5)).getBlock() instanceof BlockAir) || !(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX + 0.5, mc.thePlayer.posY - 1, mc.thePlayer.posZ - 0.5)).getBlock() instanceof BlockAir) || !(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX - 0.5, mc.thePlayer.posY - 1, mc.thePlayer.posZ - 0.5)).getBlock() instanceof BlockAir) || !(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX + 0.5, mc.thePlayer.posY - 0.5, mc.thePlayer.posZ + 0.5)).getBlock() instanceof BlockAir) || !(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX - 0.5, mc.thePlayer.posY - 0.5, mc.thePlayer.posZ + 0.5)).getBlock() instanceof BlockAir) || !(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX + 0.5, mc.thePlayer.posY - 0.5, mc.thePlayer.posZ - 0.5)).getBlock() instanceof BlockAir) || !(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX - 0.5, mc.thePlayer.posY - 0.5, mc.thePlayer.posZ - 0.5)).getBlock() instanceof BlockAir); } diff --git a/src/main/java/net/aspw/client/util/RotationUtils.kt b/src/main/java/net/aspw/client/util/RotationUtils.kt index 64a1ce33..17daee21 100644 --- a/src/main/java/net/aspw/client/util/RotationUtils.kt +++ b/src/main/java/net/aspw/client/util/RotationUtils.kt @@ -121,7 +121,11 @@ class RotationUtils : MinecraftInstance(), Listenable { } if (throughWalls || isVisible(vec3)) { val currentVec = VecRotation(vec3, rotation) - if (vecRotation == null) vecRotation = currentVec + if (vecRotation == null || getRotationDifference(currentVec.rotation) < getRotationDifference( + vecRotation.rotation + ) + ) + vecRotation = currentVec } zSearch += 0.1 } diff --git a/src/main/java/net/aspw/client/util/splash/CustomSplashProgress.java b/src/main/java/net/aspw/client/util/splash/CustomSplashProgress.java index db5595b6..f7769d06 100644 --- a/src/main/java/net/aspw/client/util/splash/CustomSplashProgress.java +++ b/src/main/java/net/aspw/client/util/splash/CustomSplashProgress.java @@ -42,7 +42,7 @@ public class CustomSplashProgress { private static volatile boolean done = false; private static Thread thread; private static volatile Throwable threadError; - private static int angle = 0; + private static final int angle = 0; private static final Lock lock = new ReentrantLock(true); private static CustomSplashProgress.SplashFontRenderer fontRenderer; private static final IResourcePack mcPack; @@ -97,7 +97,7 @@ public static void start() { r = new FileReader(configFile); config.load(r); } catch (IOException var24) { - FMLLog.info("Could not load splash.properties, will create a default one", new Object[0]); + FMLLog.info("Could not load splash.properties, will create a default one"); } finally { IOUtils.closeQuietly(r); } @@ -125,7 +125,7 @@ public static void start() { w = new FileWriter(configFile); config.store(w, "Splash screen properties"); } catch (IOException var22) { - FMLLog.log(Level.ERROR, var22, "Could not save the splash.properties file", new Object[0]); + FMLLog.log(Level.ERROR, var22, "Could not save the splash.properties file"); } finally { IOUtils.closeQuietly(w); } @@ -182,13 +182,13 @@ public void run() { CustomSplashProgress.fontRenderer = new CustomSplashProgress.SplashFontRenderer(); GL11.glDisable(3553); - for(; !CustomSplashProgress.done; Display.sync(100)) { + for (; !CustomSplashProgress.done; Display.sync(100)) { ProgressManager.ProgressBar first = null; ProgressManager.ProgressBar penult = null; ProgressManager.ProgressBar last = null; Iterator i = ProgressManager.barIterator(); - while(i.hasNext()) { + while (i.hasNext()) { if (first == null) { first = i.next(); } else { @@ -298,7 +298,7 @@ public void run() { } private void setColor(int color) { - GL11.glColor3ub((byte)(color >> 16 & 255), (byte)(color >> 8 & 255), (byte)(color & 255)); + GL11.glColor3ub((byte) (color >> 16 & 255), (byte) (color >> 8 & 255), (byte) (color & 255)); } private void drawBox(int w, int h) { @@ -367,7 +367,7 @@ private void clearGL() { } }); thread.setUncaughtExceptionHandler((t, e) -> { - FMLLog.log(Level.ERROR, e, "Splash thread Exception", new Object[0]); + FMLLog.log(Level.ERROR, e, "Splash thread Exception"); CustomSplashProgress.threadError = e; }); thread.start(); @@ -379,8 +379,8 @@ public static int getMaxTextureSize() { if (max_texture_size != -1) { return max_texture_size; } else { - for(int i = 16384; i > 0; i >>= 1) { - GL11.glTexImage2D(32868, 0, 6408, i, i, 0, 6408, 5121, (ByteBuffer)null); + for (int i = 16384; i > 0; i >>= 1) { + GL11.glTexImage2D(32868, 0, 6408, i, i, 0, 6408, 5121, (ByteBuffer) null); if (GL11.glGetTexLevelParameteri(32868, 0, 4096) != 0) { max_texture_size = i; return i; @@ -397,7 +397,9 @@ private static void checkThreadState() { } } - /** @deprecated */ + /** + * @deprecated + */ @Deprecated public static void pause() { if (enabled) { @@ -415,7 +417,9 @@ public static void pause() { } } - /** @deprecated */ + /** + * @deprecated + */ @Deprecated public static void resume() { if (enabled) { @@ -492,7 +496,7 @@ private static boolean disableSplash() { config.store(w, "Splash screen properties"); return true; } catch (IOException var8) { - FMLLog.log(Level.ERROR, var8, "Could not save the splash.properties file", new Object[0]); + FMLLog.log(Level.ERROR, var8, "Could not save the splash.properties file"); var4 = false; } finally { IOUtils.closeQuietly(w); @@ -502,7 +506,7 @@ private static boolean disableSplash() { } private static IResourcePack createResourcePack(File file) { - return (IResourcePack)(file.isDirectory() ? new FolderResourcePack(file) : new FileResourcePack(file)); + return file.isDirectory() ? new FolderResourcePack(file) : new FileResourcePack(file); } public static void drawVanillaScreen(TextureManager renderEngine) throws LWJGLException { @@ -586,7 +590,7 @@ public Texture(ResourceLocation location) { BufferedImage[] images = new BufferedImage[this.frames]; int size; - for(size = 0; size < this.frames; ++size) { + for (size = 0; size < this.frames; ++size) { images[size] = reader.read(size); } @@ -594,29 +598,29 @@ public Texture(ResourceLocation location) { size = 1; this.width = images[0].getWidth(); - for(this.height = images[0].getHeight(); size / this.width * (size / this.height) < this.frames; size *= 2) { + for (this.height = images[0].getHeight(); size / this.width * (size / this.height) < this.frames; size *= 2) { } this.size = size; GL11.glEnable(3553); Class var8 = CustomSplashProgress.class; - synchronized(CustomSplashProgress.class) { + synchronized (CustomSplashProgress.class) { this.name = GL11.glGenTextures(); GL11.glBindTexture(3553, this.name); } GL11.glTexParameteri(3553, 10241, 9728); GL11.glTexParameteri(3553, 10240, 9728); - GL11.glTexImage2D(3553, 0, 6408, size, size, 0, 32993, 33639, (IntBuffer)null); + GL11.glTexImage2D(3553, 0, 6408, size, size, 0, 32993, 33639, (IntBuffer) null); CustomSplashProgress.checkGLError("Texture creation"); - for(int i = 0; i * (size / this.width) < this.frames; ++i) { - for(int j = 0; i * (size / this.width) + j < this.frames && j < size / this.width; ++j) { + for (int i = 0; i * (size / this.width) < this.frames; ++i) { + for (int j = 0; i * (size / this.width) + j < this.frames && j < size / this.width; ++j) { CustomSplashProgress.buf.clear(); BufferedImage image = images[i * (size / this.width) + j]; - for(int k = 0; k < this.height; ++k) { - for(int l = 0; l < this.width; ++l) { + for (int k = 0; k < this.height; ++k) { + for (int l = 0; l < this.width; ++l) { CustomSplashProgress.buf.put(image.getRGB(l, k)); } } @@ -671,11 +675,11 @@ public void delete() { } public float getU(int frame, float u) { - return (float)this.width * ((float)(frame % (this.size / this.width)) + u) / (float)this.size; + return (float) this.width * ((float) (frame % (this.size / this.width)) + u) / (float) this.size; } public float getV(int frame, float v) { - return (float)this.height * ((float)(frame / (this.size / this.width)) + v) / (float)this.size; + return (float) this.height * ((float) (frame / (this.size / this.width)) + v) / (float) this.size; } public void texCoord(int frame, float u, float v) { diff --git a/src/main/resources/assets/minecraft/client/cape/cherryblossom.png b/src/main/resources/assets/minecraft/client/cape/cherryblossom.png new file mode 100644 index 00000000..9385a9ff Binary files /dev/null and b/src/main/resources/assets/minecraft/client/cape/cherryblossom.png differ diff --git a/src/main/resources/assets/minecraft/client/cape/nightxsmooth.png b/src/main/resources/assets/minecraft/client/cape/nightxsmooth.png new file mode 100644 index 00000000..23674436 Binary files /dev/null and b/src/main/resources/assets/minecraft/client/cape/nightxsmooth.png differ diff --git a/src/main/resources/client.forge.mixins.json b/src/main/resources/client.forge.mixins.json index aaca7700..108145b3 100644 --- a/src/main/resources/client.forge.mixins.json +++ b/src/main/resources/client.forge.mixins.json @@ -18,6 +18,7 @@ "entity.MixinAbstractClientPlayer", "entity.MixinEntity", "entity.MixinEntityLivingBase", + "entity.MixinEntityLivingBaseFix", "entity.MixinEntityPlayer", "entity.MixinEntityPlayerSP", "entity.MixinPlayerControllerMP", @@ -38,6 +39,7 @@ "gui.MixinGuiMultiplayer", "gui.MixinGuiNewChat", "gui.MixinGuiOptions", + "gui.MixinGuiOverlayDebug", "gui.MixinGuiScreen", "gui.MixinGuiScreenOptionsSounds", "gui.MixinGuiSlot", @@ -49,6 +51,7 @@ "item.MixinNBTTagCompound", "network.MixinBlockedServers", "network.MixinGuiConnecting_1", + "network.MixinNetHandlerLoginClient", "network.MixinNetHandlerPlayClient", "network.MixinNetworkManager", "network.MixinNetworkManager_5", @@ -62,6 +65,8 @@ "render.MixinLayerArmorBase", "render.MixinLayerCape", "render.MixinLayerHeldItem", + "render.MixinLayerSpiderEyes", + "render.MixinLayerWitherAura", "render.MixinModelBiped", "render.MixinModelPlayer", "render.MixinModelPlayerFix",