diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/remapper/generated/ArclightReflectionHandler.java b/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/remapper/generated/ArclightReflectionHandler.java index 496187e0..9c7eb9cf 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/remapper/generated/ArclightReflectionHandler.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/remapper/generated/ArclightReflectionHandler.java @@ -1,12 +1,11 @@ package io.izzel.arclight.common.mod.util.remapper.generated; -import com.google.common.collect.Iterators; import io.izzel.arclight.api.ArclightVersion; import io.izzel.arclight.api.Unsafe; import io.izzel.arclight.common.mod.util.remapper.ArclightRedirectAdapter; import io.izzel.arclight.common.mod.util.remapper.ClassLoaderRemapper; import io.izzel.arclight.common.mod.util.remapper.RemappingClassLoader; -import org.apache.commons.collections.iterators.IteratorEnumeration; +import io.izzel.arclight.common.util.Enumerations; import org.objectweb.asm.ClassReader; import org.objectweb.asm.Type; @@ -359,9 +358,8 @@ public class ArclightReflectionHandler extends ClassLoader { if (mappedResource == null) { return loader.getResources(name); } else { - URL resource = loader.getResource(mappedResource); - return resource == null ? null : new IteratorEnumeration( - Iterators.singletonIterator(new URL("remap:" + resource))); + Enumeration resources = loader.getResources(mappedResource); + return Enumerations.remapped(resources); } } diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/util/Enumerations.java b/arclight-common/src/main/java/io/izzel/arclight/common/util/Enumerations.java new file mode 100644 index 00000000..4dde0536 --- /dev/null +++ b/arclight-common/src/main/java/io/izzel/arclight/common/util/Enumerations.java @@ -0,0 +1,36 @@ +package io.izzel.arclight.common.util; + +import io.izzel.arclight.api.Unsafe; + +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Enumeration; +import java.util.function.Function; + +public class Enumerations { + + public static Enumeration transform(Enumeration enumeration, Function mapper) { + return new Enumeration() { + @Override + public boolean hasMoreElements() { + return enumeration.hasMoreElements(); + } + + @Override + public B nextElement() { + return mapper.apply(enumeration.nextElement()); + } + }; + } + + public static Enumeration remapped(Enumeration enumeration) { + return transform(enumeration, url -> { + try { + return new URL("remap:" + url); + } catch (MalformedURLException e) { + Unsafe.throwException(e); + return null; + } + }); + } +}