diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/gen/feature/template/TemplateManagerMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/gen/feature/template/TemplateManagerMixin.java new file mode 100644 index 00000000..e9fb6d90 --- /dev/null +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/gen/feature/template/TemplateManagerMixin.java @@ -0,0 +1,29 @@ +package io.izzel.arclight.common.mixin.core.world.gen.feature.template; + +import com.mojang.datafixers.DataFixer; +import net.minecraft.resources.IResourceManager; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.gen.feature.template.Template; +import net.minecraft.world.gen.feature.template.TemplateManager; +import net.minecraft.world.storage.SaveFormat; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Mutable; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.Collections; +import java.util.Map; + +@Mixin(TemplateManager.class) +public class TemplateManagerMixin { + + @Shadow @Final @Mutable private Map templates; + + @Inject(method = "", at = @At("RETURN")) + private void arclight$init(IResourceManager p_i232119_1_, SaveFormat.LevelSave p_i232119_2_, DataFixer p_i232119_3_, CallbackInfo ci) { + this.templates = Collections.synchronizedMap(this.templates); + } +} diff --git a/arclight-common/src/main/resources/mixins.arclight.core.json b/arclight-common/src/main/resources/mixins.arclight.core.json index 8f8223ee..6bb879b9 100644 --- a/arclight-common/src/main/resources/mixins.arclight.core.json +++ b/arclight-common/src/main/resources/mixins.arclight.core.json @@ -411,6 +411,7 @@ "world.chunk.storage.RegionFileCacheMixin", "world.gen.WorldGenRegionMixin", "world.gen.feature.structure.SwampHutPieceMixin", + "world.gen.feature.template.TemplateManagerMixin", "world.raid.RaidManagerMixin", "world.raid.RaidMixin", "world.server.ChunkHolderMixin",