11package dev .ryanhcode .sable .mixin .entity .entities_stick_sublevels .player ;
22
3+ import com .llamalad7 .mixinextras .injector .wrapoperation .Operation ;
4+ import com .llamalad7 .mixinextras .injector .wrapoperation .WrapOperation ;
35import dev .ryanhcode .sable .api .entity .EntitySubLevelUtil ;
46import dev .ryanhcode .sable .mixinterface .entity .entities_stick_sublevels .player .ServerboundMovePlayerPacketExtension ;
57import net .minecraft .network .protocol .game .ServerboundMovePlayerPacket ;
911import org .spongepowered .asm .mixin .Shadow ;
1012import org .spongepowered .asm .mixin .injection .At ;
1113import org .spongepowered .asm .mixin .injection .Inject ;
12- import org .spongepowered .asm .mixin .injection .Redirect ;
1314import org .spongepowered .asm .mixin .injection .callback .CallbackInfo ;
1415
1516@ Mixin (ServerGamePacketListenerImpl .class )
@@ -26,13 +27,13 @@ public void handleMovePlayer(final ServerboundMovePlayerPacket packet, final Cal
2627 /**
2728 * FIXME: Don't just disable this check to handle sub-level freezing
2829 */
29- @ Redirect (method = "handleMovePlayer" , at = @ At (value = "INVOKE" , target = "Lnet/minecraft/server/level/ServerPlayer;isChangingDimension()Z" ))
30- private boolean sable$disableMovedTooQuicklyCheck (final ServerPlayer instance , final ServerboundMovePlayerPacket packet ) {
30+ @ WrapOperation (method = "handleMovePlayer" , at = @ At (value = "INVOKE" , target = "Lnet/minecraft/server/level/ServerPlayer;isChangingDimension()Z" ))
31+ private boolean sable$disableMovedTooQuicklyCheck (final ServerPlayer instance , final Operation < Boolean > original ) {
3132 if (EntitySubLevelUtil .getTrackingSubLevel (instance ) != null ) {
3233 return true ;
3334 }
3435
35- return instance . isChangingDimension ( );
36+ return original . call ( instance );
3637 }
3738
3839}
0 commit comments