package dev.modzuozhi.mixin; import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod; import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import dev.modzuozhi.core.compat.SableAssemblyDispatch; import net.minecraft.server.level.ServerPlayer; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Pseudo; /** Includes ValueSettingsPacket (rotation speed); preserve Create's range/permission checks. */ @Pseudo @Mixin(targets = "com.simibubi.create.foundation.networking.BlockEntityConfigurationPacket", remap = false) public abstract class CreateConfigurationPacketMixin { @WrapMethod(method = "handle(Lnet/minecraft/server/level/ServerPlayer;)V") private void dimensionalripper$configWithOwnership(ServerPlayer player, Operation original) { if (player == null) { original.call(player); return; } SableAssemblyDispatch.dispatch(player, () -> original.call(player)); } }