LibJF/libjf-unsafe-v0/src/main/java/io/gitlab/jfronny/libjf/unsafe/inject/FabricLauncherClassUnlocker.java

96 lines
2.3 KiB
Java
Raw Normal View History

2021-12-30 13:37:05 +01:00
package io.gitlab.jfronny.libjf.unsafe.inject;
2022-05-18 15:03:38 +02:00
import io.gitlab.jfronny.libjf.unsafe.*;
import net.fabricmc.api.*;
import net.fabricmc.loader.impl.launch.*;
2021-12-30 13:37:05 +01:00
2022-05-18 15:03:38 +02:00
import java.io.*;
import java.nio.file.*;
import java.util.*;
import java.util.jar.*;
2021-12-30 13:37:05 +01:00
2022-05-18 15:03:38 +02:00
public record FabricLauncherClassUnlocker(KnotClassLoaderInterfaceAccessor classLoader) implements FabricLauncher {
2021-12-30 13:37:05 +01:00
@Override
public MappingConfiguration getMappingConfiguration() {
return invalidCall();
}
@Override
public void addToClassPath(Path path, String... allowedPrefixes) {
2022-05-18 15:03:38 +02:00
SafeLog.debug("Adding " + path + " to classpath.");
2021-12-30 13:37:05 +01:00
classLoader.getDelegate().setAllowedPrefixes(path, allowedPrefixes);
classLoader.getDelegate().addCodeSource(path);
2021-12-30 13:37:05 +01:00
}
@Override
public void setAllowedPrefixes(Path path, String... prefixes) {
classLoader.getDelegate().setAllowedPrefixes(path, prefixes);
2021-12-30 13:37:05 +01:00
}
2022-05-09 22:53:54 +02:00
@Override
public void setValidParentClassPath(Collection<Path> paths) {
invalidCall();
}
2021-12-30 13:37:05 +01:00
@Override
public EnvType getEnvironmentType() {
return invalidCall();
}
@Override
public boolean isClassLoaded(String name) {
return invalidCall();
}
@Override
public Class<?> loadIntoTarget(String name) throws ClassNotFoundException {
return invalidCall();
}
@Override
public InputStream getResourceAsStream(String name) {
return invalidCall();
}
@Override
public ClassLoader getTargetClassLoader() {
return invalidCall();
}
@Override
public byte[] getClassByteArray(String name, boolean runTransformers) throws IOException {
return invalidCall();
}
@Override
public Manifest getManifest(Path originPath) {
return invalidCall();
}
@Override
public boolean isDevelopment() {
return invalidCall();
}
@Override
public String getEntrypoint() {
return invalidCall();
}
@Override
public String getTargetNamespace() {
return invalidCall();
}
@Override
public List<Path> getClassPath() {
return invalidCall();
}
private <T> T invalidCall() {
2022-05-18 15:03:38 +02:00
SafeLog.warn("Attempted invalid call in class path unlocker");
2021-12-30 13:37:05 +01:00
throw new IllegalStateException("unlockClassPath attempted to call a method not implemented here");
}
}