diff --git a/src/main/java/cpw/mods/fml/common/discovery/DirectoryDiscoverer.java b/src/main/java/cpw/mods/fml/common/discovery/DirectoryDiscoverer.java index 7759c5d..dc1e4ff 100644 --- a/src/main/java/cpw/mods/fml/common/discovery/DirectoryDiscoverer.java +++ b/src/main/java/cpw/mods/fml/common/discovery/DirectoryDiscoverer.java @@ -38,7 +38,7 @@ @Override public boolean accept(File file) { - return (file.isFile() && classFile.matcher(file.getName()).find()) || file.isDirectory(); + return (file.isFile() && classFile.matcher(file.getName()).matches()) || file.isDirectory(); } } diff --git a/src/main/java/cpw/mods/fml/common/discovery/ITypeDiscoverer.java b/src/main/java/cpw/mods/fml/common/discovery/ITypeDiscoverer.java index 5a67d7d..9bbd579 100644 --- a/src/main/java/cpw/mods/fml/common/discovery/ITypeDiscoverer.java +++ b/src/main/java/cpw/mods/fml/common/discovery/ITypeDiscoverer.java @@ -5,7 +5,7 @@ * are made available under the terms of the GNU Lesser Public License v2.1 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html - * + * * Contributors: * cpw - implementation */ @@ -19,7 +19,8 @@ public interface ITypeDiscoverer { - public static Pattern classFile = Pattern.compile("([^\\s$]+).class$"); + // main class part, followed by an optional $ and an "inner class" part. $ cannot be last, otherwise scala breaks + public static Pattern classFile = Pattern.compile("[^\\s\\$]+(\\$[^\\s]+)?\\.class$"); public List discover(ModCandidate candidate, ASMDataTable table); } \ No newline at end of file diff --git a/src/main/java/cpw/mods/fml/common/discovery/ModCandidate.java b/src/main/java/cpw/mods/fml/common/discovery/ModCandidate.java index 929bc95..92a2677 100644 --- a/src/main/java/cpw/mods/fml/common/discovery/ModCandidate.java +++ b/src/main/java/cpw/mods/fml/common/discovery/ModCandidate.java @@ -80,7 +80,7 @@ public void addClassEntry(String name) { String className = name.substring(0, name.lastIndexOf('.')); // strip the .class - foundClasses.add(className.replace('.', '/')); + foundClasses.add(className); className = className.replace('/','.'); int pkgIdx = className.lastIndexOf('.'); if (pkgIdx > -1)