From 88daf6683d17890652670eabbe69c234f9d5339e Mon Sep 17 00:00:00 2001 From: Shadows_of_Fire Date: Thu, 22 Mar 2018 22:53:13 -0400 Subject: [PATCH] Fixes #1055 --- .../mod/ActuallyAdditions.java | 23 ++++++------ .../mod/util/compat/CompatUtil.java | 37 ++++++++++++------- 2 files changed, 35 insertions(+), 25 deletions(-) diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditions.java b/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditions.java index 25ba4b0a8..2b9c88f6b 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditions.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditions.java @@ -37,6 +37,7 @@ import de.ellpeck.actuallyadditions.mod.recipe.TreasureChestHandler; import de.ellpeck.actuallyadditions.mod.tile.TileEntityBase; import de.ellpeck.actuallyadditions.mod.update.UpdateChecker; import de.ellpeck.actuallyadditions.mod.util.ModUtil; +import de.ellpeck.actuallyadditions.mod.util.compat.CompatUtil; import net.minecraft.server.MinecraftServer; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; @@ -54,7 +55,7 @@ import net.minecraftforge.fml.common.event.FMLServerStartedEvent; import net.minecraftforge.fml.common.event.FMLServerStoppedEvent; @Mod(modid = ModUtil.MOD_ID, name = ModUtil.NAME, version = ModUtil.VERSION, guiFactory = "de.ellpeck.actuallyadditions.mod.config.GuiFactory", acceptedMinecraftVersions = "[1.12, 1.13)") -public class ActuallyAdditions{ +public class ActuallyAdditions { @Instance(ModUtil.MOD_ID) public static ActuallyAdditions instance; @@ -64,20 +65,20 @@ public class ActuallyAdditions{ public static boolean commonCapsLoaded; - static{ + static { //For some reason, this has to be done here FluidRegistry.enableUniversalBucket(); } @EventHandler - public void preInit(FMLPreInitializationEvent event){ + public void preInit(FMLPreInitializationEvent event) { ModUtil.LOGGER.info("Starting PreInitialization Phase..."); ActuallyAdditionsAPI.methodHandler = new MethodHandler(); ActuallyAdditionsAPI.connectionHandler = new LaserRelayConnectionHandler(); Lenses.init(); InitBooklet.preInit(); - + CompatUtil.registerCraftingTweaks(); commonCapsLoaded = Loader.isModLoaded("commoncapabilities"); MinecraftForge.EVENT_BUS.register(new RegistryHandler()); @@ -94,7 +95,7 @@ public class ActuallyAdditions{ } @EventHandler - public void init(FMLInitializationEvent event){ + public void init(FMLInitializationEvent event) { ModUtil.LOGGER.info("Starting Initialization Phase..."); BannerHelper.init(); @@ -113,7 +114,7 @@ public class ActuallyAdditions{ } @EventHandler - public void postInit(FMLPostInitializationEvent event){ + public void postInit(FMLPostInitializationEvent event) { ModUtil.LOGGER.info("Starting PostInitialization Phase..."); ItemCoffee.initIngredients(); @@ -128,23 +129,23 @@ public class ActuallyAdditions{ proxy.postInit(event); ConfigurationHandler.redefineConfigs(); - + ModUtil.LOGGER.info("PostInitialization Finished."); } @EventHandler - public void serverStarted(FMLServerStartedEvent event){ + public void serverStarted(FMLServerStartedEvent event) { MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance(); - if(server != null){ + if (server != null) { World world = server.getEntityWorld(); - if(world != null && !world.isRemote){ + if (world != null && !world.isRemote) { WorldData.get(world, true).markDirty(); } } } @EventHandler - public void serverStopped(FMLServerStoppedEvent event){ + public void serverStopped(FMLServerStoppedEvent event) { WorldData.clear(); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/CompatUtil.java b/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/CompatUtil.java index ad641eeb8..54eae5636 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/CompatUtil.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/util/compat/CompatUtil.java @@ -13,28 +13,37 @@ package de.ellpeck.actuallyadditions.mod.util.compat; import net.minecraft.client.gui.inventory.GuiCrafting; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ContainerWorkbench; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fml.common.Loader; +import net.minecraftforge.fml.common.event.FMLInterModComms; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public final class CompatUtil { - static boolean fb = Loader.isModLoaded("fastbench"); + static boolean fb = Loader.isModLoaded("fastbench"); - @SideOnly(Side.CLIENT) - public static Object getCrafterGuiElement(EntityPlayer player, World world, int x, int y, int z) { - if (fb) return CompatFastBench.getFastBenchGui(player, world, x, y, z); - return new GuiCrafting(player.inventory, world, new BlockPos(x, y, z)); - } + @SideOnly(Side.CLIENT) + public static Object getCrafterGuiElement(EntityPlayer player, World world, int x, int y, int z) { + if (fb) return CompatFastBench.getFastBenchGui(player, world, x, y, z); + return new GuiCrafting(player.inventory, world, new BlockPos(x, y, z)); + } - public static Object getCrafterContainerElement(EntityPlayer player, World world, int x, int y, int z) { - if (fb) return CompatFastBench.getFastBenchContainer(player, world, x, y, z); - return new ContainerWorkbench(player.inventory, world, new BlockPos(x, y, z)) { - public boolean canInteractWith(EntityPlayer playerIn) { - return true; - } - }; - } + public static Object getCrafterContainerElement(EntityPlayer player, World world, int x, int y, int z) { + if (fb) return CompatFastBench.getFastBenchContainer(player, world, x, y, z); + return new ContainerWorkbench(player.inventory, world, new BlockPos(x, y, z)) { + public boolean canInteractWith(EntityPlayer playerIn) { + return true; + } + }; + } + + public static void registerCraftingTweaks() { + NBTTagCompound t = new NBTTagCompound(); + if (fb) t.setString("ContainerClass", "de.ellpeck.actuallyadditions.mod.util.compat.CompatFastBench$1"); + else t.setString("ContainerClass", "de.ellpeck.actuallyadditions.mod.util.compat.CompatUtil$1"); + FMLInterModComms.sendMessage("craftingtweaks", "RegisterProvider", t); + } }