Skip to content

Commit d159198

Browse files
committed
Fix jar path filter for game layer libraries
Fixes #453
1 parent 957605b commit d159198

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

src/main/java/dev/su5ed/sinytra/connector/locator/ConnectorLocator.java

+11-6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.google.common.collect.HashMultimap;
44
import com.google.common.collect.Multimap;
55
import com.mojang.logging.LogUtils;
6+
import cpw.mods.jarhandling.JarMetadata;
67
import cpw.mods.jarhandling.SecureJar;
78
import dev.su5ed.sinytra.connector.ConnectorUtil;
89
import dev.su5ed.sinytra.connector.loader.ConnectorEarlyLoader;
@@ -21,7 +22,6 @@
2122
import net.minecraftforge.forgespi.locating.IDependencyLocator;
2223
import net.minecraftforge.forgespi.locating.IModFile;
2324
import net.minecraftforge.forgespi.locating.IModLocator;
24-
import net.minecraftforge.forgespi.locating.IModProvider;
2525
import org.apache.maven.artifact.versioning.ArtifactVersion;
2626
import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
2727
import org.jetbrains.annotations.Nullable;
@@ -136,26 +136,31 @@ private List<IModFile> locateFabricMods(Iterable<IModFile> loadedMods) {
136136
// Deal with split packages (thanks modules)
137137
List<SplitPackageMerger.FilteredModPath> moduleSafeJars = SplitPackageMerger.mergeSplitPackages(transformed, loadedMods, ignoredModFiles);
138138

139-
List<IModFile> modFiles = new ArrayList<>(moduleSafeJars.stream().map(mod -> createConnectorModFile(mod, this)).toList());
139+
List<IModFile> modFiles = new ArrayList<>(moduleSafeJars.stream().map(this::createConnectorModFile).toList());
140140
// Create mod file for generated adapter mixins jar
141141
Path generatedAdapterJar = JarTransformer.getGeneratedJarPath();
142-
if (Files.exists(generatedAdapterJar)) {;
142+
if (Files.exists(generatedAdapterJar)) {
143143
modFiles.add(createModOrThrow(generatedAdapterJar));
144144
}
145145
return modFiles;
146146
}
147147

148-
private IModFile createConnectorModFile(SplitPackageMerger.FilteredModPath modPath, IModProvider provider) {
148+
private IModFile createConnectorModFile(SplitPackageMerger.FilteredModPath modPath) {
149149
if (modPath.metadata().generated()) {
150-
return createModOrThrow(modPath.paths());
150+
return createGameLibraryMod(modPath);
151151
}
152152
ModJarMetadata mjm = ConnectorUtil.uncheckThrowable(() -> (ModJarMetadata) MJM_INIT.invoke());
153153
SecureJar modJar = SecureJar.from(Manifest::new, jar -> mjm, modPath.filter(), modPath.paths());
154-
IModFile mod = new ModFile(modJar, provider, modFile -> ConnectorModMetadataParser.createForgeMetadata(modFile, modPath.metadata().modMetadata()));
154+
IModFile mod = new ModFile(modJar, this, modFile -> ConnectorModMetadataParser.createForgeMetadata(modFile, modPath.metadata().modMetadata()));
155155
mjm.setModFile(mod);
156156
return mod;
157157
}
158158

159+
protected IModFile createGameLibraryMod(SplitPackageMerger.FilteredModPath modPath) {
160+
SecureJar sj = SecureJar.from(Manifest::new, jar -> JarMetadata.from(jar, modPath.paths()), modPath.filter(), modPath.paths());
161+
return new ModFile(sj, this, this::manifestParser, IModFile.Type.GAMELIBRARY.name());
162+
}
163+
159164
private IModFile createModOrThrow(Path... paths) {
160165
IModLocator.ModFileOrException moe = createMod(paths);
161166
if (moe.ex() != null) {

0 commit comments

Comments
 (0)