Fixes to legacy jar processors.

This commit is contained in:
modmuss50
2022-10-06 22:48:09 +01:00
parent cc43cfc1dc
commit 0036d81a3a
9 changed files with 36 additions and 24 deletions

View File

@@ -63,11 +63,13 @@ public interface LoomGradleExtensionAPI {
void decompilers(Action<NamedDomainObjectContainer<DecompilerOptions>> action);
@Deprecated(forRemoval = true)
@Deprecated()
ListProperty<JarProcessor> getGameJarProcessors();
@Deprecated(forRemoval = true)
void addJarProcessor(JarProcessor processor);
@Deprecated()
default void addJarProcessor(JarProcessor processor) {
getGameJarProcessors().add(processor);
}
ListProperty<MinecraftJarProcessor<?>> getMinecraftJarProcessors();

View File

@@ -26,7 +26,7 @@ package net.fabricmc.loom.configuration.processors;
import java.io.File;
@Deprecated(forRemoval = true)
@Deprecated()
public interface JarProcessor {
/**
* Returns a unique ID for this jar processor, containing all configuration details.

View File

@@ -47,8 +47,14 @@ public abstract class LegacyJarProcessorWrapper implements MinecraftJarProcessor
this.delegate = delegate;
}
@Inject
public abstract Project getProject();
@Override
public String getName() {
return "legacy:" + delegate.getClass().getCanonicalName();
}
@Override
public @Nullable LegacyJarProcessorWrapper.Spec buildSpec(SpecContext context) {
delegate.setup();

View File

@@ -59,7 +59,13 @@ public final class MinecraftJarProcessorManager {
@Nullable
public static MinecraftJarProcessorManager create(Project project) {
final LoomGradleExtension extension = LoomGradleExtension.get(project);
return MinecraftJarProcessorManager.create(extension.getMinecraftJarProcessors().get(), SpecContextImpl.create(project));
List<MinecraftJarProcessor<?>> processors = new ArrayList<>(extension.getMinecraftJarProcessors().get());
for (JarProcessor legacyProcessor : extension.getGameJarProcessors().get()) {
processors.add(project.getObjects().newInstance(LegacyJarProcessorWrapper.class, legacyProcessor));
}
return MinecraftJarProcessorManager.create(processors, SpecContextImpl.create(project));
}
@Nullable

View File

@@ -60,13 +60,7 @@ public record SpecContextImpl(List<FabricModJson> modDependencies, List<FabricMo
final Set<File> artifacts = entry.getSourceConfiguration().get().resolve();
for (File artifact : artifacts) {
final FabricModJson fabricModJson;
try {
fabricModJson = FabricModJsonFactory.createFromZipNullable(artifact.toPath());
} catch (IOException e) {
throw new UncheckedIOException("Failed to read dependent mod jar: " + artifact, e);
}
final FabricModJson fabricModJson = FabricModJsonFactory.createFromZipNullable(artifact.toPath());
if (fabricModJson != null) {
mods.add(fabricModJson);

View File

@@ -51,7 +51,6 @@ import net.fabricmc.loom.api.processor.MinecraftJarProcessor;
import net.fabricmc.loom.configuration.RemapConfigurations;
import net.fabricmc.loom.configuration.ide.RunConfigSettings;
import net.fabricmc.loom.configuration.processors.JarProcessor;
import net.fabricmc.loom.configuration.processors.LegacyJarProcessorWrapper;
import net.fabricmc.loom.configuration.providers.mappings.GradleMappingContext;
import net.fabricmc.loom.configuration.providers.mappings.LayeredMappingSpec;
import net.fabricmc.loom.configuration.providers.mappings.LayeredMappingSpecBuilderImpl;
@@ -67,7 +66,7 @@ import net.fabricmc.loom.util.gradle.SourceSetHelper;
*/
public abstract class LoomGradleExtensionApiImpl implements LoomGradleExtensionAPI {
protected final DeprecationHelper deprecationHelper;
@Deprecated(forRemoval = true)
@Deprecated()
protected final ListProperty<JarProcessor> jarProcessors;
protected final ConfigurableFileCollection log4jConfigs;
protected final RegularFileProperty accessWidener;
@@ -176,12 +175,6 @@ public abstract class LoomGradleExtensionApiImpl implements LoomGradleExtensionA
return jarProcessors;
}
@Override
public void addJarProcessor(JarProcessor processor) {
getDeprecationHelper().replaceWithInLoom2_0("addJarProcessor", "getMinecraftJarProcessors");
getMinecraftJarProcessors().add(getProject().getObjects().newInstance(LegacyJarProcessorWrapper.class, processor));
}
@Override
public ListProperty<MinecraftJarProcessor<?>> getMinecraftJarProcessors() {
return minecraftJarProcessors;

View File

@@ -148,7 +148,12 @@ public abstract class RemapJarTask extends AbstractRemapJarTask {
final LoomGradleExtension extension = LoomGradleExtension.get(getProject());
final MixinExtension mixinExtension = extension.getMixin();
final FabricModJson fabricModJson = FabricModJsonFactory.createFromZip(getInputFile().getAsFile().get().toPath());
final FabricModJson fabricModJson = FabricModJsonFactory.createFromZipNullable(getInputFile().getAsFile().get().toPath());
if (fabricModJson == null) {
return;
}
final Collection<String> allMixinConfigs = fabricModJson.getMixinConfigurations();
for (SourceSet sourceSet : mixinExtension.getMixinSourceSets()) {

View File

@@ -75,8 +75,14 @@ public final class FabricModJsonFactory {
}
@Nullable
public static FabricModJson createFromZipNullable(Path zipPath) throws IOException {
JsonObject jsonObject = ZipUtils.unpackGsonNullable(zipPath, FABRIC_MOD_JSON, JsonObject.class);
public static FabricModJson createFromZipNullable(Path zipPath) {
JsonObject jsonObject;
try {
jsonObject = ZipUtils.unpackGsonNullable(zipPath, FABRIC_MOD_JSON, JsonObject.class);
} catch (IOException e) {
throw new UncheckedIOException("Failed to read zip: " + zipPath, e);
}
if (jsonObject == null) {
return null;