You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
4.6 KiB
85 lines
4.6 KiB
--- ../src-base/minecraft/cpw/mods/fml/relauncher/CoreModManager.java |
|
+++ ../src-work/minecraft/cpw/mods/fml/relauncher/CoreModManager.java |
|
@@ -60,7 +60,7 @@ |
|
private static final Attributes.Name COREMODCONTAINSFMLMOD = new Attributes.Name("FMLCorePluginContainsFMLMod"); |
|
private static final Attributes.Name MODTYPE = new Attributes.Name("ModType"); |
|
private static final Attributes.Name MODSIDE = new Attributes.Name("ModSide"); |
|
- private static String[] rootPlugins = { "cpw.mods.fml.relauncher.FMLCorePlugin", "net.minecraftforge.classloading.FMLForgePlugin" }; |
|
+ private static String[] rootPlugins = { "cpw.mods.fml.relauncher.FMLCorePlugin", "net.minecraftforge.classloading.FMLForgePlugin", "pw.prok.imagine.ImagineLoadingPlugin" }; |
|
private static List<String> loadedCoremods = Lists.newArrayList(); |
|
private static List<FMLPluginWrapper> loadPlugins; |
|
private static boolean deobfuscatedEnvironment; |
|
@@ -101,6 +101,7 @@ |
|
@Override |
|
public void injectIntoClassLoader(LaunchClassLoader classLoader) |
|
{ |
|
+ // Cauldron end |
|
FMLRelaunchLog.fine("Injecting coremod %s {%s} class transformers", name, coreModInstance.getClass().getName()); |
|
if (coreModInstance.getASMTransformerClass() != null) for (String transformer : coreModInstance.getASMTransformerClass()) |
|
{ |
|
@@ -160,6 +161,9 @@ |
|
|
|
} |
|
|
|
+ // Cauldron - group output of @MCVersion warnings |
|
+ private static List<String> noVersionAnnotationCoreMods = new ArrayList<String>(); |
|
+ |
|
public static void handleLaunch(File mcDir, LaunchClassLoader classLoader, FMLTweaker tweaker) |
|
{ |
|
CoreModManager.mcDir = mcDir; |
|
@@ -219,6 +223,19 @@ |
|
loadCoreMod(classLoader, coreModClassName, null); |
|
} |
|
discoverCoreMods(mcDir, classLoader); |
|
+ // Cauldron start - group output of @MCVersion warnings |
|
+ if (!noVersionAnnotationCoreMods.isEmpty()) |
|
+ { |
|
+ FMLRelaunchLog |
|
+ .warning("The following coremods do not have a @MCVersion annotation. They may cause problems if this is not the correct version of Minecraft for them."); |
|
+ StringBuilder sb = new StringBuilder("Missing @MCVersion: "); |
|
+ for (String className : noVersionAnnotationCoreMods) |
|
+ { |
|
+ sb.append(className).append(" "); |
|
+ } |
|
+ FMLRelaunchLog.warning(sb.toString()); |
|
+ } |
|
+ // Cauldron end |
|
|
|
} |
|
|
|
@@ -336,6 +353,10 @@ |
|
String cascadedTweaker = mfAttributes.getValue("TweakClass"); |
|
if (cascadedTweaker != null) |
|
{ |
|
+ if ("fastcraft.Tweaker".equals(cascadedTweaker) && !"false".equals(System.getProperty("kcauldron.fastcraft.disable", "true"))) { |
|
+ FMLRelaunchLog.info("Found FastCraft tweaker, skipping..."); |
|
+ continue; |
|
+ } |
|
FMLRelaunchLog.info("Loading tweaker %s from %s", cascadedTweaker, coreMod.getName()); |
|
Integer sortOrder = Ints.tryParse(Strings.nullToEmpty(mfAttributes.getValue("TweakOrder"))); |
|
sortOrder = (sortOrder == null ? Integer.valueOf(0) : sortOrder); |
|
@@ -365,6 +386,10 @@ |
|
FMLRelaunchLog.fine("Not found coremod data in %s", coreMod.getName()); |
|
continue; |
|
} |
|
+ if ("fastcraft.LoadingPlugin".equals(fmlCorePlugin) && !"false".equals(System.getProperty("kcauldron.fastcraft.disable", "true"))) { |
|
+ FMLRelaunchLog.warning("Found FastCraft coremod, skipping..."); |
|
+ continue; |
|
+ } |
|
// Support things that are mod jars, but not FML mod jars |
|
try |
|
{ |
|
@@ -467,8 +492,11 @@ |
|
MCVersion requiredMCVersion = coreModClazz.getAnnotation(IFMLLoadingPlugin.MCVersion.class); |
|
if (!Arrays.asList(rootPlugins).contains(coreModClass) && (requiredMCVersion == null || Strings.isNullOrEmpty(requiredMCVersion.value()))) |
|
{ |
|
- FMLRelaunchLog.log(Level.WARN, "The coremod %s does not have a MCVersion annotation, it may cause issues with this version of Minecraft", |
|
- coreModClass); |
|
+ // Cauldron start - group output of @MCVersion warnings |
|
+ // FMLRelaunchLog.log(Level.WARN, "The coremod %s does not have a MCVersion annotation, it may cause issues with this version of Minecraft", |
|
+ // coreModClass); |
|
+ noVersionAnnotationCoreMods.add(coreModClass); |
|
+ // Cauldron end |
|
} |
|
else if (requiredMCVersion != null && !FMLInjectionData.mccversion.equals(requiredMCVersion.value())) |
|
{
|
|
|