diff options
Diffstat (limited to 'src/main/java/kubatech/api')
5 files changed, 46 insertions, 2 deletions
diff --git a/src/main/java/kubatech/api/LoaderReference.java b/src/main/java/kubatech/api/LoaderReference.java index b9e76a9a30..3215fa1b21 100644 --- a/src/main/java/kubatech/api/LoaderReference.java +++ b/src/main/java/kubatech/api/LoaderReference.java @@ -15,4 +15,6 @@ public class LoaderReference { public static final boolean HarvestCraft = Loader.isModLoaded("harvestcraft"); public static final boolean TwilightForest = Loader.isModLoaded("TwilightForest"); public static final boolean Forestry = Loader.isModLoaded("Forestry"); + public static final boolean DraconicEvolution = Loader.isModLoaded("DraconicEvolution"); + public static final boolean Avaritia = Loader.isModLoaded("Avaritia"); } diff --git a/src/main/java/kubatech/api/enums/ItemList.java b/src/main/java/kubatech/api/enums/ItemList.java index b37bd86c1c..00334d848e 100644 --- a/src/main/java/kubatech/api/enums/ItemList.java +++ b/src/main/java/kubatech/api/enums/ItemList.java @@ -52,7 +52,8 @@ public enum ItemList implements IItemContainer { FermentedTeaLeaf, BruisedTeaLeaf, PartiallyOxidizedTeaLeaf, - ; + TeaAcceptorResearchNote, + TeaAcceptor; private ItemStack mStack; private boolean mHasNotBeenSet = true; diff --git a/src/main/java/kubatech/api/helpers/ReflectionHelper.java b/src/main/java/kubatech/api/helpers/ReflectionHelper.java index 1d7449afc4..7b02fe6c82 100644 --- a/src/main/java/kubatech/api/helpers/ReflectionHelper.java +++ b/src/main/java/kubatech/api/helpers/ReflectionHelper.java @@ -45,6 +45,7 @@ public class ReflectionHelper { boolean exceptionDetected = false; Field f = null; do { + exceptionDetected = false; try { f = cl.getDeclaredField(fieldName); f.setAccessible(true); @@ -61,6 +62,38 @@ public class ReflectionHelper { } } + public static <T> boolean setField(Object obj, String fieldName, T value) { + Class<?> cl = obj.getClass(); + String clName = cl.getName(); + HashMap<String, Field> classmap = classes.computeIfAbsent(clName, s -> new _FieldsMethods()).fields; + try { + if (classmap.containsKey(fieldName)) { + Field f = classmap.get(fieldName); + if (f == null) return false; + f.set(obj, value); + return true; + } + boolean exceptionDetected = false; + Field f = null; + do { + exceptionDetected = false; + try { + f = cl.getDeclaredField(fieldName); + f.setAccessible(true); + } catch (Exception ex) { + exceptionDetected = true; + cl = cl.getSuperclass(); + } + } while (exceptionDetected && !cl.equals(Object.class)); + classmap.put(fieldName, f); + if (f == null) return false; + f.set(obj, value); + return true; + } catch (Exception ex) { + return false; + } + } + public static <T> T getField(Object obj, String fieldName) { return getField(obj, fieldName, null); } @@ -87,6 +120,7 @@ public class ReflectionHelper { boolean exceptionDetected = false; Method m = null; do { + exceptionDetected = false; try { m = cl.getDeclaredMethod(methodName, argsTypes); m.setAccessible(true); diff --git a/src/main/java/kubatech/api/network/CustomTileEntityPacket.java b/src/main/java/kubatech/api/network/CustomTileEntityPacket.java index b81bbb0337..11fb4f848f 100644 --- a/src/main/java/kubatech/api/network/CustomTileEntityPacket.java +++ b/src/main/java/kubatech/api/network/CustomTileEntityPacket.java @@ -128,7 +128,11 @@ public class CustomTileEntityPacket implements IMessage { @Override public IMessage onMessage(CustomTileEntityPacket message, MessageContext ctx) { if (!ModUtils.isClientSided) return null; - World w = Minecraft.getMinecraft().thePlayer.getEntityWorld(); + Minecraft mc = Minecraft.getMinecraft(); + if (mc == null) return null; + if (mc.thePlayer == null) return null; + World w = mc.thePlayer.getEntityWorld(); + if (w == null) return null; if (message.w != w.provider.dimensionId) return null; TileEntity e = w.getTileEntity(message.x, message.y, message.z); if (e == null || e.isInvalid()) return null; diff --git a/src/main/java/kubatech/api/network/LoadConfigPacket.java b/src/main/java/kubatech/api/network/LoadConfigPacket.java index defb139151..03602e89f1 100644 --- a/src/main/java/kubatech/api/network/LoadConfigPacket.java +++ b/src/main/java/kubatech/api/network/LoadConfigPacket.java @@ -26,10 +26,12 @@ import io.netty.buffer.ByteBuf; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.HashSet; +import kubatech.api.LoaderReference; import kubatech.config.Config; import kubatech.config.OverridesConfig; import kubatech.kubatech; import kubatech.loaders.MobRecipeLoader; +import kubatech.loaders.TCLoader; public class LoadConfigPacket implements IMessage { @@ -85,6 +87,7 @@ public class LoadConfigPacket implements IMessage { public IMessage onMessage(LoadConfigPacket message, MessageContext ctx) { kubatech.info("Received Mob Handler config, parsing"); MobRecipeLoader.processMobRecipeMap(message.mobsToLoad, message.mobsOverrides); + if (LoaderReference.Thaumcraft) TCLoader.lateLoad(); return null; } } |