From 5d4f2648ceb147aae7ce00241ebfb34919dbb1bf Mon Sep 17 00:00:00 2001 From: Alkalus Date: Mon, 27 Nov 2017 13:57:02 +1000 Subject: $ Hopefully fixed crash when Thaumcraft wasn't loaded. $ Hopefully fixed crash when Forestry wasn't loaded. --- .../core/handler/COMPAT_IntermodStaging.java | 2 +- .../core/tileentities/ModTileEntities.java | 13 +++++++---- src/Java/gtPlusPlus/xmod/forestry/HANDLER_FR.java | 26 ++++++++++++--------- .../xmod/gregtech/api/items/Gregtech_MetaTool.java | 5 +++- .../xmod/thaumcraft/HANDLER_Thaumcraft.java | 26 +++++++++++++++++++++ .../xmod/thaumcraft/common/HANDLER_Thaumcraft.java | 27 ---------------------- 6 files changed, 54 insertions(+), 45 deletions(-) create mode 100644 src/Java/gtPlusPlus/xmod/thaumcraft/HANDLER_Thaumcraft.java delete mode 100644 src/Java/gtPlusPlus/xmod/thaumcraft/common/HANDLER_Thaumcraft.java (limited to 'src/Java/gtPlusPlus') diff --git a/src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java b/src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java index b534cd11cd..a615fd6022 100644 --- a/src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java +++ b/src/Java/gtPlusPlus/core/handler/COMPAT_IntermodStaging.java @@ -6,7 +6,7 @@ import gtPlusPlus.xmod.forestry.HANDLER_FR; import gtPlusPlus.xmod.gregtech.HANDLER_GT; import gtPlusPlus.xmod.growthcraft.HANDLER_GC; import gtPlusPlus.xmod.ic2.HANDLER_IC2; -import gtPlusPlus.xmod.thaumcraft.common.HANDLER_Thaumcraft; +import gtPlusPlus.xmod.thaumcraft.HANDLER_Thaumcraft; import gtPlusPlus.xmod.thermalfoundation.HANDLER_TF; public class COMPAT_IntermodStaging { diff --git a/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java b/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java index 87fb8ef76d..3d3dc66f20 100644 --- a/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java +++ b/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java @@ -1,6 +1,7 @@ package gtPlusPlus.core.tileentities; import cpw.mods.fml.common.registry.GameRegistry; +import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.tileentities.general.TileEntityFirepit; import gtPlusPlus.core.tileentities.general.TileEntityFishTrap; import gtPlusPlus.core.tileentities.general.TileEntityHeliumGenerator; @@ -12,8 +13,7 @@ import gtPlusPlus.core.tileentities.machines.TileEntityTradeTable; import gtPlusPlus.core.tileentities.machines.TileEntityWorkbench; import gtPlusPlus.core.tileentities.machines.TileEntityWorkbenchAdvanced; import gtPlusPlus.core.util.Utils; -import gtPlusPlus.xmod.thaumcraft.common.tile.TileFastAlchemyFurnace; -import gtPlusPlus.xmod.thaumcraft.common.tile.TileFastArcaneAlembic; +import gtPlusPlus.xmod.thaumcraft.common.tile.TCTileEntities; public class ModTileEntities { @@ -26,12 +26,15 @@ public class ModTileEntities { GameRegistry.registerTileEntity(TileEntityFirepit.class, "TileFirePit"); GameRegistry.registerTileEntity(TileEntityInfiniteFluid.class, "TileInfiniteFluid"); GameRegistry.registerTileEntity(TileEntityProjectTable.class, "TileProjectTable"); - GameRegistry.registerTileEntity(TileEntityTradeTable.class, "TileTradeTable"); + GameRegistry.registerTileEntity(TileEntityTradeTable.class, "TileTradeTable"); GameRegistry.registerTileEntity(TileEntityModularityTable.class, "TileEntityModularityTable"); - GameRegistry.registerTileEntity(TileFastAlchemyFurnace.class, "TileFastAlchemyFurnace"); - GameRegistry.registerTileEntity(TileFastArcaneAlembic.class, "TileFastArcaneAlembic"); GameRegistry.registerTileEntity(TileEntityXpConverter.class, "TileEntityXpConverter"); + + //Mod TEs + if (LoadedMods.Thaumcraft){ + TCTileEntities.init(); + } } } diff --git a/src/Java/gtPlusPlus/xmod/forestry/HANDLER_FR.java b/src/Java/gtPlusPlus/xmod/forestry/HANDLER_FR.java index 09268e49d5..a4af51f4e5 100644 --- a/src/Java/gtPlusPlus/xmod/forestry/HANDLER_FR.java +++ b/src/Java/gtPlusPlus/xmod/forestry/HANDLER_FR.java @@ -1,9 +1,9 @@ package gtPlusPlus.xmod.forestry; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + import cpw.mods.fml.common.Optional; -import forestry.core.blocks.BlockRegistry; -import forestry.core.proxy.Proxies; -import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.xmod.forestry.bees.items.FR_ItemRegistry; @@ -11,9 +11,7 @@ import gtPlusPlus.xmod.forestry.bees.recipe.FR_Gregtech_Recipes; import net.minecraft.block.Block; import net.minecraft.world.World; -public class HANDLER_FR extends BlockRegistry { - - //public static BlockDenseBeeHouse apiculture; +public class HANDLER_FR { public static void preInit(){ if (LoadedMods.Forestry){ @@ -43,12 +41,18 @@ public class HANDLER_FR extends BlockRegistry { @Optional.Method(modid = "Forestry") private static void createBlockBreakParticles_INTERNAL(final World world, final int x, final int y, final int z, final Block block){ if (LoadedMods.Forestry){ - forestry.core.proxy.ProxyCommon mCommonProxy = ReflectionUtils.getField("forestry.core.proxy.ProxyCommon", "common"); - if (mCommonProxy != null){ - mCommonProxy.addBlockDestroyEffects(world, x, y, z, block, 0); + Class oClass; + try { + oClass = Class.forName("forestry.core.proxy.ProxyCommon"); + Object oProxy = ReflectionUtils.getField(oClass, "common"); + if (oProxy != null && oClass.isInstance(oProxy)){ + Method mParticles = oClass.getDeclaredMethod("addBlockDestroyEffects", World.class, int.class, int.class, int.class, Block.class, int.class); + mParticles.invoke(oProxy, world, x, y, z, block, 0); + } } - } - + catch (ClassNotFoundException | NoSuchFieldException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { + } + } } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/items/Gregtech_MetaTool.java b/src/Java/gtPlusPlus/xmod/gregtech/api/items/Gregtech_MetaTool.java index 65733c440a..89deeb931d 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/items/Gregtech_MetaTool.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/items/Gregtech_MetaTool.java @@ -37,7 +37,10 @@ import net.minecraftforge.event.world.BlockEvent; * This is an example on how you can create a Tool ItemStack, in this case a Bismuth Wrench: * GT_MetaGenerated_Tool.sInstances.get("gt.metatool.01").getToolWithStats(16, 1, Materials.Bismuth, Materials.Bismuth, null); */ -@Optional.InterfaceList(value = {@Optional.Interface(iface = "mods.railcraft.api.core.items.IToolCrowbar", modid = MOD_ID_RC), @Optional.Interface(iface = "buildcraft.api.tools.IToolWrench", modid = "BuildCraft")}) +@Optional.InterfaceList({@Optional.Interface(iface = "forestry.api.arboriculture.IToolGrafter", modid = "Forestry"), + @Optional.Interface(iface = "mods.railcraft.api.core.items.IToolCrowbar", modid = "Railcraft"), + @Optional.Interface(iface = "buildcraft.api.tools.IToolWrench", modid = "BuildCraft"), + @Optional.Interface(iface = "crazypants.enderio.api.tool.ITool", modid = "EnderIO")}) public abstract class Gregtech_MetaTool extends GT_MetaGenerated_Tool implements IDamagableItem, IToolCrowbar, IToolWrench { /** * All instances of this Item Class are listed here. diff --git a/src/Java/gtPlusPlus/xmod/thaumcraft/HANDLER_Thaumcraft.java b/src/Java/gtPlusPlus/xmod/thaumcraft/HANDLER_Thaumcraft.java new file mode 100644 index 0000000000..5dec772d03 --- /dev/null +++ b/src/Java/gtPlusPlus/xmod/thaumcraft/HANDLER_Thaumcraft.java @@ -0,0 +1,26 @@ +package gtPlusPlus.xmod.thaumcraft; + +import gtPlusPlus.core.lib.LoadedMods; +import gtPlusPlus.xmod.thaumcraft.common.block.TC_BlockHandler; + +public class HANDLER_Thaumcraft { + + public static void preInit(){ + if (LoadedMods.Thaumcraft){ + TC_BlockHandler.run(); + } + } + + public static void init(){ + if (LoadedMods.Thaumcraft){ + + } + } + + public static void postInit(){ + if (LoadedMods.Thaumcraft){ + + } + } + +} diff --git a/src/Java/gtPlusPlus/xmod/thaumcraft/common/HANDLER_Thaumcraft.java b/src/Java/gtPlusPlus/xmod/thaumcraft/common/HANDLER_Thaumcraft.java deleted file mode 100644 index 7c5d2407cd..0000000000 --- a/src/Java/gtPlusPlus/xmod/thaumcraft/common/HANDLER_Thaumcraft.java +++ /dev/null @@ -1,27 +0,0 @@ -package gtPlusPlus.xmod.thaumcraft.common; - -import gtPlusPlus.core.lib.LoadedMods; -import gtPlusPlus.xmod.thaumcraft.common.block.TC_BlockHandler; - -public class HANDLER_Thaumcraft { - - public static void preInit(){ - if (LoadedMods.Thaumcraft){ - TC_BlockHandler.run(); - } - } - - public static void init(){ - if (LoadedMods.Thaumcraft){ - - } - } - - public static void postInit(){ - if (LoadedMods.Thaumcraft){ - - } - } - - -} -- cgit