package me.deftware.mixin.mixins.network;

import me.deftware.mixin.imp.IMixinCPacketPlayer;
import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;

@Mixin(PlayerMoveC2SPacket.class)
public class MixinCPacketPlayer implements IMixinCPacketPlayer {

    @Shadow
    protected double y;

    @Shadow
    protected boolean onGround;

    @Shadow
    protected boolean changePosition;

    @Override
    public boolean isOnGround() {
        return onGround;
    }

    @Override
    public void setOnGround(boolean state) {
        onGround = state;
    }

    @Override
    public boolean isMoving() {
        return changePosition;
    }

    @Override
    public void setMoving(boolean state) {
        changePosition = state;
    }

    @Override
    public void setY(double y) {
        this.y = y;
    }

    @Override
    public double getY() {
        return y;
    }

}

@@ -187,21 +187,107 @@
 m.mixin.
-Mixin
+Final;%0Aimport org.spongepowered.asm.mixin.Mixin;%0Aimport org.spongepowered.asm.mixin.Mutable
 ;%0Aimport
@@ -424,16 +424,40 @@
 ayer %7B%0A%0A
+    @Mutable%0A    @Final%0A
     @Sha
@@ -485,16 +485,40 @@
 ble y;%0A%0A
+    @Mutable%0A    @Final%0A
     @Sha
@@ -554,16 +554,40 @@
 round;%0A%0A
+    @Mutable%0A    @Final%0A
     @Sha

Fix mixin bug