diff --git a/gradle.properties b/gradle.properties index 5ac246c4..6857231b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check https://fabricmc.net/develop/ - minecraft_version=25w15a + minecraft_version=25w16a loader_version=0.16.10 jsr305_version=3.0.2 fabric_version=0.119.5+1.21.5 diff --git a/src/main/java/carpet/mixins/LevelRenderer_scarpetRenderMixin.java b/src/main/java/carpet/mixins/LevelRenderer_scarpetRenderMixin.java index 4b1f4063..2a63219a 100644 --- a/src/main/java/carpet/mixins/LevelRenderer_scarpetRenderMixin.java +++ b/src/main/java/carpet/mixins/LevelRenderer_scarpetRenderMixin.java @@ -2,11 +2,11 @@ package carpet.mixins; import carpet.network.CarpetClient; import carpet.script.utils.ShapesRenderer; +import com.mojang.blaze3d.buffers.GpuBufferSlice; import com.mojang.blaze3d.framegraph.FrameGraphBuilder; import com.mojang.blaze3d.framegraph.FramePass; import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.FogParameters; import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.client.renderer.LevelTargetBundle; import net.minecraft.client.renderer.LightTexture; @@ -32,7 +32,7 @@ public class LevelRenderer_scarpetRenderMixin } @Inject(method = "addParticlesPass", at = @At("RETURN")) - private void renderScarpetThingsLate(FrameGraphBuilder frameGraphBuilder, Camera camera, float f, FogParameters fogParameters, CallbackInfo ci) + private void renderScarpetThingsLate(FrameGraphBuilder frameGraphBuilder, Camera camera, float f, GpuBufferSlice fogParameters, CallbackInfo ci) { // in normal circumstances we want to render shapes at the very end so it appears correctly behind stuff. // we might actually not need to play with render hooks here. diff --git a/src/main/java/carpet/mixins/ServerGamePacketListenerImpl_scarpetEventsMixin.java b/src/main/java/carpet/mixins/ServerGamePacketListenerImpl_scarpetEventsMixin.java index 6fd5eb02..7d5453bb 100644 --- a/src/main/java/carpet/mixins/ServerGamePacketListenerImpl_scarpetEventsMixin.java +++ b/src/main/java/carpet/mixins/ServerGamePacketListenerImpl_scarpetEventsMixin.java @@ -180,24 +180,25 @@ public class ServerGamePacketListenerImpl_scarpetEventsMixin } } - @Inject(method = "handlePlayerCommand", at = @At( + @Inject(method = "handlePlayerInput", at = @At( value = "INVOKE", - target = "Lnet/minecraft/server/level/ServerPlayer;setShiftKeyDown(Z)V", - ordinal = 0 + target = "Lnet/minecraft/server/level/ServerPlayer;setLastClientInput(Lnet/minecraft/world/entity/player/Input;)V" )) - private void onStartSneaking(ServerboundPlayerCommandPacket clientCommandC2SPacket_1, CallbackInfo ci) + private void onStartSneaking(ServerboundPlayerInputPacket serverboundPlayerInputPacket, CallbackInfo ci) { - PLAYER_STARTS_SNEAKING.onPlayerEvent(player); - } - - @Inject(method = "handlePlayerCommand", at = @At( - value = "INVOKE", - target = "Lnet/minecraft/server/level/ServerPlayer;setShiftKeyDown(Z)V", - ordinal = 1 - )) - private void onStopSneaking(ServerboundPlayerCommandPacket clientCommandC2SPacket_1, CallbackInfo ci) - { - PLAYER_STOPS_SNEAKING.onPlayerEvent(player); + boolean wasDown = player.isShiftKeyDown(); + boolean isDown = serverboundPlayerInputPacket.input().shift(); + if (wasDown != isDown) + { + if (isDown) + { + PLAYER_STARTS_SNEAKING.onPlayerEvent(player); + } + else + { + PLAYER_STOPS_SNEAKING.onPlayerEvent(player); + } + } } @Inject(method = "handlePlayerCommand", at = @At(