diff --git a/forge/build.gradle b/forge/build.gradle index 262aac78..5d783901 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -64,6 +64,7 @@ dependencies { modCompileOnly("team.chisel.ctm:CTM:${ctm_version}") modCompileOnly("curse.maven:supermartijncore-454372:4455378") modCompileOnly("curse.maven:valhesiastructures-347488:3476252") + modCompileOnly("curse.maven:sophbackpacks-422301:4167327") modCompileOnly files("deps/starlight-1.2.jar") modCompileOnly("appeng:appliedenergistics2:8.4.7") modCompileOnly("vazkii.patchouli:Patchouli:1.16.4-53.3") diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/unsafe_modded_shape_caches/BackpackShapesMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/unsafe_modded_shape_caches/BackpackShapesMixin.java new file mode 100644 index 00000000..965adf2d --- /dev/null +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/unsafe_modded_shape_caches/BackpackShapesMixin.java @@ -0,0 +1,24 @@ +package org.embeddedt.modernfix.forge.mixin.bugfix.unsafe_modded_shape_caches; + +import net.minecraft.world.phys.shapes.VoxelShape; +import net.p3pp3rf1y.sophisticatedbackpacks.backpack.BackpackShapes; +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.Map; +import java.util.concurrent.ConcurrentHashMap; + +@Mixin(value = BackpackShapes.class, remap = false) +public abstract class BackpackShapesMixin { + @Mutable @Shadow @Final private static Map SHAPES; + + @Inject(method = "", at = @At("RETURN")) + private static void concurrentMapInitialization(CallbackInfo ci) { + SHAPES = new ConcurrentHashMap<>(SHAPES); + } +} \ No newline at end of file