diff --git a/src/main/java/net/md_5/specialsource/JarRemapper.java b/src/main/java/net/md_5/specialsource/JarRemapper.java index ab9b5c5..898a431 100644 --- a/src/main/java/net/md_5/specialsource/JarRemapper.java +++ b/src/main/java/net/md_5/specialsource/JarRemapper.java @@ -90,11 +90,8 @@ public class JarRemapper extends CustomRemapper { } public static String mapTypeName(String typeName, Map packageMap, Map classMap, String defaultIfUnmapped) { - int index = typeName.indexOf('$'); - String key = (index == -1) ? typeName : typeName.substring(0, index); - String mapped = mapClassName(key, packageMap, classMap); - - return mapped != null ? mapped + (index == -1 ? "" : typeName.substring(index, typeName.length())) : defaultIfUnmapped; + String mapped = mapClassName(typeName, packageMap, classMap); + return mapped != null ? mapped : defaultIfUnmapped; } /** @@ -104,6 +101,15 @@ public class JarRemapper extends CustomRemapper { if (classMap != null && classMap.containsKey(className)) { return classMap.get(className); } + + int index = className.lastIndexOf('$'); + if (index != -1) + { + String outer = className.substring(0, index); + String mapped = mapClassName(outer, packageMap, classMap); + if (mapped == null) return null; + return mapped + className.substring(index); + } if (packageMap != null) { Iterator iter = packageMap.keySet().iterator();