From 9ed317f52b253e8d437334a5d79a5a9d022334f7 Mon Sep 17 00:00:00 2001 From: modmuss <modmuss50@gmail.com> Date: Tue, 21 Jan 2025 18:47:31 +0000 Subject: [PATCH] Fix syncing block entity attachments on load. (#4390) * Fix syncing block entity attachments on load. Closes #4389 * Return success (cherry picked from commit 7e31339eff701781b568ae44be51d863e4a49aa7) (cherry picked from commit 8212661064040ba29dd15f0eb7fff2033208b8cd) --- .../fabric/mixin/attachment/AttachmentTargetsMixin.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/fabric-data-attachment-api-v1/src/main/java/net/fabricmc/fabric/mixin/attachment/AttachmentTargetsMixin.java b/fabric-data-attachment-api-v1/src/main/java/net/fabricmc/fabric/mixin/attachment/AttachmentTargetsMixin.java index bdf2edda7..a11ee6787 100644 --- a/fabric-data-attachment-api-v1/src/main/java/net/fabricmc/fabric/mixin/attachment/AttachmentTargetsMixin.java +++ b/fabric-data-attachment-api-v1/src/main/java/net/fabricmc/fabric/mixin/attachment/AttachmentTargetsMixin.java @@ -28,6 +28,7 @@ import org.spongepowered.asm.mixin.Unique; import net.minecraft.block.entity.BlockEntity; import net.minecraft.entity.Entity; import net.minecraft.nbt.NbtCompound; +import net.minecraft.registry.DynamicRegistryManager; import net.minecraft.registry.RegistryWrapper; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.world.World; @@ -100,7 +101,7 @@ abstract class AttachmentTargetsMixin implements AttachmentTargetImpl { if (this.fabric_shouldTryToSync() && this.fabric_dataAttachments != null) { this.fabric_dataAttachments.forEach((type, value) -> { if (type.isSynced()) { - acknowledgeSynced(type, value); + acknowledgeSynced(type, value, wrapperLookup); } }); } @@ -117,8 +118,9 @@ abstract class AttachmentTargetsMixin implements AttachmentTargetImpl { } @Unique - private void acknowledgeSynced(AttachmentType<?> type, Object value) { - acknowledgeSyncedEntry(type, AttachmentChange.create(fabric_getSyncTargetInfo(), type, value, fabric_getDynamicRegistryManager())); + private void acknowledgeSynced(AttachmentType<?> type, Object value, RegistryWrapper.WrapperLookup wrapperLookup) { + DynamicRegistryManager dynamicRegistryManager = (wrapperLookup instanceof DynamicRegistryManager drm) ? drm : fabric_getDynamicRegistryManager(); + acknowledgeSyncedEntry(type, AttachmentChange.create(fabric_getSyncTargetInfo(), type, value, dynamicRegistryManager)); } @Unique