diff --git a/fabric-biome-api-v1/src/main/java/net/fabricmc/fabric/mixin/biome/TheEndBiomeSourceMixin.java b/fabric-biome-api-v1/src/main/java/net/fabricmc/fabric/mixin/biome/TheEndBiomeSourceMixin.java index 0cfa5f2411..8af605916e 100644 --- a/fabric-biome-api-v1/src/main/java/net/fabricmc/fabric/mixin/biome/TheEndBiomeSourceMixin.java +++ b/fabric-biome-api-v1/src/main/java/net/fabricmc/fabric/mixin/biome/TheEndBiomeSourceMixin.java @@ -49,7 +49,7 @@ public class TheEndBiomeSourceMixin extends BiomeSourceMixin { @Shadow @Mutable @Final - static MapCodec CODEC; + public static MapCodec CODEC; @Unique private Supplier overrides; diff --git a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/content/registry/FireBlockMixin.java b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/content/registry/FireBlockMixin.java index cccffc6cfc..9f6fe594da 100644 --- a/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/content/registry/FireBlockMixin.java +++ b/fabric-content-registries-v0/src/main/java/net/fabricmc/fabric/mixin/content/registry/FireBlockMixin.java @@ -53,7 +53,7 @@ private void afterConstruct(Block.Properties properties, CallbackInfo info) { registry = FlammableBlockRegistryImpl.getInstance((Block) (Object) this); } - @Inject(at = @At("HEAD"), method = "getIgniteOdds", cancellable = true) + @Inject(at = @At("HEAD"), method = "getIgniteOdds(Lnet/minecraft/world/level/block/state/BlockState;)I", cancellable = true) private void getFabricBurnChance(BlockState block, CallbackInfoReturnable info) { FlammableBlockRegistry.Entry entry = registry.getFabric(block.getBlock()); diff --git a/fabric-data-attachment-api-v1/src/client/java/net/fabricmc/fabric/mixin/attachment/client/ClientPacketListenerMixin.java b/fabric-data-attachment-api-v1/src/client/java/net/fabricmc/fabric/mixin/attachment/client/ClientPacketListenerMixin.java index 6bcb427e91..bc6e433347 100644 --- a/fabric-data-attachment-api-v1/src/client/java/net/fabricmc/fabric/mixin/attachment/client/ClientPacketListenerMixin.java +++ b/fabric-data-attachment-api-v1/src/client/java/net/fabricmc/fabric/mixin/attachment/client/ClientPacketListenerMixin.java @@ -19,6 +19,7 @@ import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.llamalad7.mixinextras.sugar.Local; +import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Slice; @@ -36,7 +37,8 @@ abstract class ClientPacketListenerMixin { method = "handleRespawn", at = @At( value = "FIELD", - target = "Lnet/minecraft/client/Minecraft;player:Lnet/minecraft/client/player/LocalPlayer;" + target = "Lnet/minecraft/client/Minecraft;player:Lnet/minecraft/client/player/LocalPlayer;", + opcode = Opcodes.PUTFIELD ), slice = @Slice( from = @At(value = "INVOKE", target = "Lnet/minecraft/client/multiplayer/ClientPacketListener;startWaitingForNewLevel(Lnet/minecraft/client/player/LocalPlayer;Lnet/minecraft/client/multiplayer/ClientLevel;Lnet/minecraft/client/gui/screens/LevelLoadingScreen$Reason;)V") diff --git a/fabric-data-attachment-api-v1/src/main/java/net/fabricmc/fabric/mixin/attachment/LevelChunkMixin.java b/fabric-data-attachment-api-v1/src/main/java/net/fabricmc/fabric/mixin/attachment/LevelChunkMixin.java index 6ed0143f96..5c43273dd4 100644 --- a/fabric-data-attachment-api-v1/src/main/java/net/fabricmc/fabric/mixin/attachment/LevelChunkMixin.java +++ b/fabric-data-attachment-api-v1/src/main/java/net/fabricmc/fabric/mixin/attachment/LevelChunkMixin.java @@ -47,7 +47,7 @@ abstract class LevelChunkMixin extends AttachmentTargetsMixin implements AttachmentTargetImpl { @Shadow @Final - Level level; + private Level level; @Shadow public abstract Map getBlockEntities(); diff --git a/fabric-entity-events-v1/src/main/java/net/fabricmc/fabric/mixin/entity/event/elytra/LivingEntityMixin.java b/fabric-entity-events-v1/src/main/java/net/fabricmc/fabric/mixin/entity/event/elytra/LivingEntityMixin.java index b45997f48a..b8931438f6 100644 --- a/fabric-entity-events-v1/src/main/java/net/fabricmc/fabric/mixin/entity/event/elytra/LivingEntityMixin.java +++ b/fabric-entity-events-v1/src/main/java/net/fabricmc/fabric/mixin/entity/event/elytra/LivingEntityMixin.java @@ -16,6 +16,7 @@ package net.fabricmc.fabric.mixin.entity.event.elytra; +import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -61,7 +62,7 @@ void injectElytraTick(CallbackInfo info) { } @SuppressWarnings("ConstantConditions") - @Inject(at = @At(value = "FIELD", target = "Lnet/minecraft/world/entity/EquipmentSlot;VALUES:Ljava/util/List;"), method = "canGlide", allow = 1, cancellable = true) + @Inject(at = @At(value = "FIELD", target = "Lnet/minecraft/world/entity/EquipmentSlot;VALUES:Ljava/util/List;", opcode = Opcodes.GETSTATIC), method = "canGlide", allow = 1, cancellable = true) void injectElytraCheck(CallbackInfoReturnable cir) { LivingEntity self = (LivingEntity) (Object) this; diff --git a/fabric-events-interaction-v0/src/client/java/net/fabricmc/fabric/mixin/event/interaction/client/MinecraftMixin.java b/fabric-events-interaction-v0/src/client/java/net/fabricmc/fabric/mixin/event/interaction/client/MinecraftMixin.java index 1539379d68..9b4addb4e7 100644 --- a/fabric-events-interaction-v0/src/client/java/net/fabricmc/fabric/mixin/event/interaction/client/MinecraftMixin.java +++ b/fabric-events-interaction-v0/src/client/java/net/fabricmc/fabric/mixin/event/interaction/client/MinecraftMixin.java @@ -49,7 +49,7 @@ public abstract class MinecraftMixin { private boolean attackCancelled; @Shadow - private LocalPlayer player; + public LocalPlayer player; @Shadow public abstract ClientPacketListener getConnection(); diff --git a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/ServerGamePacketListenerImplMixin.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/ServerGamePacketListenerImplMixin.java index 0d5ff1ffe1..93ace511f6 100644 --- a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/ServerGamePacketListenerImplMixin.java +++ b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/ServerGamePacketListenerImplMixin.java @@ -19,7 +19,6 @@ import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.llamalad7.mixinextras.sugar.Local; -import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -46,8 +45,7 @@ @Mixin(ServerGamePacketListenerImpl.class) public abstract class ServerGamePacketListenerImplMixin { @Shadow - @Final - private ServerPlayer player; + public ServerPlayer player; @Shadow private void tryPickItem(ItemStack stack) { diff --git a/fabric-key-mapping-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/keymapping/KeyMappingCategoryMixin.java b/fabric-key-mapping-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/keymapping/KeyMappingCategoryMixin.java index 6b685f8d58..ac6bbb56b6 100644 --- a/fabric-key-mapping-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/keymapping/KeyMappingCategoryMixin.java +++ b/fabric-key-mapping-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/keymapping/KeyMappingCategoryMixin.java @@ -34,7 +34,7 @@ abstract class KeyMappingCategoryMixin { @Shadow @Final - static List SORT_ORDER; + private static List SORT_ORDER; @Inject(method = "register(Lnet/minecraft/resources/Identifier;)Lnet/minecraft/client/KeyMapping$Category;", at = @At("RETURN")) private static void onReturnRegister(Identifier id, CallbackInfoReturnable cir) { diff --git a/fabric-lifecycle-events-v1/src/client/java/net/fabricmc/fabric/mixin/event/lifecycle/client/ClientChunkCacheMixin.java b/fabric-lifecycle-events-v1/src/client/java/net/fabricmc/fabric/mixin/event/lifecycle/client/ClientChunkCacheMixin.java index b819669de5..500c52ad06 100644 --- a/fabric-lifecycle-events-v1/src/client/java/net/fabricmc/fabric/mixin/event/lifecycle/client/ClientChunkCacheMixin.java +++ b/fabric-lifecycle-events-v1/src/client/java/net/fabricmc/fabric/mixin/event/lifecycle/client/ClientChunkCacheMixin.java @@ -42,14 +42,14 @@ public abstract class ClientChunkCacheMixin { @Final @Shadow - ClientLevel level; + private ClientLevel level; @Inject(method = "replaceWithPacketData", at = @At("TAIL")) private void onChunkLoad(int x, int z, FriendlyByteBuf friendlyByteBuf, Map highmap, Consumer consumer, CallbackInfoReturnable info) { ClientChunkEvents.CHUNK_LOAD.invoker().onChunkLoad(this.level, info.getReturnValue()); } - @Inject(method = "replaceWithPacketData", at = @At(value = "NEW", target = "net/minecraft/world/level/chunk/LevelChunk", shift = At.Shift.BEFORE)) + @Inject(method = "replaceWithPacketData", at = @At(value = "NEW", target = "net/minecraft/world/level/chunk/LevelChunk")) private void onChunkUnload(int x, int z, FriendlyByteBuf buf, Map highmap, Consumer consumer, CallbackInfoReturnable info, @Local LevelChunk levelChunk) { if (levelChunk != null) { ClientChunkEvents.CHUNK_UNLOAD.invoker().onChunkUnload(this.level, levelChunk); diff --git a/fabric-lifecycle-events-v1/src/client/java/net/fabricmc/fabric/mixin/event/lifecycle/client/MinecraftMixin.java b/fabric-lifecycle-events-v1/src/client/java/net/fabricmc/fabric/mixin/event/lifecycle/client/MinecraftMixin.java index 6b7c7988ac..5f5c36c2cd 100644 --- a/fabric-lifecycle-events-v1/src/client/java/net/fabricmc/fabric/mixin/event/lifecycle/client/MinecraftMixin.java +++ b/fabric-lifecycle-events-v1/src/client/java/net/fabricmc/fabric/mixin/event/lifecycle/client/MinecraftMixin.java @@ -16,6 +16,7 @@ package net.fabricmc.fabric.mixin.event.lifecycle.client; +import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -46,13 +47,13 @@ private void onStopping(CallbackInfo ci) { } // We inject after the thread field is set so `BlockableEventLoop#getRunningThread` will work - @Inject(at = @At(value = "FIELD", target = "Lnet/minecraft/client/Minecraft;gameThread:Ljava/lang/Thread;", shift = At.Shift.AFTER, ordinal = 0), method = "run") + @Inject(at = @At(value = "FIELD", target = "Lnet/minecraft/client/Minecraft;gameThread:Ljava/lang/Thread;", shift = At.Shift.AFTER, ordinal = 0, opcode = Opcodes.PUTFIELD), method = "run") private void onStart(CallbackInfo ci) { ClientLifecycleEvents.CLIENT_STARTED.invoker().onClientStarted((Minecraft) (Object) this); } - @Inject(method = "updateLevelInEngines", at = @At("TAIL")) - private void afterClientLevelChange(ClientLevel level, CallbackInfo ci) { + @Inject(method = "updateLevelInEngines(Lnet/minecraft/client/multiplayer/ClientLevel;Z)V", at = @At("TAIL")) + private void afterClientLevelChange(ClientLevel level, boolean stopSound, CallbackInfo ci) { if (level != null) { Minecraft client = (Minecraft) (Object) this; ClientLevelEvents.AFTER_CLIENT_LEVEL_CHANGE.invoker().afterLevelChange(client, level); diff --git a/fabric-lifecycle-events-v1/src/main/java/net/fabricmc/fabric/mixin/event/lifecycle/ChunkMapMixin.java b/fabric-lifecycle-events-v1/src/main/java/net/fabricmc/fabric/mixin/event/lifecycle/ChunkMapMixin.java index 2f92b79b9a..dcfb556ebf 100644 --- a/fabric-lifecycle-events-v1/src/main/java/net/fabricmc/fabric/mixin/event/lifecycle/ChunkMapMixin.java +++ b/fabric-lifecycle-events-v1/src/main/java/net/fabricmc/fabric/mixin/event/lifecycle/ChunkMapMixin.java @@ -38,7 +38,7 @@ public abstract class ChunkMapMixin { @Shadow @Final - ServerLevel level; + private ServerLevel level; /** * Injection is inside of scheduleUnload. diff --git a/fabric-loot-api-v3/src/main/java/net/fabricmc/fabric/mixin/loot/SimpleJsonResourceReloadListenerMixin.java b/fabric-loot-api-v3/src/main/java/net/fabricmc/fabric/mixin/loot/SimpleJsonResourceReloadListenerMixin.java index cfe73ccd52..581d6f9c54 100644 --- a/fabric-loot-api-v3/src/main/java/net/fabricmc/fabric/mixin/loot/SimpleJsonResourceReloadListenerMixin.java +++ b/fabric-loot-api-v3/src/main/java/net/fabricmc/fabric/mixin/loot/SimpleJsonResourceReloadListenerMixin.java @@ -38,7 +38,7 @@ @Mixin(SimpleJsonResourceReloadListener.class) public class SimpleJsonResourceReloadListenerMixin { - @Inject(method = "scanDirectory(Lnet/minecraft/server/packs/resources/ResourceManager;Lnet/minecraft/resources/FileToIdConverter;Lcom/mojang/serialization/DynamicOps;Lcom/mojang/serialization/Codec;Ljava/util/Map;)V", at = @At(value = "INVOKE_ASSIGN", target = "Lnet/minecraft/resources/FileToIdConverter;fileToId(Lnet/minecraft/resources/Identifier;)Lnet/minecraft/resources/Identifier;", shift = At.Shift.AFTER)) + @Inject(method = "scanDirectory(Lnet/minecraft/server/packs/resources/ResourceManager;Lnet/minecraft/resources/FileToIdConverter;Lcom/mojang/serialization/DynamicOps;Lcom/mojang/serialization/Codec;Ljava/util/Map;)V", at = @At(value = "INVOKE_ASSIGN", target = "Lnet/minecraft/resources/FileToIdConverter;fileToId(Lnet/minecraft/resources/Identifier;)Lnet/minecraft/resources/Identifier;")) private static void fillSourceMap(ResourceManager manager, FileToIdConverter fileToIdConverter, DynamicOps ops, Codec codec, Map result, CallbackInfo ci, @Local Map.Entry entry, @Local(ordinal = 1) Identifier id) { final String dirName = ((FileToIdConverterAccessor) fileToIdConverter).getPrefix(); if (!LootDataType.TABLE.registryKey().identifier().getPath().equals(dirName)) return; diff --git a/fabric-model-loading-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/model/loading/ModelBakeryMixin.java b/fabric-model-loading-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/model/loading/ModelBakeryMixin.java index 3efab53e3d..4e9b296ec2 100644 --- a/fabric-model-loading-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/model/loading/ModelBakeryMixin.java +++ b/fabric-model-loading-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/model/loading/ModelBakeryMixin.java @@ -53,11 +53,11 @@ abstract class ModelBakeryMixin { @Shadow @Final - static Logger LOGGER; + private static Logger LOGGER; @Shadow @Final - Map resolvedModels; + private Map resolvedModels; @Unique @Nullable diff --git a/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/mixin/networking/ConnectionMixin.java b/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/mixin/networking/ConnectionMixin.java index 9b656d0ecf..9549e05ebe 100644 --- a/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/mixin/networking/ConnectionMixin.java +++ b/fabric-networking-api-v1/src/main/java/net/fabricmc/fabric/mixin/networking/ConnectionMixin.java @@ -24,6 +24,7 @@ import com.llamalad7.mixinextras.sugar.Local; import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelHandlerContext; +import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; @@ -64,7 +65,7 @@ private void initAddedFields(PacketFlow flow, CallbackInfo ci) { this.playChannels = new ConcurrentHashMap<>(); } - @Inject(method = "sendPacket", at = @At(value = "FIELD", target = "Lnet/minecraft/network/Connection;sentPackets:I")) + @Inject(method = "sendPacket", at = @At(value = "FIELD", target = "Lnet/minecraft/network/Connection;sentPackets:I", opcode = Opcodes.GETFIELD)) private void checkPacket(Packet packet, ChannelFutureListener callback, boolean flush, CallbackInfo ci) { if (this.packetListener instanceof PacketCallbackListener) { ((PacketCallbackListener) this.packetListener).sent(packet); diff --git a/fabric-particles-v1/src/client/java/net/fabricmc/fabric/mixin/client/particle/TerrainParticleMixin.java b/fabric-particles-v1/src/client/java/net/fabricmc/fabric/mixin/client/particle/TerrainParticleMixin.java index 4633dc23cf..1e502a4c61 100644 --- a/fabric-particles-v1/src/client/java/net/fabricmc/fabric/mixin/client/particle/TerrainParticleMixin.java +++ b/fabric-particles-v1/src/client/java/net/fabricmc/fabric/mixin/client/particle/TerrainParticleMixin.java @@ -17,6 +17,7 @@ package net.fabricmc.fabric.mixin.client.particle; import com.llamalad7.mixinextras.sugar.Local; +import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -51,7 +52,7 @@ private TerrainParticleMixin() { at = @At("LOAD"), argsOnly = true, slice = @Slice( - from = @At(value = "FIELD", target = "Lnet/minecraft/client/particle/TerrainParticle;bCol:F", ordinal = 0), + from = @At(value = "FIELD", target = "Lnet/minecraft/client/particle/TerrainParticle;bCol:F", ordinal = 0, opcode = Opcodes.PUTFIELD), to = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/block/state/BlockState;is(Ljava/lang/Object;)Z") ), allow = 1 diff --git a/fabric-recipe-api-v1/src/main/java/net/fabricmc/fabric/mixin/recipe/ingredient/IngredientMixin.java b/fabric-recipe-api-v1/src/main/java/net/fabricmc/fabric/mixin/recipe/ingredient/IngredientMixin.java index 2f6718053d..c95c68bf7b 100644 --- a/fabric-recipe-api-v1/src/main/java/net/fabricmc/fabric/mixin/recipe/ingredient/IngredientMixin.java +++ b/fabric-recipe-api-v1/src/main/java/net/fabricmc/fabric/mixin/recipe/ingredient/IngredientMixin.java @@ -78,7 +78,7 @@ private static StreamCodec> useOpt return new OptionalCustomIngredientStreamCodec(original); } - @Inject(method = "", at = @At("TAIL"), cancellable = true) + @Inject(method = "", at = @At("TAIL")) private static void injectCodec(CallbackInfo ci) { Codec customIngredientCodec = CustomIngredientImpl.CODEC.dispatch( CustomIngredientImpl.TYPE_KEY, diff --git a/fabric-recipe-api-v1/src/main/java/net/fabricmc/fabric/mixin/recipe/ingredient/ShapelessRecipeMixin.java b/fabric-recipe-api-v1/src/main/java/net/fabricmc/fabric/mixin/recipe/ingredient/ShapelessRecipeMixin.java index 7e45da0592..132dc7c5c1 100644 --- a/fabric-recipe-api-v1/src/main/java/net/fabricmc/fabric/mixin/recipe/ingredient/ShapelessRecipeMixin.java +++ b/fabric-recipe-api-v1/src/main/java/net/fabricmc/fabric/mixin/recipe/ingredient/ShapelessRecipeMixin.java @@ -42,7 +42,7 @@ public class ShapelessRecipeMixin { @Final @Shadow - List ingredients; + private List ingredients; @Unique private boolean fabric_requiresTesting = false; diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MappedRegistryMixin.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MappedRegistryMixin.java index cc919f28c3..a4f2b06093 100644 --- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MappedRegistryMixin.java +++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/mixin/registry/sync/MappedRegistryMixin.java @@ -456,7 +456,7 @@ public void addAlias(Identifier old, Identifier newId) { method = { "get(Lnet/minecraft/resources/Identifier;)Ljava/util/Optional;", "getValue(Lnet/minecraft/resources/Identifier;)Ljava/lang/Object;", - "containsKey" + "containsKey(Lnet/minecraft/resources/Identifier;)Z" }, at = @At("HEAD"), argsOnly = true diff --git a/fabric-registry-sync-v0/src/testmod/java/net/fabricmc/fabric/test/registry/sync/mixin/ByteBufCodecsMixin.java b/fabric-registry-sync-v0/src/testmod/java/net/fabricmc/fabric/test/registry/sync/mixin/ByteBufCodecsMixin.java index 877a5ce327..cf7cc4a615 100644 --- a/fabric-registry-sync-v0/src/testmod/java/net/fabricmc/fabric/test/registry/sync/mixin/ByteBufCodecsMixin.java +++ b/fabric-registry-sync-v0/src/testmod/java/net/fabricmc/fabric/test/registry/sync/mixin/ByteBufCodecsMixin.java @@ -34,7 +34,7 @@ @Mixin(ByteBufCodecs.class) public interface ByteBufCodecsMixin { - @Inject(method = "registry", at = @At("HEAD")) + @Inject(method = "registry(Lnet/minecraft/resources/ResourceKey;Ljava/util/function/Function;)Lnet/minecraft/network/codec/StreamCodec;", at = @At("HEAD")) private static void checkSynced(ResourceKey> registry, Function, IdMap> registryTransformer, CallbackInfoReturnable> cir) { RegistrySyncTest.checkSyncedRegistry(registry); } diff --git a/fabric-renderer-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/renderer/block/render/ItemFrameRendererMixin.java b/fabric-renderer-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/renderer/block/render/ItemFrameRendererMixin.java index 55948ec133..2eff3c7c6b 100644 --- a/fabric-renderer-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/renderer/block/render/ItemFrameRendererMixin.java +++ b/fabric-renderer-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/renderer/block/render/ItemFrameRendererMixin.java @@ -33,7 +33,7 @@ @Mixin(ItemFrameRenderer.class) abstract class ItemFrameRendererMixin { // Provide the BlockState as context. - @Redirect(method = "submit", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/SubmitNodeCollector;submitBlockModel(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/rendertype/RenderType;Lnet/minecraft/client/renderer/block/model/BlockStateModel;FFFIII)V")) + @Redirect(method = "submit(Lnet/minecraft/client/renderer/entity/state/ItemFrameRenderState;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;Lnet/minecraft/client/renderer/state/CameraRenderState;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/SubmitNodeCollector;submitBlockModel(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/rendertype/RenderType;Lnet/minecraft/client/renderer/block/model/BlockStateModel;FFFIII)V")) private void renderProxy(SubmitNodeCollector submitNodeCollector, PoseStack poseStack, RenderType renderType, BlockStateModel model, float r, float g, float b, int light, int overlay, int outlineColor, @Local BlockState blockState) { // The vertex consumer is for a special layer that renders solid, but vanilla has no equivalent // cutout/translucent layers that we can use here without risking compatibility. diff --git a/fabric-renderer-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/renderer/block/render/SnowGolemHeadLayerMixin.java b/fabric-renderer-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/renderer/block/render/SnowGolemHeadLayerMixin.java index 403f7d0112..62998be3db 100644 --- a/fabric-renderer-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/renderer/block/render/SnowGolemHeadLayerMixin.java +++ b/fabric-renderer-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/renderer/block/render/SnowGolemHeadLayerMixin.java @@ -35,7 +35,7 @@ @Mixin(SnowGolemHeadLayer.class) abstract class SnowGolemHeadLayerMixin { - @Redirect(method = "submit", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/SubmitNodeCollector;submitBlockModel(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/rendertype/RenderType;Lnet/minecraft/client/renderer/block/model/BlockStateModel;FFFIII)V")) + @Redirect(method = "submit(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;ILnet/minecraft/client/renderer/entity/state/SnowGolemRenderState;FF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/SubmitNodeCollector;submitBlockModel(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/rendertype/RenderType;Lnet/minecraft/client/renderer/block/model/BlockStateModel;FFFIII)V")) private void renderProxy(SubmitNodeCollector submitNodeCollector, PoseStack poseStack, RenderType renderType, BlockStateModel model, float r, float g, float b, int light, int overlay, int outlineColor, @Local SnowGolemRenderState renderState, @Local BlockState blockState) { // If true, the chunk layer is an outline chunk layer, and we want all geometry to use this chunk layer. if (renderState.appearsGlowing() && renderState.isInvisible) { diff --git a/fabric-renderer-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/renderer/sprite/TextureAtlasMixin.java b/fabric-renderer-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/renderer/sprite/TextureAtlasMixin.java index 23ca892f9d..d7444fa80b 100644 --- a/fabric-renderer-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/renderer/sprite/TextureAtlasMixin.java +++ b/fabric-renderer-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/renderer/sprite/TextureAtlasMixin.java @@ -19,7 +19,6 @@ import java.util.Map; import org.jspecify.annotations.Nullable; -import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; @@ -40,10 +39,8 @@ @Mixin(TextureAtlas.class) abstract class TextureAtlasMixin implements FabricTextureAtlas { @Shadow - @Final private Map texturesByName; @Shadow - @Final @Nullable private TextureAtlasSprite missingSprite; diff --git a/fabric-renderer-indigo/src/client/java/net/fabricmc/fabric/mixin/client/indigo/renderer/BlockRenderDispatcherMixin.java b/fabric-renderer-indigo/src/client/java/net/fabricmc/fabric/mixin/client/indigo/renderer/BlockRenderDispatcherMixin.java index 57b2657577..a970804117 100644 --- a/fabric-renderer-indigo/src/client/java/net/fabricmc/fabric/mixin/client/indigo/renderer/BlockRenderDispatcherMixin.java +++ b/fabric-renderer-indigo/src/client/java/net/fabricmc/fabric/mixin/client/indigo/renderer/BlockRenderDispatcherMixin.java @@ -46,7 +46,7 @@ abstract class BlockRenderDispatcherMixin { @Final private ModelBlockRenderer modelRenderer; - @Inject(method = "renderBreakingTexture(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/BlockAndTintGetter;Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;)V", at = @At(value = "INVOKE_ASSIGN", target = "Lnet/minecraft/client/renderer/block/BlockModelShaper;getBlockModel(Lnet/minecraft/world/level/block/state/BlockState;)Lnet/minecraft/client/renderer/block/model/BlockStateModel;", shift = At.Shift.AFTER), cancellable = true) + @Inject(method = "renderBreakingTexture(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/BlockAndTintGetter;Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;)V", at = @At(value = "INVOKE_ASSIGN", target = "Lnet/minecraft/client/renderer/block/BlockModelShaper;getBlockModel(Lnet/minecraft/world/level/block/state/BlockState;)Lnet/minecraft/client/renderer/block/model/BlockStateModel;"), cancellable = true) private void afterGetModel(BlockState blockState, BlockPos blockPos, BlockAndTintGetter level, PoseStack poseStack, VertexConsumer vertexConsumer, CallbackInfo ci, @Local BlockStateModel model) { modelRenderer.render(level, model, blockState, blockPos, poseStack, layer -> vertexConsumer, true, blockState.getSeed(blockPos), OverlayTexture.NO_OVERLAY); diff --git a/fabric-renderer-indigo/src/client/java/net/fabricmc/fabric/mixin/client/indigo/renderer/ItemStackRenderStateMixin.java b/fabric-renderer-indigo/src/client/java/net/fabricmc/fabric/mixin/client/indigo/renderer/ItemStackRenderStateMixin.java index 73918ff1e2..6d20f4eac9 100644 --- a/fabric-renderer-indigo/src/client/java/net/fabricmc/fabric/mixin/client/indigo/renderer/ItemStackRenderStateMixin.java +++ b/fabric-renderer-indigo/src/client/java/net/fabricmc/fabric/mixin/client/indigo/renderer/ItemStackRenderStateMixin.java @@ -42,7 +42,7 @@ private void afterInitVecLoad(Consumer posConsumer, CallbackInfo ci, pipeRef.set(new QuadToPosPipe(posConsumer, vec)); } - @Inject(method = "visitExtents(Ljava/util/function/Consumer;)V", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/vertex/PoseStack$Pose;setIdentity()V", shift = At.Shift.BEFORE)) + @Inject(method = "visitExtents(Ljava/util/function/Consumer;)V", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/vertex/PoseStack$Pose;setIdentity()V")) private void afterLayerLoad(Consumer posConsumer, CallbackInfo ci, @Local(ordinal = 0) Vector3f vec, @Local ItemStackRenderState.LayerRenderState layer, @Local Matrix4f matrix, @Share("pipe") LocalRef pipeRef) { MutableMeshImpl mutableMesh = ((AccessLayerRenderState) layer).fabric_getMutableMesh(); diff --git a/fabric-rendering-fluids-v1/src/client/java/net/fabricmc/fabric/mixin/client/rendering/fluid/LiquidBlockRendererMixin.java b/fabric-rendering-fluids-v1/src/client/java/net/fabricmc/fabric/mixin/client/rendering/fluid/LiquidBlockRendererMixin.java index f6d97332da..652f097474 100644 --- a/fabric-rendering-fluids-v1/src/client/java/net/fabricmc/fabric/mixin/client/rendering/fluid/LiquidBlockRendererMixin.java +++ b/fabric-rendering-fluids-v1/src/client/java/net/fabricmc/fabric/mixin/client/rendering/fluid/LiquidBlockRendererMixin.java @@ -23,6 +23,7 @@ import com.llamalad7.mixinextras.sugar.Share; import com.llamalad7.mixinextras.sugar.ref.LocalBooleanRef; import com.mojang.blaze3d.vertex.VertexConsumer; +import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -140,7 +141,7 @@ public int modTintColor(int original, BlockAndTintGetter level, BlockPos pos, Ve @ModifyVariable( method = "tesselate", at = @At(value = "MIXINEXTRAS:EXPRESSION", ordinal = 0), - slice = @Slice(from = @At(value = "FIELD", target = "Lnet/minecraft/client/renderer/block/LiquidBlockRenderer;waterOverlay:Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;")), + slice = @Slice(from = @At(value = "FIELD", target = "Lnet/minecraft/client/renderer/block/LiquidBlockRenderer;waterOverlay:Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;", opcode = Opcodes.GETFIELD)), ordinal = 2 ) private TextureAtlasSprite modifyOverlaySprite( diff --git a/fabric-rendering-v1/src/client/java/net/fabricmc/fabric/mixin/client/rendering/LevelRendererMixin.java b/fabric-rendering-v1/src/client/java/net/fabricmc/fabric/mixin/client/rendering/LevelRendererMixin.java index 93d8e0348e..1cd031f121 100644 --- a/fabric-rendering-v1/src/client/java/net/fabricmc/fabric/mixin/client/rendering/LevelRendererMixin.java +++ b/fabric-rendering-v1/src/client/java/net/fabricmc/fabric/mixin/client/rendering/LevelRendererMixin.java @@ -25,6 +25,7 @@ import org.joml.Matrix4f; import org.joml.Vector4f; import org.jspecify.annotations.Nullable; +import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -146,7 +147,7 @@ private void beforeTranslucentRender(CallbackInfo ci) { LevelRenderEvents.BEFORE_TRANSLUCENT.invoker().beforeTranslucent(renderContext); } - @Inject(method = "renderBlockOutline", at = @At(value = "FIELD", target = "Lnet/minecraft/client/renderer/state/CameraRenderState;pos:Lnet/minecraft/world/phys/Vec3;"), cancellable = true) + @Inject(method = "renderBlockOutline", at = @At(value = "FIELD", target = "Lnet/minecraft/client/renderer/state/CameraRenderState;pos:Lnet/minecraft/world/phys/Vec3;", opcode = Opcodes.GETFIELD), cancellable = true) private void beforeDrawBlockOutline(MultiBufferSource.BufferSource consumers, PoseStack poseStack, boolean bl, LevelRenderState worldRenderState, CallbackInfo ci) { if (!LevelRenderEvents.BEFORE_BLOCK_OUTLINE.invoker().beforeBlockOutline(renderContext, renderContext.levelState().blockOutlineRenderState)) { consumers.endLastBatch(); diff --git a/fabric-resource-loader-v1/src/client/java/net/fabricmc/fabric/mixin/resource/client/CreateWorldScreenMixin.java b/fabric-resource-loader-v1/src/client/java/net/fabricmc/fabric/mixin/resource/client/CreateWorldScreenMixin.java index d40598de46..b6b8daf27f 100644 --- a/fabric-resource-loader-v1/src/client/java/net/fabricmc/fabric/mixin/resource/client/CreateWorldScreenMixin.java +++ b/fabric-resource-loader-v1/src/client/java/net/fabricmc/fabric/mixin/resource/client/CreateWorldScreenMixin.java @@ -60,7 +60,7 @@ private static WorldDataConfiguration replaceDefaultSettings() { } @Inject(method = "getDataPackSelectionSettings", - at = @At(value = "INVOKE", target = "Lnet/minecraft/server/packs/repository/PackRepository;reload()V", shift = At.Shift.BEFORE)) + at = @At(value = "INVOKE", target = "Lnet/minecraft/server/packs/repository/PackRepository;reload()V")) private void onScanPacks(CallbackInfoReturnable> cir) { // Allow to display built-in data packs in the data pack selection screen at world creation. this.tempDataPackRepository.sources.add(new ModResourcePackCreator(PackType.SERVER_DATA)); diff --git a/fabric-resource-loader-v1/src/client/java/net/fabricmc/fabric/mixin/resource/client/PackSelectionModelMixin.java b/fabric-resource-loader-v1/src/client/java/net/fabricmc/fabric/mixin/resource/client/PackSelectionModelMixin.java index 873b77bd18..20b69192d1 100644 --- a/fabric-resource-loader-v1/src/client/java/net/fabricmc/fabric/mixin/resource/client/PackSelectionModelMixin.java +++ b/fabric-resource-loader-v1/src/client/java/net/fabricmc/fabric/mixin/resource/client/PackSelectionModelMixin.java @@ -37,11 +37,11 @@ public class PackSelectionModelMixin { @Shadow @Final - List selected; + private List selected; @Shadow @Final - List unselected; + private List unselected; /** * Do not list hidden packs in either enabledPacks or disabledPacks. diff --git a/fabric-resource-loader-v1/src/main/java/net/fabricmc/fabric/mixin/resource/DataPackCommandMixin.java b/fabric-resource-loader-v1/src/main/java/net/fabricmc/fabric/mixin/resource/DataPackCommandMixin.java index 0547ebc5be..f58ea2d3e4 100644 --- a/fabric-resource-loader-v1/src/main/java/net/fabricmc/fabric/mixin/resource/DataPackCommandMixin.java +++ b/fabric-resource-loader-v1/src/main/java/net/fabricmc/fabric/mixin/resource/DataPackCommandMixin.java @@ -61,7 +61,7 @@ private static Stream filterDisabledPackSuggestions(Stream instance, return original.call(instance, predicate).filter(profile -> !((FabricPack) profile).fabric$isHidden()); } - @Inject(method = "getPack", at = @At(value = "INVOKE", target = "Ljava/util/Collection;contains(Ljava/lang/Object;)Z", shift = At.Shift.BEFORE)) + @Inject(method = "getPack", at = @At(value = "INVOKE", target = "Ljava/util/Collection;contains(Ljava/lang/Object;)Z")) private static void errorOnInternalPack(CommandContext context, String name, boolean enable, CallbackInfoReturnable cir, @Local Pack profile) throws CommandSyntaxException { if (((FabricPack) profile).fabric$isHidden()) throw INTERNAL_PACK_EXCEPTION.create(profile.getId()); } diff --git a/fabric-resource-loader-v1/src/main/java/net/fabricmc/fabric/mixin/resource/PackRepositoryMixin.java b/fabric-resource-loader-v1/src/main/java/net/fabricmc/fabric/mixin/resource/PackRepositoryMixin.java index ffc6d08bdb..e9f50299ec 100644 --- a/fabric-resource-loader-v1/src/main/java/net/fabricmc/fabric/mixin/resource/PackRepositoryMixin.java +++ b/fabric-resource-loader-v1/src/main/java/net/fabricmc/fabric/mixin/resource/PackRepositoryMixin.java @@ -83,7 +83,7 @@ public void construct(RepositorySource[] resourcePackProviders, CallbackInfo inf } } - @Inject(method = "rebuildSelected", at = @At(value = "INVOKE", target = "Lcom/google/common/collect/ImmutableList;copyOf(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableList;", shift = At.Shift.BEFORE)) + @Inject(method = "rebuildSelected", at = @At(value = "INVOKE", target = "Lcom/google/common/collect/ImmutableList;copyOf(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableList;")) private void handleAutoEnableDisable(Collection enabledNames, CallbackInfoReturnable> cir, @Local List enabledAfterFirstRun) { ModPackResourcesUtil.refreshAutoEnabledPacks(enabledAfterFirstRun, this.available); } diff --git a/fabric-tag-api-v1/src/main/java/net/fabricmc/fabric/mixin/tag/MappedRegistryMixin.java b/fabric-tag-api-v1/src/main/java/net/fabricmc/fabric/mixin/tag/MappedRegistryMixin.java index 519a5ff9d5..2e30b95009 100644 --- a/fabric-tag-api-v1/src/main/java/net/fabricmc/fabric/mixin/tag/MappedRegistryMixin.java +++ b/fabric-tag-api-v1/src/main/java/net/fabricmc/fabric/mixin/tag/MappedRegistryMixin.java @@ -57,13 +57,13 @@ abstract class MappedRegistryMixin implements MappedRegistryExtension, TagAli private ResourceKey> key; @Shadow - MappedRegistry.TagSet allTags; + private MappedRegistry.TagSet allTags; @Shadow protected abstract HolderSet.Named createTag(TagKey tag); @Shadow - abstract void refreshTagsInHolders(); + protected abstract void refreshTagsInHolders(); @Shadow public abstract ResourceKey> key(); diff --git a/fabric-transfer-api-v1/src/main/java/net/fabricmc/fabric/mixin/transfer/AbstractFurnaceBlockEntityMixin.java b/fabric-transfer-api-v1/src/main/java/net/fabricmc/fabric/mixin/transfer/AbstractFurnaceBlockEntityMixin.java index 7b82425cca..1372d135a2 100644 --- a/fabric-transfer-api-v1/src/main/java/net/fabricmc/fabric/mixin/transfer/AbstractFurnaceBlockEntityMixin.java +++ b/fabric-transfer-api-v1/src/main/java/net/fabricmc/fabric/mixin/transfer/AbstractFurnaceBlockEntityMixin.java @@ -42,9 +42,9 @@ public abstract class AbstractFurnaceBlockEntityMixin extends BaseContainerBlock @Shadow protected NonNullList items; @Shadow - int cookingTimer; + private int cookingTimer; @Shadow - int cookingTotalTime; + private int cookingTotalTime; @Unique private boolean fabric_suppressSpecialLogic = false; diff --git a/fabric-transfer-api-v1/src/main/java/net/fabricmc/fabric/mixin/transfer/ChiseledBookShelfBlockEntityMixin.java b/fabric-transfer-api-v1/src/main/java/net/fabricmc/fabric/mixin/transfer/ChiseledBookShelfBlockEntityMixin.java index f2aeb4ed11..ed83990aaf 100644 --- a/fabric-transfer-api-v1/src/main/java/net/fabricmc/fabric/mixin/transfer/ChiseledBookShelfBlockEntityMixin.java +++ b/fabric-transfer-api-v1/src/main/java/net/fabricmc/fabric/mixin/transfer/ChiseledBookShelfBlockEntityMixin.java @@ -16,6 +16,7 @@ package net.fabricmc.fabric.mixin.transfer; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; @@ -39,6 +40,7 @@ @Mixin(ChiseledBookShelfBlockEntity.class) public class ChiseledBookShelfBlockEntityMixin implements SpecialLogicContainer { @Shadow + @Final private NonNullList items; @Shadow private int lastInteractedSlot; // last interacted slot diff --git a/fabric-transfer-api-v1/src/main/java/net/fabricmc/fabric/mixin/transfer/CrafterBlockMixin.java b/fabric-transfer-api-v1/src/main/java/net/fabricmc/fabric/mixin/transfer/CrafterBlockMixin.java index 50b6bee402..1db6032aae 100644 --- a/fabric-transfer-api-v1/src/main/java/net/fabricmc/fabric/mixin/transfer/CrafterBlockMixin.java +++ b/fabric-transfer-api-v1/src/main/java/net/fabricmc/fabric/mixin/transfer/CrafterBlockMixin.java @@ -41,7 +41,7 @@ @Mixin(CrafterBlock.class) public class CrafterBlockMixin { // Inject after vanilla's attempts to insert the stack into an inventory. - @Inject(method = "dispenseItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/ItemStack;isEmpty()Z", shift = At.Shift.BEFORE)) + @Inject(method = "dispenseItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/ItemStack;isEmpty()Z")) private void transferOrSpawnStack(ServerLevel level, BlockPos pos, CrafterBlockEntity blockEntity, ItemStack inputStack, BlockState state, RecipeHolder recipe, CallbackInfo ci, @Local Direction direction, @Local Container inventory, @Local(ordinal = 1) ItemStack itemStack) { if (inventory != null) { // Vanilla already found and tested an inventory, nothing else to do even if it failed to insert.