MineLittlePony/src/main/java/com/minelittlepony/client/mixin/MixinPlayerPositionLookS2CPacket.java
2022-06-12 17:35:34 +02:00

31 lines
1.2 KiB
Java

package com.minelittlepony.client.mixin;
import com.minelittlepony.client.HorseCam;
import java.util.Set;
import net.minecraft.network.*;
import net.minecraft.network.listener.ClientPlayPacketListener;
import net.minecraft.network.packet.s2c.play.PlayerPositionLookS2CPacket;
import net.minecraft.network.packet.s2c.play.PlayerPositionLookS2CPacket.Flag;
import org.spongepowered.asm.mixin.*;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(PlayerPositionLookS2CPacket.class)
abstract class MixinPlayerPositionLookS2CPacket implements Packet<ClientPlayPacketListener> {
@Shadow @Mutable
private @Final float pitch;
@Shadow
private @Final Set<Flag> flags;
@Inject(method = "apply(Lnet/minecraft/network/listener/ClientPlayPacketListener;)V",
at = @At("HEAD"))
private void onApply(ClientPlayPacketListener clientPlayPacketListener, CallbackInfo info) {
if (!flags.contains(PlayerPositionLookS2CPacket.Flag.Y_ROT)) {
pitch = HorseCam.transformIncomingServerCameraAngle(pitch);
}
}
}