From b26b3fda1b3812341ee31704924b545e65613c19 Mon Sep 17 00:00:00 2001 From: Christian Weeks Date: Sat, 12 May 2012 02:10:50 -0400 Subject: [PATCH] Fix up incorrect dependency handling --- .../modloader/ModLoaderModContainer.java | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/fml/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java b/fml/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java index 6809030969..068878af59 100644 --- a/fml/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java +++ b/fml/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java @@ -484,6 +484,7 @@ public class ModLoaderModContainer implements ModContainer return; } + boolean parseFailure=false; StringTokenizer st = new StringTokenizer(mod.getPriorities(), ";"); for (; st.hasMoreTokens();) @@ -493,24 +494,29 @@ public class ModLoaderModContainer implements ModContainer if (depparts.length < 2) { - throw new LoaderException(); + parseFailure=true; } - - if ("required-before".equals(depparts[0]) || "required-after".equals(depparts[0])) + else if ("required-before".equals(depparts[0]) || "required-after".equals(depparts[0])) { - dependencies.add(depparts[1]); + if (!depparts[1].trim().equals("*")) { + dependencies.add(depparts[1]); + } else { + parseFailure=true; + } } - - if ("required-before".equals(depparts[0]) || "before".equals(depparts[0])) + else if ("required-before".equals(depparts[0]) || "before".equals(depparts[0])) { postDependencies.add(depparts[1]); - } - - if ("required-after".equals(depparts[0]) || "after".equals(depparts[0])) + } else if ("required-after".equals(depparts[0]) || "after".equals(depparts[0])) { preDependencies.add(depparts[1]); + } else { + parseFailure=true; } - + } + + if (parseFailure) { + FMLCommonHandler.instance().getFMLLogger().warning(String.format("The mod %s has an incorrect dependency string {%s}", mod.getPriorities())); } }