diff options
Diffstat (limited to 'src/main/java/gregtech/GT_Mod.java')
-rw-r--r-- | src/main/java/gregtech/GT_Mod.java | 74 |
1 files changed, 68 insertions, 6 deletions
diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java index 82517427df..0bd4e8325d 100644 --- a/src/main/java/gregtech/GT_Mod.java +++ b/src/main/java/gregtech/GT_Mod.java @@ -64,6 +64,8 @@ import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; +import java.lang.reflect.Field; +import java.lang.reflect.Method; import static gregtech.api.enums.GT_Values.MOD_ID_AE; import static gregtech.api.enums.GT_Values.MOD_ID_FR; @@ -118,7 +120,17 @@ public class GT_Mod implements IGT_Mod { private final String aTextGeneral = "general"; private final String aTextIC2 = "ic2_"; public static final Logger GT_FML_LOGGER = LogManager.getLogger("GregTech GTNH"); + //CLS private static String latestMaterial; + private static float lastPercent; + + private static Class alexiilMinecraftDisplayer; + private static Field isReplacingVanillaMaterials; + private static Method getLastPercent; + + private static Class alexiilProgressDisplayer; + private static Method displayProgress; + //end CLS static { if ((509 != GregTech_API.VERSION) || (509 != GT_ModHandler.VERSION) || (509 != GT_OreDictUnificator.VERSION) || (509 != GT_Recipe.VERSION) || (509 != GT_Utility.VERSION) || (509 != GT_RecipeRegistrator.VERSION) || (509 != Element.VERSION) || (509 != Materials.VERSION) || (509 != OrePrefixes.VERSION)) { @@ -146,6 +158,30 @@ public class GT_Mod implements IGT_Mod { Textures.BlockIcons.VOID.name(); Textures.ItemIcons.VOID.name(); + + //CLS + try { + alexiilMinecraftDisplayer = Class.forName("alexiil.mods.load.MinecraftDisplayer"); + } catch (Throwable ignored) { + } + try { + isReplacingVanillaMaterials = alexiilMinecraftDisplayer.getField("isReplacingVanillaMaterials"); + } catch (Throwable ignored) { + } + try { + getLastPercent = alexiilMinecraftDisplayer.getMethod("getLastPercent"); + } catch (Throwable ignored) { + } + + try { + alexiilProgressDisplayer = Class.forName("alexiil.mods.load.ProgressDisplayer"); + } catch (Throwable ignored) { + } + try { + displayProgress = alexiilProgressDisplayer.getMethod("displayProgress"); + } catch (Throwable ignored) { + } + //end CLS } public static int calculateTotalGTVersion(int minorVersion) { @@ -808,7 +844,12 @@ public class GT_Mod implements IGT_Mod { if (Loader.isModLoaded("betterloadingscreen")) { originalSizeStep = sizeStep; counter = replaceVanillaItemsSet.size(); - alexiil.mods.load.MinecraftDisplayer.isReplacingVanillaMaterials = true; + //alexiil.mods.load.MinecraftDisplayer.isReplacingVanillaMaterials = true; + //isReplacingVanillaMaterials.setAccessible(true); + try { + isReplacingVanillaMaterials.set(null, true); + } catch (Throwable ignored) { + } if (replaceVanillaItemsSet.size() >= 100) { sizeStep = replaceVanillaItemsSet.size()/100-1; sizeStep2 = 1; @@ -823,22 +864,26 @@ public class GT_Mod implements IGT_Mod { if (Loader.isModLoaded("betterloadingscreen")) { counter--; sizeStep--; + //displayProgress.setAccessible(true); if (counter == 1) { try { - alexiil.mods.load.ProgressDisplayer.displayProgress(m.mDefaultLocalName, ((float)95)/100); + //alexiil.mods.load.ProgressDisplayer.displayProgress(m.mDefaultLocalName, ((float)95)/100); + displayProgress.invoke(null, m.mDefaultLocalName, ((float)95)/100); } catch (Throwable e) { e.printStackTrace(); } } else if (counter == 0) { latestMaterial = m.mDefaultLocalName; try { - alexiil.mods.load.ProgressDisplayer.displayProgress(m.mDefaultLocalName, (float)1); + //alexiil.mods.load.ProgressDisplayer.displayProgress(m.mDefaultLocalName, (float)1); + displayProgress.invoke(null, m.mDefaultLocalName, (float)1); } catch (Throwable e) { e.printStackTrace(); } } else { try { - alexiil.mods.load.ProgressDisplayer.displayProgress(m.mDefaultLocalName, ((float)size)/100); + //alexiil.mods.load.ProgressDisplayer.displayProgress(m.mDefaultLocalName, ((float)size)/100); + displayProgress.invoke(null, m.mDefaultLocalName, ((float)size)/100); } catch (Throwable e) { e.printStackTrace(); } @@ -866,8 +911,25 @@ public class GT_Mod implements IGT_Mod { //CLS if (Loader.isModLoaded("betterloadingscreen")) { try { - alexiil.mods.load.MinecraftDisplayer.isReplacingVanillaMaterials = false; - alexiil.mods.load.ProgressDisplayer.displayProgress("Post Initialization: loading GregTech", alexiil.mods.load.MinecraftDisplayer.getLastPercent()); + //alexiil.mods.load.MinecraftDisplayer.isReplacingVanillaMaterials = false; + //isReplacingVanillaMaterials.setAccessible(true); + try { + isReplacingVanillaMaterials.set(null, false); + } catch (Throwable ignored) { + } + //displayProgress.setAccessible(true); + //getLastPercent.setAccessible(true); + + try { + lastPercent = (float) getLastPercent.invoke(null); + } catch (Throwable ignored) { + } + + try { + //alexiil.mods.load.ProgressDisplayer.displayProgress("Post Initialization: loading GregTech", alexiil.mods.load.MinecraftDisplayer.getLastPercent()); + displayProgress.invoke(null, "Post Initialization: loading GregTech", lastPercent); + } catch (Throwable ignored) { + } } catch (Throwable e) { e.printStackTrace(); } |