This commit is contained in:
embeddedt 2023-01-18 09:45:11 -05:00
parent b806438bf9
commit 6dbf4b5a12
2 changed files with 27 additions and 2 deletions

View File

@ -1,14 +1,38 @@
package org.embeddedt.modernfix.classloading;
import net.minecraftforge.fml.loading.LoadingModList;
import net.minecraftforge.fml.loading.moddiscovery.AbstractJarFileLocator;
import net.minecraftforge.fml.loading.moddiscovery.ExplodedDirectoryLocator;
import net.minecraftforge.fml.loading.moddiscovery.ModFile;
import net.minecraftforge.fml.loading.moddiscovery.ModFileInfo;
import net.minecraftforge.forgespi.locating.IModLocator;
import java.net.URL;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
public class ModernFixResourceFinder {
private static HashMap<String, ArrayList<URL>> urlsForClass = null;
public static void init() {
urlsForClass = new HashMap<>();
for(ModFileInfo fileInfo : LoadingModList.get().getModFiles()) {
ModFile file = fileInfo.getFile();
IModLocator locator = file.getLocator();
Path rootPath = locator.findPath(file, ".");
System.out.println(rootPath.getParent().toAbsolutePath());
}
for(ArrayList<URL> list : urlsForClass.values()) {
list.trimToSize();
}
}
public static Enumeration<URL> findAllURLsForResource(String input) {
System.out.println(input);
return Collections.emptyEnumeration(); //LoadingModList.get().findAllURLsForResource(input);
ArrayList<URL> urlList = urlsForClass.get(input);
if(urlList != null)
return Collections.enumeration(urlList);
else
return Collections.emptyEnumeration();
}
}

View File

@ -54,6 +54,7 @@ public class ModernFixMixinPlugin implements IMixinConfigPlugin {
}
private Function<String, Enumeration<URL>> constructResourceFinder() throws ReflectiveOperationException {
ModernFixResourceFinder.init();
Field servicesHandlerField = Launcher.class.getDeclaredField("transformationServicesHandler");
servicesHandlerField.setAccessible(true);
Object servicesHandler = servicesHandlerField.get(Launcher.INSTANCE);