From b351febc8271719676e8b2f2f86337cfe57ea09f Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Mon, 11 Dec 2023 10:58:10 -0500 Subject: [PATCH 1/2] Patch CME in Sophisticatd Backpacks --- forge/build.gradle | 1 + .../BackpackShapesMixin.java | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/unsafe_modded_shape_caches/BackpackShapesMixin.java 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 From a76c7f25055eea3712f6813d9e8a1d943e6387e7 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Mon, 11 Dec 2023 11:01:23 -0500 Subject: [PATCH 2/2] Prevent mixin error if Sophisticated Backpacks isn't installed --- .../bugfix/unsafe_modded_shape_caches/BackpackShapesMixin.java | 2 ++ 1 file changed, 2 insertions(+) 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 index 965adf2d..a7f53d71 100644 --- 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 @@ -2,6 +2,7 @@ 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.embeddedt.modernfix.annotation.RequiresMod; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mutable; @@ -14,6 +15,7 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @Mixin(value = BackpackShapes.class, remap = false) +@RequiresMod("sophisticatedbackpacks") public abstract class BackpackShapesMixin { @Mutable @Shadow @Final private static Map SHAPES;