From 3442492e20a92f6e88a1af3f78625d475093bf2e Mon Sep 17 00:00:00 2001 From: naari3 Date: Tue, 7 Jul 2026 04:34:56 +0900 Subject: [PATCH] Update ChunkRendererSchematicVbo mixin for litematica 0.28.3 litematica 0.28.3 (MC 26.2) refactored GPU buffer handling into ChunkRenderDispatcherBuffers, which changed the signature of ChunkRendererSchematicVbo.renderBlocksAndOverlay: a ChunkRenderDispatcherBuffers parameter is now inserted between ChunkMeshDataSchematic and IBlockOutputSchematic. The mixin in ChunkRendererSchematicVboMixin captured the old argument list, so the injector no longer matched the target descriptor and mixin application failed with an InvalidInjectionException, crashing on world join. Add the new parameter to the injector handler and bump the 26.2 dependencies to litematica 0.28.3 and malilib 0.29.3. Co-Authored-By: Claude Fable 5 --- versions/26.2/gradle.properties | 4 ++-- .../mixin/Litematica/ChunkRendererSchematicVboMixin.java | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/versions/26.2/gradle.properties b/versions/26.2/gradle.properties index ee687856..7b1665df 100644 --- a/versions/26.2/gradle.properties +++ b/versions/26.2/gradle.properties @@ -16,7 +16,7 @@ mapping_provider = none standalone_sources = true malilib_provider = modrinth - malilib_fileid = 0.29.2 + malilib_fileid = 0.29.3 litematica_provider = modrinth - litematica_fileid = 0.28.2 + litematica_fileid = 0.28.3 essentialclient_filename = essential-client-1.20.1-1.3.6.jar diff --git a/versions/26.2/src/main/java/io/github/eatmyvenom/litematicin/mixin/Litematica/ChunkRendererSchematicVboMixin.java b/versions/26.2/src/main/java/io/github/eatmyvenom/litematicin/mixin/Litematica/ChunkRendererSchematicVboMixin.java index b01ef93a..ee2542b9 100644 --- a/versions/26.2/src/main/java/io/github/eatmyvenom/litematicin/mixin/Litematica/ChunkRendererSchematicVboMixin.java +++ b/versions/26.2/src/main/java/io/github/eatmyvenom/litematicin/mixin/Litematica/ChunkRendererSchematicVboMixin.java @@ -15,6 +15,7 @@ import fi.dy.masa.litematica.render.schematic.ChunkMeshDataSchematic; import fi.dy.masa.litematica.render.schematic.ChunkCacheSchematic; import fi.dy.masa.litematica.render.schematic.ChunkRenderDataSchematic; +import fi.dy.masa.litematica.render.schematic.ChunkRenderDispatcherBuffers; import fi.dy.masa.litematica.render.schematic.ChunkRendererSchematicVbo; import fi.dy.masa.litematica.render.schematic.FluidModelRendererSchematic; import fi.dy.masa.litematica.render.schematic.IBlockOutputSchematic; @@ -29,7 +30,7 @@ public class ChunkRendererSchematicVboMixin { protected ChunkCacheSchematic schematicWorldView; @Inject(method = "renderBlocksAndOverlay", at = @At("HEAD"), cancellable = true, remap = false) - private void onRenderBlocksAndOverlay(BlockModelRendererSchematic blockRenderer, FluidModelRendererSchematic fluidRenderer, BlockPos pos, ChunkRenderDataSchematic data, ChunkMeshDataSchematic meshData, IBlockOutputSchematic blockOutput, Vec3 cameraPos, VisGraph visibilityGraph, CallbackInfo ci) { + private void onRenderBlocksAndOverlay(BlockModelRendererSchematic blockRenderer, FluidModelRendererSchematic fluidRenderer, BlockPos pos, ChunkRenderDataSchematic data, ChunkMeshDataSchematic meshData, ChunkRenderDispatcherBuffers pack, IBlockOutputSchematic blockOutput, Vec3 cameraPos, VisGraph visibilityGraph, CallbackInfo ci) { if (!RENDER_ONLY_HOLDING_ITEMS.getBooleanValue()) return; BlockState stateSchematic = this.schematicWorldView.getBlockState(pos); Item item = stateSchematic.getBlock().asItem();