Recurse into subdirectories found

This commit is contained in:
Christian Weeks 2012-04-06 14:43:12 -04:00
parent 040a1d8cf7
commit b26bf5ab96
1 changed files with 15 additions and 8 deletions

View File

@ -14,7 +14,7 @@
package cpw.mods.fml.common; package cpw.mods.fml.common;
import java.io.File; import java.io.File;
import java.io.FilenameFilter; import java.io.FileFilter;
import java.io.IOException; import java.io.IOException;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.util.ArrayList; import java.util.ArrayList;
@ -399,21 +399,28 @@ public class Loader
{ {
extendClassLoader(modDir); extendClassLoader(modDir);
boolean foundAModClass = false; boolean foundAModClass = false;
File[] content = modDir.listFiles(new FilenameFilter() File[] content = modDir.listFiles(new FileFilter()
{ {
@Override @Override
public boolean accept(File dir, String name) public boolean accept(File file)
{ {
return modClass.matcher(name).find(); return (file.isFile() && modClass.matcher(file.getName()).find()) || file.isDirectory();
} }
}); });
for (File modClassFile : content) // Always sort our content
Arrays.sort(content);
for (File file : content)
{ {
String clazzName = modClass.matcher(modClassFile.getName()).group(2); if (file.isDirectory()) {
log.finest(String.format("Recursing into subdirectory %s", file.getName()));
foundAModClass|=attemptDirLoad(file);
continue;
}
String clazzName = modClass.matcher(file.getName()).group(2);
log.fine(String.format("Found a mod class %s in directory %s, attempting to load it", clazzName, modDir.getName())); log.fine(String.format("Found a mod class %s in directory %s, attempting to load it", clazzName, modDir.getName()));
loadModClass(modDir, modClassFile.getName(), clazzName); loadModClass(modDir, file.getName(), clazzName);
log.fine(String.format("Successfully loaded mod class %s", modClassFile.getName())); log.fine(String.format("Successfully loaded mod class %s", file.getName()));
foundAModClass = true; foundAModClass = true;
} }