From 95596bc198787a583a85f7feff140729cb85af86 Mon Sep 17 00:00:00 2001 From: Christian Weeks Date: Fri, 6 Apr 2012 15:24:28 -0400 Subject: [PATCH] Actually figure out the path for directory class loading --- common/cpw/mods/fml/common/Loader.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/common/cpw/mods/fml/common/Loader.java b/common/cpw/mods/fml/common/Loader.java index 443df10e6d..955ec30e9d 100644 --- a/common/cpw/mods/fml/common/Loader.java +++ b/common/cpw/mods/fml/common/Loader.java @@ -338,7 +338,7 @@ public class Loader attemptFileLoad(minecraftSources[i]); } else if (minecraftSources[i].isDirectory()) { log.fine(String.format("Found a minecraft related directory at %s, loading",minecraftSources[i].getAbsolutePath())); - attemptDirLoad(minecraftSources[i]); + attemptDirLoad(minecraftSources[i],""); } } } @@ -354,7 +354,7 @@ public class Loader if (modFile.isDirectory()) { log.fine(String.format("Found a directory %s, attempting to load it", modFile.getName())); - boolean modFound = attemptDirLoad(modFile); + boolean modFound = attemptDirLoad(modFile,""); if (modFound) { @@ -395,9 +395,11 @@ public class Loader log.info(String.format("Forge Mod Loader has loaded %d mods", mods.size())); } - private boolean attemptDirLoad(File modDir) + private boolean attemptDirLoad(File modDir, String path) { - extendClassLoader(modDir); + if (path.length()==0) { + extendClassLoader(modDir); + } boolean foundAModClass = false; File[] content = modDir.listFiles(new FileFilter() { @@ -414,14 +416,14 @@ public class Loader { if (file.isDirectory()) { log.finest(String.format("Recursing into subdirectory %s", file.getName())); - foundAModClass|=attemptDirLoad(file); + foundAModClass|=attemptDirLoad(file,path+"."); continue; } Matcher fname = modClass.matcher(file.getName()); if (!fname.find()) { continue; } - String clazzName=fname.group(2); + String clazzName=path+fname.group(2); log.fine(String.format("Found a mod class %s in directory %s, attempting to load it", clazzName, modDir.getName())); loadModClass(modDir, file.getName(), clazzName); log.fine(String.format("Successfully loaded mod class %s", file.getName()));