diff --git a/src/main/java/de/florianmichael/viafabricplus/ViaFabricPlus.java b/src/main/java/de/florianmichael/viafabricplus/ViaFabricPlus.java index 8ce6f407..06bf950c 100644 --- a/src/main/java/de/florianmichael/viafabricplus/ViaFabricPlus.java +++ b/src/main/java/de/florianmichael/viafabricplus/ViaFabricPlus.java @@ -41,8 +41,6 @@ import java.util.concurrent.CompletableFuture; * - Particle handling has slightly changed * * TODO | Port 1.21 - * - SetEntityMotion Lerp - * - ClientboundRespawnPacket assigns base values now * - Win Game State 0 missing now * - LocalPlayer#aiStep nether portal logic and sneaking attribute * - Camera logic got changed again diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/network/MixinClientPlayNetworkHandler.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/network/MixinClientPlayNetworkHandler.java index b1e95c86..53ed45f1 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/network/MixinClientPlayNetworkHandler.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/network/MixinClientPlayNetworkHandler.java @@ -35,6 +35,7 @@ import net.minecraft.client.gui.screen.ingame.BookScreen; import net.minecraft.client.network.*; import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.Entity; +import net.minecraft.entity.attribute.AttributeContainer; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.vehicle.BoatEntity; import net.minecraft.item.ItemStack; @@ -80,13 +81,15 @@ public abstract class MixinClientPlayNetworkHandler extends ClientCommonNetworkH @Shadow protected abstract boolean isSecureChatEnforced(); - @Shadow - private ClientWorld world; - protected MixinClientPlayNetworkHandler(MinecraftClient client, ClientConnection connection, ClientConnectionState connectionState) { super(client, connection, connectionState); } + @WrapWithCondition(method = "onPlayerRespawn", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/attribute/AttributeContainer;setBaseFrom(Lnet/minecraft/entity/attribute/AttributeContainer;)V")) + public boolean dontApplyBaseValues(AttributeContainer instance, AttributeContainer other) { + return ProtocolTranslator.getTargetVersion().newerThanOrEqualTo(ProtocolVersion.v1_21); + } + @WrapWithCondition(method = "onEnterReconfiguration", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayNetworkHandler;sendAcknowledgment()V")) private boolean dontSendChatAck(ClientPlayNetworkHandler instance) { return ProtocolTranslator.getTargetVersion().newerThanOrEqualTo(ProtocolVersion.v1_20_5);