From 70b8696dc3e27ad7de2f5c1c7718b1b1ced2d7e9 Mon Sep 17 00:00:00 2001 From: MarbleGate Date: Wed, 27 Dec 2023 11:48:22 +0800 Subject: [PATCH] Botarium Patch --- .../common/botarium/BotariumForgeMixin.java | 21 +++++++++++++++++++ .../BasketBlockEntityMixin.java | 6 +----- .../StickyBasketBlockEntityMixin.java | 6 +----- .../create_central_kitchen.mixins.json | 1 + 4 files changed, 24 insertions(+), 10 deletions(-) create mode 100644 src/main/java/plus/dragons/createcentralkitchen/foundation/mixin/common/botarium/BotariumForgeMixin.java diff --git a/src/main/java/plus/dragons/createcentralkitchen/foundation/mixin/common/botarium/BotariumForgeMixin.java b/src/main/java/plus/dragons/createcentralkitchen/foundation/mixin/common/botarium/BotariumForgeMixin.java new file mode 100644 index 0000000..661601b --- /dev/null +++ b/src/main/java/plus/dragons/createcentralkitchen/foundation/mixin/common/botarium/BotariumForgeMixin.java @@ -0,0 +1,21 @@ +package plus.dragons.createcentralkitchen.foundation.mixin.common.botarium; + +import earth.terrarium.botarium.forge.BotariumForge; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraftforge.event.AttachCapabilitiesEvent; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import plus.dragons.createcentralkitchen.api.block.entity.DelegatingSmartTileEntity; + +@Mixin(value = BotariumForge.class, remap = false) +public class BotariumForgeMixin { + @Inject(method = "attachBlockCapabilities", at = @At("HEAD"), cancellable = true) + private static void injected(AttachCapabilitiesEvent event, CallbackInfo ci) { + Object var2 = event.getObject(); + if(var2 instanceof DelegatingSmartTileEntity){ + ci.cancel(); + } + } +} diff --git a/src/main/java/plus/dragons/createcentralkitchen/foundation/mixin/common/farmersdelight/BasketBlockEntityMixin.java b/src/main/java/plus/dragons/createcentralkitchen/foundation/mixin/common/farmersdelight/BasketBlockEntityMixin.java index 03eec33..20131b8 100644 --- a/src/main/java/plus/dragons/createcentralkitchen/foundation/mixin/common/farmersdelight/BasketBlockEntityMixin.java +++ b/src/main/java/plus/dragons/createcentralkitchen/foundation/mixin/common/farmersdelight/BasketBlockEntityMixin.java @@ -16,7 +16,7 @@ public abstract class BasketBlockEntityMixin extends RandomizableContainerBlockEntity implements Basket, SmartBlockEntityLike { @Unique - private SmartBlockEntity smartBlockEntity; + private final SmartBlockEntity smartBlockEntity = new SmartBasketBlockEntity((BasketBlockEntity) (Object) this); private BasketBlockEntityMixin(BlockEntityType pType, BlockPos pPos, BlockState pBlockState) { super(pType, pPos, pBlockState); @@ -24,10 +24,6 @@ private BasketBlockEntityMixin(BlockEntityType pType, BlockPos pPos, BlockSta @Override public SmartBlockEntity asSmartBlockEntity() { - // Initialize here so mods like botarium will work - if(smartBlockEntity == null){ - smartBlockEntity = new SmartBasketBlockEntity((BasketBlockEntity) (Object) this); - } return smartBlockEntity; } diff --git a/src/main/java/plus/dragons/createcentralkitchen/foundation/mixin/common/minersdelight/StickyBasketBlockEntityMixin.java b/src/main/java/plus/dragons/createcentralkitchen/foundation/mixin/common/minersdelight/StickyBasketBlockEntityMixin.java index e67a1ee..c656470 100644 --- a/src/main/java/plus/dragons/createcentralkitchen/foundation/mixin/common/minersdelight/StickyBasketBlockEntityMixin.java +++ b/src/main/java/plus/dragons/createcentralkitchen/foundation/mixin/common/minersdelight/StickyBasketBlockEntityMixin.java @@ -17,7 +17,7 @@ public abstract class StickyBasketBlockEntityMixin extends RandomizableContainerBlockEntity implements Basket, SmartBlockEntityLike { @Unique - private SmartBlockEntity smartBlockEntity; + private final SmartBlockEntity smartBlockEntity = new SmartBasketBlockEntity((BasketBlockEntity) (Object) this); private StickyBasketBlockEntityMixin(BlockEntityType pType, BlockPos pPos, BlockState pBlockState) { super(pType, pPos, pBlockState); @@ -25,10 +25,6 @@ private StickyBasketBlockEntityMixin(BlockEntityType pType, BlockPos pPos, Bl @Override public SmartBlockEntity asSmartBlockEntity() { - // Initialize here so mods like botarium will work - if(smartBlockEntity == null){ - smartBlockEntity = new SmartBasketBlockEntity((BasketBlockEntity) (Object) this); - } return smartBlockEntity; } diff --git a/src/main/resources/create_central_kitchen.mixins.json b/src/main/resources/create_central_kitchen.mixins.json index de43e1f..6ae5603 100644 --- a/src/main/resources/create_central_kitchen.mixins.json +++ b/src/main/resources/create_central_kitchen.mixins.json @@ -5,6 +5,7 @@ "compatibilityLevel": "JAVA_17", "refmap": "create_central_kitchen.refmap.json", "mixins": [ + "common.botarium.BotariumForgeMixin", "common.create.BeltHelperMixin", "common.create.BlockEntityBehaviourMixin", "common.create.CreateJEIMixin",