aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/fabricmc/loom/configuration
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/fabricmc/loom/configuration')
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java54
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/DependencyProvider.java7
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/FabricApiExtension.java12
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/JarManifestConfiguration.java4
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/LoomDependencyManager.java4
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/LoomProjectData.java70
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/RemapConfiguration.java2
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/accesswidener/AccessWidenerJarProcessor.java10
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java51
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/ide/RunConfigSettings.java2
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/ide/SetupIntelijRunConfigs.java4
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java21
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/processors/MinecraftProcessedProvider.java4
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/LaunchProvider.java12
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/MinecraftProviderImpl.java49
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/mappings/GradleMappingContext.java2
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java8
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftLibraryProvider.java4
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftMappedProvider.java6
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftNativesProvider.java8
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/MinecraftAssetsProvider.java4
21 files changed, 130 insertions, 208 deletions
diff --git a/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java b/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java
index 6b7e1f02..07a01118 100644
--- a/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java
+++ b/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java
@@ -33,6 +33,7 @@ import org.gradle.api.tasks.compile.JavaCompile;
import org.gradle.api.tasks.javadoc.Javadoc;
import org.gradle.jvm.tasks.Jar;
+import net.fabricmc.loom.extension.MixinApExtension;
import net.fabricmc.loom.LoomGradleExtension;
import net.fabricmc.loom.build.mixin.JavaApInvoker;
import net.fabricmc.loom.build.mixin.KaptApInvoker;
@@ -57,11 +58,11 @@ public final class CompileConfiguration {
public static void setupConfigurations(Project project) {
final ConfigurationContainer configurations = project.getConfigurations();
- LoomProjectData data = project.getExtensions().getByType(LoomGradleExtension.class).getProjectData();
+ LoomGradleExtension extension = LoomGradleExtension.get(project);
project.afterEvaluate(project1 -> {
if (project.getExtensions().getByType(LoomGradleExtension.class).shouldGenerateSrgTiny()) {
- data.createLazyConfiguration(Constants.Configurations.SRG).configure(configuration -> configuration.setTransitive(false));
+ extension.createLazyConfiguration(Constants.Configurations.SRG).configure(configuration -> configuration.setTransitive(false));
}
if (project.getExtensions().getByType(LoomGradleExtension.class).isDataGenEnabled()) {
@@ -71,21 +72,21 @@ public final class CompileConfiguration {
}
});
- data.createLazyConfiguration(Constants.Configurations.MOD_COMPILE_CLASSPATH).configure(configuration -> configuration.setTransitive(true));
- data.createLazyConfiguration(Constants.Configurations.MOD_COMPILE_CLASSPATH_MAPPED).configure(configuration -> configuration.setTransitive(false));
- data.createLazyConfiguration(Constants.Configurations.MINECRAFT_NAMED).configure(configuration -> configuration.setTransitive(false)); // The launchers do not recurse dependencies
- data.createLazyConfiguration(Constants.Configurations.MINECRAFT_DEPENDENCIES).configure(configuration -> configuration.setTransitive(false));
- data.createLazyConfiguration(Constants.Configurations.LOADER_DEPENDENCIES).configure(configuration -> configuration.setTransitive(false));
- data.createLazyConfiguration(Constants.Configurations.MINECRAFT).configure(configuration -> configuration.setTransitive(false));
+ extension.createLazyConfiguration(Constants.Configurations.MOD_COMPILE_CLASSPATH).configure(configuration -> configuration.setTransitive(true));
+ extension.createLazyConfiguration(Constants.Configurations.MOD_COMPILE_CLASSPATH_MAPPED).configure(configuration -> configuration.setTransitive(false));
+ extension.createLazyConfiguration(Constants.Configurations.MINECRAFT_NAMED).configure(configuration -> configuration.setTransitive(false)); // The launchers do not recurse dependencies
+ extension.createLazyConfiguration(Constants.Configurations.MINECRAFT_DEPENDENCIES).configure(configuration -> configuration.setTransitive(false));
+ extension.createLazyConfiguration(Constants.Configurations.LOADER_DEPENDENCIES).configure(configuration -> configuration.setTransitive(false));
+ extension.createLazyConfiguration(Constants.Configurations.MINECRAFT).configure(configuration -> configuration.setTransitive(false));
if (project.getExtensions().getByType(LoomGradleExtension.class).isForge()) {
- data.createLazyConfiguration(Constants.Configurations.FORGE).configure(configuration -> configuration.setTransitive(false));
- data.createLazyConfiguration(Constants.Configurations.FORGE_USERDEV).configure(configuration -> configuration.setTransitive(false));
- data.createLazyConfiguration(Constants.Configurations.FORGE_INSTALLER).configure(configuration -> configuration.setTransitive(false));
- data.createLazyConfiguration(Constants.Configurations.FORGE_UNIVERSAL).configure(configuration -> configuration.setTransitive(false));
- data.createLazyConfiguration(Constants.Configurations.FORGE_DEPENDENCIES).configure(configuration -> configuration.setTransitive(false));
- data.createLazyConfiguration(Constants.Configurations.FORGE_NAMED).configure(configuration -> configuration.setTransitive(false));
- data.createLazyConfiguration(Constants.Configurations.MCP_CONFIG).configure(configuration -> configuration.setTransitive(false));
+ extension.createLazyConfiguration(Constants.Configurations.FORGE).configure(configuration -> configuration.setTransitive(false));
+ extension.createLazyConfiguration(Constants.Configurations.FORGE_USERDEV).configure(configuration -> configuration.setTransitive(false));
+ extension.createLazyConfiguration(Constants.Configurations.FORGE_INSTALLER).configure(configuration -> configuration.setTransitive(false));
+ extension.createLazyConfiguration(Constants.Configurations.FORGE_UNIVERSAL).configure(configuration -> configuration.setTransitive(false));
+ extension.createLazyConfiguration(Constants.Configurations.FORGE_DEPENDENCIES).configure(configuration -> configuration.setTransitive(false));
+ extension.createLazyConfiguration(Constants.Configurations.FORGE_NAMED).configure(configuration -> configuration.setTransitive(false));
+ extension.createLazyConfiguration(Constants.Configurations.MCP_CONFIG).configure(configuration -> configuration.setTransitive(false));
extendsFrom(Constants.Configurations.MINECRAFT_DEPENDENCIES, Constants.Configurations.FORGE_DEPENDENCIES, project);
@@ -96,24 +97,24 @@ public final class CompileConfiguration {
}
if (project.getExtensions().getByType(LoomGradleExtension.class).supportsInclude()) {
- data.createLazyConfiguration(Constants.Configurations.INCLUDE).configure(configuration -> configuration.setTransitive(false)); // Dont get transitive deps
+ extension.createLazyConfiguration(Constants.Configurations.INCLUDE).configure(configuration -> configuration.setTransitive(false)); // Dont get transitive deps
}
- data.createLazyConfiguration(Constants.Configurations.MAPPING_CONSTANTS);
+ extension.createLazyConfiguration(Constants.Configurations.MAPPING_CONSTANTS);
extendsFrom(JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME, Constants.Configurations.MAPPING_CONSTANTS, project);
- data.createLazyConfiguration(Constants.Configurations.MAPPINGS);
- data.createLazyConfiguration(Constants.Configurations.MAPPINGS_FINAL);
- data.createLazyConfiguration(Constants.Configurations.LOOM_DEVELOPMENT_DEPENDENCIES);
- data.createLazyConfiguration(Constants.Configurations.UNPICK_CLASSPATH);
+ extension.createLazyConfiguration(Constants.Configurations.MAPPINGS);
+ extension.createLazyConfiguration(Constants.Configurations.MAPPINGS_FINAL);
+ extension.createLazyConfiguration(Constants.Configurations.LOOM_DEVELOPMENT_DEPENDENCIES);
+ extension.createLazyConfiguration(Constants.Configurations.UNPICK_CLASSPATH);
for (RemappedConfigurationEntry entry : Constants.MOD_COMPILE_ENTRIES) {
- data.createLazyConfiguration(entry.sourceConfiguration())
+ extension.createLazyConfiguration(entry.sourceConfiguration())
.configure(configuration -> configuration.setTransitive(true));
// Don't get transitive deps of already remapped mods
- data.createLazyConfiguration(entry.getRemappedConfiguration())
+ extension.createLazyConfiguration(entry.getRemappedConfiguration())
.configure(configuration -> configuration.setTransitive(false));
extendsFrom(entry.getTargetConfiguration(configurations), entry.getRemappedConfiguration(), project);
@@ -152,7 +153,7 @@ public final class CompileConfiguration {
});
p.afterEvaluate(project -> {
- LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class);
+ LoomGradleExtension extension = LoomGradleExtension.get(project);
LoomDependencyManager dependencyManager = new LoomDependencyManager();
extension.setDependencyManager(dependencyManager);
@@ -187,7 +188,7 @@ public final class CompileConfiguration {
GenVsCodeProjectTask.generate(project);
// Enables the default mod remapper
- if (extension.remapMod) {
+ if (extension.isRemapMod()) {
RemapConfiguration.setupDefaultRemap(project);
} else {
Jar jarTask = (Jar) project.getTasks().getByName("jar");
@@ -200,6 +201,9 @@ public final class CompileConfiguration {
System.setProperty("log4j.skipJansi", "true");
project.getLogger().info("Configuring compiler arguments for Java");
+ MixinApExtension mixinApExtension = LoomGradleExtension.get(project).getMixinApExtension();
+ mixinApExtension.init();
+
new JavaApInvoker(project).configureMixin();
if (project.getPluginManager().hasPlugin("scala")) {
diff --git a/src/main/java/net/fabricmc/loom/configuration/DependencyProvider.java b/src/main/java/net/fabricmc/loom/configuration/DependencyProvider.java
index 9f6d6db3..5017d54a 100644
--- a/src/main/java/net/fabricmc/loom/configuration/DependencyProvider.java
+++ b/src/main/java/net/fabricmc/loom/configuration/DependencyProvider.java
@@ -49,6 +49,7 @@ import org.zeroturnaround.zip.ZipUtil;
import net.fabricmc.loom.LoomGradleExtension;
import net.fabricmc.loom.LoomGradlePlugin;
+import net.fabricmc.loom.extension.LoomFiles;
public abstract class DependencyProvider {
private LoomDependencyManager dependencyManager;
@@ -57,7 +58,7 @@ public abstract class DependencyProvider {
public DependencyProvider(Project project) {
this.project = project;
- this.extension = project.getExtensions().getByType(LoomGradleExtension.class);
+ this.extension = LoomGradleExtension.get(project);
}
public abstract void provide(DependencyInfo dependency, Consumer<Runnable> postPopulationScheduler) throws Exception;
@@ -88,6 +89,10 @@ public abstract class DependencyProvider {
return extension;
}
+ public LoomFiles getDirectories() {
+ return getExtension().getFiles();
+ }
+
public boolean isRefreshDeps() {
return LoomGradlePlugin.refreshDeps;
}
diff --git a/src/main/java/net/fabricmc/loom/configuration/FabricApiExtension.java b/src/main/java/net/fabricmc/loom/configuration/FabricApiExtension.java
index 59925bcb..15f5d2a0 100644
--- a/src/main/java/net/fabricmc/loom/configuration/FabricApiExtension.java
+++ b/src/main/java/net/fabricmc/loom/configuration/FabricApiExtension.java
@@ -103,9 +103,17 @@ public class FabricApiExtension {
}
private File getApiMavenPom(String fabricApiVersion) {
- LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class);
+ LoomGradleExtension extension = LoomGradleExtension.get(project);
- File mavenPom = new File(extension.getUserCache(), "fabric-api/" + fabricApiVersion + ".pom");
+ File mavenPom = new File(extension.getFiles().getUserCache(), "fabric-api/" + fabricApiVersion + ".pom");
+
+ if (project.getGradle().getStartParameter().isOffline()) {
+ if (!mavenPom.exists()) {
+ throw new RuntimeException("Cannot retrieve fabric-api pom due to being offline");
+ }
+
+ return mavenPom;
+ }
try {
URL url = new URL(String.format("https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api/%1$s/fabric-api-%1$s.pom", fabricApiVersion));
diff --git a/src/main/java/net/fabricmc/loom/configuration/JarManifestConfiguration.java b/src/main/java/net/fabricmc/loom/configuration/JarManifestConfiguration.java
index 728a109f..408081d7 100644
--- a/src/main/java/net/fabricmc/loom/configuration/JarManifestConfiguration.java
+++ b/src/main/java/net/fabricmc/loom/configuration/JarManifestConfiguration.java
@@ -43,7 +43,7 @@ public final record JarManifestConfiguration(Project project) {
return;
}
- LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class);
+ LoomGradleExtension extension = LoomGradleExtension.get(project);
Attributes attributes = manifest.getMainAttributes();
var tinyRemapperVersion = Optional.ofNullable(TinyRemapper.class.getPackage().getImplementationVersion());
@@ -79,7 +79,7 @@ public final record JarManifestConfiguration(Project project) {
}
private Optional<String> getLoaderVersion() {
- LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class);
+ LoomGradleExtension extension = LoomGradleExtension.get(project);
if (extension.getInstallerData() == null) {
project.getLogger().warn("Could not determine fabric loader version for jar manifest");
diff --git a/src/main/java/net/fabricmc/loom/configuration/LoomDependencyManager.java b/src/main/java/net/fabricmc/loom/configuration/LoomDependencyManager.java
index a33d7293..b0568731 100644
--- a/src/main/java/net/fabricmc/loom/configuration/LoomDependencyManager.java
+++ b/src/main/java/net/fabricmc/loom/configuration/LoomDependencyManager.java
@@ -89,7 +89,7 @@ public class LoomDependencyManager {
MappingsProviderImpl mappingsProvider = null;
project.getLogger().info(":setting up loom dependencies");
- LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class);
+ LoomGradleExtension extension = LoomGradleExtension.get(project);
Map<String, ProviderList> providerListMap = new HashMap<>();
List<ProviderList> targetProviders = new ArrayList<>();
@@ -178,7 +178,7 @@ public class LoomDependencyManager {
}
private static void handleInstallerJson(JsonObject jsonObject, Project project) {
- LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class);
+ LoomGradleExtension extension = LoomGradleExtension.get(project);
JsonObject libraries = jsonObject.get("libraries").getAsJsonObject();
Configuration loaderDepsConfig = project.getConfigurations().getByName(Constants.Configurations.LOADER_DEPENDENCIES);
diff --git a/src/main/java/net/fabricmc/loom/configuration/LoomProjectData.java b/src/main/java/net/fabricmc/loom/configuration/LoomProjectData.java
deleted file mode 100644
index a45df51c..00000000
--- a/src/main/java/net/fabricmc/loom/configuration/LoomProjectData.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * This file is part of fabric-loom, licensed under the MIT License (MIT).
- *
- * Copyright (c) 2016-2021 FabricMC
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-package net.fabricmc.loom.configuration;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-
-import org.gradle.api.NamedDomainObjectProvider;
-import org.gradle.api.Project;
-import org.gradle.api.artifacts.Configuration;
-import org.jetbrains.annotations.ApiStatus;
-
-@ApiStatus.Internal
-/**
- * This class is stored in the gradle extension, and should not be used outside of loom.
- * It contains data/info related to the current project
- */
-public final class LoomProjectData {
- private final Project project;
- private final Map<String, NamedDomainObjectProvider<Configuration>> lazyConfigurations = new HashMap<>();
-
- public LoomProjectData(Project project) {
- this.project = Objects.requireNonNull(project);
- }
-
- public NamedDomainObjectProvider<Configuration> createLazyConfiguration(String name) {
- NamedDomainObjectProvider<Configuration> provider = project.getConfigurations().register(name);
-
- if (lazyConfigurations.containsKey(name)) {
- throw new IllegalStateException("Duplicate configuration name" + name);
- }
-
- lazyConfigurations.put(name, provider);
-
- return provider;
- }
-
- public NamedDomainObjectProvider<Configuration> getLazyConfigurationProvider(String name) {
- NamedDomainObjectProvider<Configuration> provider = lazyConfigurations.get(name);
-
- if (provider == null) {
- throw new NullPointerException("Could not find provider with name: " + name);
- }
-
- return provider;
- }
-}
diff --git a/src/main/java/net/fabricmc/loom/configuration/RemapConfiguration.java b/src/main/java/net/fabricmc/loom/configuration/RemapConfiguration.java
index 62935326..e1f60180 100644
--- a/src/main/java/net/fabricmc/loom/configuration/RemapConfiguration.java
+++ b/src/main/java/net/fabricmc/loom/configuration/RemapConfiguration.java
@@ -65,7 +65,7 @@ public class RemapConfiguration {
// isDefaultRemap is set to true for the standard remap task, some defaults are left out when this is false.
private static void setupRemap(Project project, boolean isDefaultRemap, String jarTaskName, String sourcesJarTaskName, String remapJarTaskName, String remapSourcesJarTaskName, String remapAllJarsTaskName, String remapAllSourcesTaskName) {
- LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class);
+ LoomGradleExtension extension = LoomGradleExtension.get(project);
AbstractArchiveTask jarTask = (AbstractArchiveTask) project.getTasks().getByName(jarTaskName);
RemapJarTask remapJarTask = (RemapJarTask) project.getTasks().findByName(remapJarTaskName);
diff --git a/src/main/java/net/fabricmc/loom/configuration/accesswidener/AccessWidenerJarProcessor.java b/src/main/java/net/fabricmc/loom/configuration/accesswidener/AccessWidenerJarProcessor.java
index 0d428bac..ef2f37e1 100644
--- a/src/main/java/net/fabricmc/loom/configuration/accesswidener/AccessWidenerJarProcessor.java
+++ b/src/main/java/net/fabricmc/loom/configuration/accesswidener/AccessWidenerJarProcessor.java
@@ -72,15 +72,15 @@ public class AccessWidenerJarProcessor implements JarProcessor {
@Override
public void setup() {
- LoomGradleExtension loomGradleExtension = project.getExtensions().getByType(LoomGradleExtension.class);
+ LoomGradleExtension loomGradleExtension = LoomGradleExtension.get(project);
- if (!loomGradleExtension.accessWidener.exists()) {
- throw new RuntimeException("Could not find access widener file @ " + loomGradleExtension.accessWidener.getAbsolutePath());
+ if (!loomGradleExtension.getAccessWidener().exists()) {
+ throw new RuntimeException("Could not find access widener file @ " + loomGradleExtension.getAccessWidener().getAbsolutePath());
}
- inputHash = Checksum.sha256(loomGradleExtension.accessWidener);
+ inputHash = Checksum.sha256(loomGradleExtension.getAccessWidener());
- try (BufferedReader reader = new BufferedReader(new FileReader(loomGradleExtension.accessWidener))) {
+ try (BufferedReader reader = new BufferedReader(new FileReader(loomGradleExtension.getAccessWidener()))) {
accessWidenerReader.read(reader);
} catch (IOException e) {
throw new RuntimeException("Failed to read project access widener file");
diff --git a/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java b/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java
index 0d31192d..f3a83ef0 100644
--- a/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java
+++ b/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java
@@ -28,10 +28,8 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
+import java.util.HashMap;
import java.util.Objects;
import java.util.UUID;
import java.util.function.Consumer;
@@ -41,7 +39,6 @@ import java.util.stream.Stream;
import java.util.stream.StreamSupport;
import com.google.common.base.Strings;
-import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
@@ -53,7 +50,6 @@ import org.w3c.dom.Element;
import org.w3c.dom.Node;
import net.fabricmc.loom.LoomGradleExtension;
-import net.fabricmc.loom.util.Constants;
import net.fabricmc.loom.util.OperatingSystem;
public class RunConfig {
@@ -131,13 +127,8 @@ public class RunConfig {
runConfig.vmArgs = "";
runConfig.programArgs = "";
- if ("launchwrapper".equals(extension.getLoaderLaunchMethod())) {
- runConfig.mainClass = "net.minecraft.launchwrapper.Launch"; // TODO What about custom tweakers for run configs?
- runConfig.programArgs += "--tweakClass " + ("client".equals(environment) ? Constants.LaunchWrapper.DEFAULT_FABRIC_CLIENT_TWEAKER : Constants.LaunchWrapper.DEFAULT_FABRIC_SERVER_TWEAKER);
- } else {
- runConfig.mainClass = "net.fabricmc.devlaunchinjector.Main";
- runConfig.vmArgs = "-XX:+ShowCodeDetailsInExceptionMessages -Dfabric.dli.config=" + encodeEscaped(extension.getDevLauncherConfig().getAbsolutePath()) + " -Dfabric.dli.env=" + environment.toLowerCase();
- }
+ runConfig.mainClass = "net.fabricmc.devlaunchinjector.Main";
+ runConfig.vmArgs = "-XX:+ShowCodeDetailsInExceptionMessages -Dfabric.dli.config=" + encodeEscaped(extension.getFiles().getDevLauncherConfig().getAbsolutePath()) + " -Dfabric.dli.env=" + environment.toLowerCase();
if (extension.isForge()) {
List<String> modClasses = new ArrayList<>();
@@ -155,35 +146,6 @@ public class RunConfig {
runConfig.envVariables.put("MOD_CLASSES", String.join(File.pathSeparator, modClasses));
}
-
- if (extension.getLoaderLaunchMethod().equals("launchwrapper")) {
- // if installer.json found...
- JsonObject installerJson = extension.getInstallerData().installerJson();
-
- if (installerJson != null) {
- List<String> sideKeys = ImmutableList.of(environment, "common");
-
- // copy launchwrapper tweakers
- if (installerJson.has("launchwrapper")) {
- JsonObject launchwrapperJson = installerJson.getAsJsonObject("launchwrapper");
-
- if (launchwrapperJson.has("tweakers")) {
- JsonObject tweakersJson = launchwrapperJson.getAsJsonObject("tweakers");
- StringBuilder builder = new StringBuilder();
-
- for (String s : sideKeys) {
- if (tweakersJson.has(s)) {
- for (JsonElement element : tweakersJson.getAsJsonArray(s)) {
- builder.append(" --tweakClass ").append(element.getAsString());
- }
- }
- }
-
- runConfig.programArgs += builder.toString();
- }
- }
- }
- }
}
// Turns camelCase/PascalCase into Capital Case
@@ -197,7 +159,7 @@ public class RunConfig {
}
public static RunConfig runConfig(Project project, RunConfigSettings settings) {
- LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class);
+ LoomGradleExtension extension = LoomGradleExtension.get(project);
String name = settings.getName();
String configName = settings.getConfigName();
@@ -325,11 +287,6 @@ public class RunConfig {
return mainClassName;
}
- // Fallback to default class names, happens when in a loader dev env
- if ("launchwrapper".equals(extension.getLoaderLaunchMethod())) {
- return "net.minecraft.launchwrapper.Launch";
- }
-
return defaultMainClass;
}
diff --git a/src/main/java/net/fabricmc/loom/configuration/ide/RunConfigSettings.java b/src/main/java/net/fabricmc/loom/configuration/ide/RunConfigSettings.java
index 66956521..28f2f2f6 100644
--- a/src/main/java/net/fabricmc/loom/configuration/ide/RunConfigSettings.java
+++ b/src/main/java/net/fabricmc/loom/configuration/ide/RunConfigSettings.java
@@ -100,7 +100,7 @@ public final class RunConfigSettings implements Named {
public RunConfigSettings(Project project, String baseName) {
this.baseName = baseName;
this.project = project;
- this.extension = project.getExtensions().getByType(LoomGradleExtension.class);
+ this.extension = LoomGradleExtension.get(project);
this.ideConfigGenerated = extension.isRootProject();
source("main");
diff --git a/src/main/java/net/fabricmc/loom/configuration/ide/SetupIntelijRunConfigs.java b/src/main/java/net/fabricmc/loom/configuration/ide/SetupIntelijRunConfigs.java
index 5bc388a5..db815e94 100644
--- a/src/main/java/net/fabricmc/loom/configuration/ide/SetupIntelijRunConfigs.java
+++ b/src/main/java/net/fabricmc/loom/configuration/ide/SetupIntelijRunConfigs.java
@@ -37,7 +37,7 @@ import net.fabricmc.loom.configuration.providers.minecraft.assets.MinecraftAsset
public class SetupIntelijRunConfigs {
public static void setup(Project project) {
- LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class);
+ LoomGradleExtension extension = LoomGradleExtension.get(project);
File projectDir = project.getRootProject().file(".idea");
@@ -54,7 +54,7 @@ public class SetupIntelijRunConfigs {
private static void generate(Project project) throws IOException {
Project rootProject = project.getRootProject();
- LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class);
+ LoomGradleExtension extension = LoomGradleExtension.get(project);
if (extension.ideSync()) {
//Ensures the assets are downloaded when idea is syncing a project
diff --git a/src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java b/src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java
index b13cf0ea..b7b37506 100644
--- a/src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java
+++ b/src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java
@@ -137,7 +137,7 @@ public class ModProcessor {
}
private static void remapJars(Project project, List<ModDependencyInfo> processList) throws IOException {
- LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class);
+ LoomGradleExtension extension = LoomGradleExtension.get(project);
String fromM = extension.isForge() ? "srg" : "intermediary";
String toM = "named";
@@ -277,28 +277,15 @@ public class ModProcessor {
public static JsonObject readInstallerJson(File file, Project project) {
try {
- LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class);
- String launchMethod = extension.getLoaderLaunchMethod();
+ LoomGradleExtension extension = LoomGradleExtension.get(project);
String jsonStr;
try (JarFile jarFile = new JarFile(file)) {
- ZipEntry entry = null;
-
- if (!launchMethod.isEmpty()) {
- entry = jarFile.getEntry("fabric-installer." + launchMethod + ".json");
-
- if (entry == null) {
- project.getLogger().warn("Could not find loader launch method '" + launchMethod + "', falling back");
- }
- }
+ ZipEntry entry = jarFile.getEntry("fabric-installer.json");
if (entry == null) {
- entry = jarFile.getEntry("fabric-installer.json");
-
- if (entry == null) {
- return null;
- }
+ return null;
}
try (InputStream inputstream = jarFile.getInputStream(entry)) {
diff --git a/src/main/java/net/fabricmc/loom/configuration/processors/MinecraftProcessedProvider.java b/src/main/java/net/fabricmc/loom/configuration/processors/MinecraftProcessedProvider.java
index 22badc39..4e28f52a 100644
--- a/src/main/java/net/fabricmc/loom/configuration/processors/MinecraftProcessedProvider.java
+++ b/src/main/java/net/fabricmc/loom/configuration/processors/MinecraftProcessedProvider.java
@@ -72,7 +72,7 @@ public class MinecraftProcessedProvider extends MinecraftMappedProvider {
}
private void invalidateJars() {
- File dir = getJarDirectory(getExtension().getUserCache(), projectMappedClassifier);
+ File dir = getJarDirectory(getExtension().getFiles().getUserCache(), projectMappedClassifier);
if (dir.exists()) {
getProject().getLogger().warn("Invalidating project jars");
@@ -89,7 +89,7 @@ public class MinecraftProcessedProvider extends MinecraftMappedProvider {
public void initFiles(MinecraftProviderImpl minecraftProvider, MappingsProviderImpl mappingsProvider) {
super.initFiles(minecraftProvider, mappingsProvider);
- projectMappedJar = new File(getJarDirectory(getExtension().getRootProjectPersistentCache(), projectMappedClassifier), "minecraft-" + getJarVersionString(projectMappedClassifier) + ".jar");
+ projectMappedJar = new File(getJarDirectory(getExtension().getFiles().getRootProjectPersistentCache(), projectMappedClassifier), "minecraft-" + getJarVersionString(projectMappedClassifier) + ".jar");
}
@Override
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/LaunchProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/LaunchProvider.java
index 1690fa64..03a08d10 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/LaunchProvider.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/LaunchProvider.java
@@ -59,13 +59,13 @@ public class LaunchProvider extends DependencyProvider {
.property("fabric.remapClasspathFile", getRemapClasspathFile().getAbsolutePath())
.property("log4j.configurationFile", getAllLog4JConfigFiles())
- .property("client", "java.library.path", getExtension().getNativesDirectory().getAbsolutePath())
- .property("client", "org.lwjgl.librarypath", getExtension().getNativesDirectory().getAbsolutePath())
+ .property("client", "java.library.path", getDirectories().getNativesDirectory(getExtension().getMinecraftProvider()).getAbsolutePath())
+ .property("client", "org.lwjgl.librarypath", getDirectories().getNativesDirectory(getExtension().getMinecraftProvider()).getAbsolutePath())
.argument("client", "--assetIndex")
.argument("client", getExtension().getMinecraftProvider().getVersionInfo().assetIndex().fabricId(getExtension().getMinecraftProvider().minecraftVersion()))
.argument("client", "--assetsDir")
- .argument("client", new File(getExtension().getUserCache(), "assets").getAbsolutePath());
+ .argument("client", new File(getDirectories().getUserCache(), "assets").getAbsolutePath());
if (getExtension().isForge()) {
launchConfig
@@ -127,7 +127,7 @@ public class LaunchProvider extends DependencyProvider {
}
writeLog4jConfig();
- FileUtils.writeStringToFile(getExtension().getDevLauncherConfig(), launchConfig.asString(), StandardCharsets.UTF_8);
+ FileUtils.writeStringToFile(getDirectories().getDevLauncherConfig(), launchConfig.asString(), StandardCharsets.UTF_8);
addDependency(Constants.Dependencies.DEV_LAUNCH_INJECTOR + Constants.Dependencies.Versions.DEV_LAUNCH_INJECTOR, Constants.Configurations.LOOM_DEVELOPMENT_DEPENDENCIES);
addDependency(Constants.Dependencies.TERMINAL_CONSOLE_APPENDER + Constants.Dependencies.Versions.TERMINAL_CONSOLE_APPENDER, Constants.Configurations.LOOM_DEVELOPMENT_DEPENDENCIES);
@@ -143,7 +143,7 @@ public class LaunchProvider extends DependencyProvider {
}
private File getLog4jConfigFile() {
- return getExtension().getDefaultLog4jConfigFile();
+ return getDirectories().getDefaultLog4jConfigFile();
}
private String getAllLog4JConfigFiles() {
@@ -153,7 +153,7 @@ public class LaunchProvider extends DependencyProvider {
}
private File getRemapClasspathFile() {
- return new File(getExtension().getDevLauncherConfig().getParentFile(), "remapClasspath.txt");
+ return new File(getDirectories().getDevLauncherConfig().getParentFile(), "remapClasspath.txt");
}
private void writeLog4jConfig() {
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/MinecraftProviderImpl.java b/src/main/java/net/fabricmc/loom/configuration/providers/MinecraftProviderImpl.java
index 0ecb49ff..fa6e5703 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/MinecraftProviderImpl.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/MinecraftProviderImpl.java
@@ -59,6 +59,7 @@ public class MinecraftProviderImpl extends DependencyProvider implements Minecra
public File minecraftServerJar;
private File minecraftMergedJar;
private File versionManifestJson;
+ private File experimentalVersionsJson;
private String jarSuffix = "";
public MinecraftProviderImpl(Project project) {
@@ -117,17 +118,20 @@ public class MinecraftProviderImpl extends DependencyProvider implements Minecra
}
private void initFiles() {
- minecraftJson = new File(getExtension().getUserCache(), "minecraft-" + minecraftVersion + "-info.json");
- minecraftClientJar = new File(getExtension().getUserCache(), "minecraft-" + minecraftVersion + "-client.jar");
- minecraftServerJar = new File(getExtension().getUserCache(), "minecraft-" + minecraftVersion + "-server.jar");
- minecraftMergedJar = new File(getExtension().getUserCache(), "minecraft-" + minecraftVersion + "-merged.jar");
- versionManifestJson = new File(getExtension().getUserCache(), "version_manifest.json");
+ minecraftJson = new File(getDirectories().getUserCache(), "minecraft-" + minecraftVersion + "-info.json");
+ minecraftClientJar = new File(getDirectories().getUserCache(), "minecraft-" + minecraftVersion + "-client.jar");
+ minecraftServerJar = new File(getDirectories().getUserCache(), "minecraft-" + minecraftVersion + "-server.jar");
+ minecraftMergedJar = new File(getDirectories().getUserCache(), "minecraft-" + minecraftVersion + "-merged.jar");
+ versionManifestJson = new File(getDirectories().getUserCache(), "version_manifest.json");
+ experimentalVersionsJson = new File(getDirectories().getUserCache(), "experimental_version_manifest.json");
}
public void deleteFiles() {
DownloadUtil.delete(minecraftClientJar);
DownloadUtil.delete(minecraftServerJar);
DownloadUtil.delete(minecraftMergedJar);
+ DownloadUtil.delete(versionManifestJson);
+ DownloadUtil.delete(experimentalVersionsJson);
}
private void downloadMcJson(boolean offline) throws IOException {
@@ -155,16 +159,20 @@ public class MinecraftProviderImpl extends DependencyProvider implements Minecra
Optional<ManifestVersion.Versions> optionalVersion = Optional.empty();
- if (getExtension().customManifest != null) {
+ if (getExtension().getCustomManifest() != null) {
ManifestVersion.Versions customVersion = new ManifestVersion.Versions();
customVersion.id = minecraftVersion;
- customVersion.url = getExtension().customManifest;
+ customVersion.url = getExtension().getCustomManifest();
optionalVersion = Optional.of(customVersion);
getProject().getLogger().lifecycle("Using custom minecraft manifest");
}
- if (!optionalVersion.isPresent()) {
+ if (optionalVersion.isEmpty()) {
optionalVersion = mcManifest.versions().stream().filter(versions -> versions.id.equalsIgnoreCase(minecraftVersion)).findFirst();
+
+ if (optionalVersion.isEmpty()) {
+ optionalVersion = findExperimentalVersion(offline);
+ }
}
if (optionalVersion.isPresent()) {
@@ -194,8 +202,31 @@ public class MinecraftProviderImpl extends DependencyProvider implements Minecra
}
}
+ // This attempts to find the version from fabric's own fallback version manifest json.
+ private Optional<ManifestVersion.Versions> findExperimentalVersion(boolean offline) throws IOException {
+ if (offline) {
+ if (!experimentalVersionsJson.exists()) {
+ getProject().getLogger().warn("Skipping download of experimental versions jsons due to being offline.");
+ return Optional.empty();
+ }
+ } else {
+ DownloadUtil.downloadIfChanged(new URL(Constants.EXPERIMENTAL_VERSIONS), experimentalVersionsJson, getProject().getLogger());
+ }
+
+ String expVersionManifest = Files.asCharSource(experimentalVersionsJson, StandardCharsets.UTF_8).read();
+ ManifestVersion expManifest = LoomGradlePlugin.OBJECT_MAPPER.readValue(expVersionManifest, ManifestVersion.class);
+
+ var result = expManifest.versions().stream().filter(versions -> versions.id.equalsIgnoreCase(minecraftVersion)).findFirst();
+
+ if (result.isPresent()) {
+ getProject().getLogger().lifecycle("Using fallback experimental version {}", minecraftVersion);
+ }
+
+ return result;
+ }
+
private boolean hasRecentValidManifest() throws IOException {
- if (getExtension().customManifest != null) {
+ if (getExtension().getCustomManifest() != null) {
return false;
}
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/GradleMappingContext.java b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/GradleMappingContext.java
index f2f928bc..db478671 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/GradleMappingContext.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/GradleMappingContext.java
@@ -41,7 +41,7 @@ public class GradleMappingContext implements MappingContext {
public GradleMappingContext(Project project, Supplier<String> workingDirName) {
this.project = project;
- this.extension = project.getExtensions().getByType(LoomGradleExtension.class);
+ this.extension = LoomGradleExtension.get(project);
this.workingDirName = workingDirName;
}
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java
index 36837ccf..1de460e8 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java
@@ -113,7 +113,7 @@ public class MappingsProviderImpl extends DependencyProvider implements Mappings
public MappingsProviderImpl(Project project) {
super(project);
- mappingsDir = getExtension().getUserCache().toPath().resolve("mappings");
+ mappingsDir = getDirectories().getUserCache().toPath().resolve("mappings");
mappingsStepsDir = mappingsDir.resolve("steps");
}
@@ -214,7 +214,7 @@ public class MappingsProviderImpl extends DependencyProvider implements Mappings
Path mappedVersionedDir = getMappedVersionedDir(removeSuffix);
tinyMappings = mappedVersionedDir.resolve("mappings.tiny").toFile();
unpickDefinitionsFile = mappedVersionedDir.resolve("definitions.unpick").toFile();
- tinyMappingsJar = new File(getExtension().getUserCache(), removeSuffix + "-" + jarClassifier + ".jar");
+ tinyMappingsJar = new File(getDirectories().getUserCache(), removeSuffix + "-" + jarClassifier + ".jar");
tinyMappingsWithSrg = mappedVersionedDir.resolve("mappings-srg.tiny");
mixinTinyMappingsWithSrg = mappedVersionedDir.resolve("mappings-mixin-srg.tiny").toFile();
srgToNamedSrg = mappedVersionedDir.resolve("mappings-srg-named.srg").toFile();
@@ -277,7 +277,7 @@ public class MappingsProviderImpl extends DependencyProvider implements Mappings
LoomGradleExtension extension = getExtension();
- if (extension.accessWidener != null) {
+ if (extension.getAccessWidener() != null) {
extension.addJarProcessor(new AccessWidenerJarProcessor(getProject()));
}
@@ -545,7 +545,7 @@ public class MappingsProviderImpl extends DependencyProvider implements Mappings
// Download and extract intermediary
String encodedMinecraftVersion = UrlEscapers.urlFragmentEscaper().escape(minecraftVersion);
- String intermediaryArtifactUrl = getExtension().getIntermediaryUrl().apply(encodedMinecraftVersion);
+ String intermediaryArtifactUrl = getExtension().getIntermediaryUrl(encodedMinecraftVersion);
Path intermediaryJar = getMappingsVersionedDir().resolve("intermediary-v2.jar");
DownloadUtil.downloadIfChanged(new URL(intermediaryArtifactUrl), intermediaryJar.toFile(), getProject().getLogger());
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftLibraryProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftLibraryProvider.java
index 0089b935..53c9412d 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftLibraryProvider.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftLibraryProvider.java
@@ -48,7 +48,7 @@ public class MinecraftLibraryProvider {
}
private void initFiles(Project project, MinecraftProviderImpl minecraftProvider) {
- LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class);
- MINECRAFT_LIBS = new File(extension.getUserCache(), "libraries");
+ LoomGradleExtension extension = LoomGradleExtension.get(project);
+ MINECRAFT_LIBS = new File(extension.getFiles().getUserCache(), "libraries");
}
}
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftMappedProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftMappedProvider.java
index 1fd45815..6c6ceee5 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftMappedProvider.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftMappedProvider.java
@@ -352,9 +352,9 @@ public class MinecraftMappedProvider extends DependencyProvider {
public void initFiles(MinecraftProviderImpl minecraftProvider, MappingsProviderImpl mappingsProvider) {
this.minecraftProvider = minecraftProvider;
- minecraftIntermediaryJar = new File(getExtension().getUserCache(), "minecraft-" + getJarVersionString("intermediary") + ".jar");
+ minecraftIntermediaryJar = new File(getDirectories().getUserCache(), "minecraft-" + getJarVersionString("intermediary") + ".jar");
minecraftSrgJar = !getExtension().isForge() ? null : new File(getExtension().getUserCache(), "minecraft-" + getJarVersionString("srg") + ".jar");
- minecraftMappedJar = new File(getJarDirectory(getExtension().getUserCache(), "mapped"), "minecraft-" + getJarVersionString("mapped") + ".jar");
+ minecraftMappedJar = new File(getJarDirectory(getDirectories().getUserCache(), "mapped"), "minecraft-" + getJarVersionString("mapped") + ".jar");
inputJar = getExtension().isForge() ? mappingsProvider.patchedProvider.getMergedJar() : minecraftProvider.getMergedJar();
if (getExtension().isForge()) {
@@ -398,7 +398,7 @@ public class MinecraftMappedProvider extends DependencyProvider {
}
public File getUnpickedJar() {
- return new File(getJarDirectory(getExtension().getUserCache(), "mapped"), "minecraft-" + getJarVersionString("unpicked") + ".jar");
+ return new File(getJarDirectory(getDirectories().getUserCache(), "mapped"), "minecraft-" + getJarVersionString("unpicked") + ".jar");
}
@Override
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftNativesProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftNativesProvider.java
index 587c42ab..868b5651 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftNativesProvider.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftNativesProvider.java
@@ -49,10 +49,10 @@ public class MinecraftNativesProvider {
public MinecraftNativesProvider(Project project) {
this.project = project;
- extension = project.getExtensions().getByType(LoomGradleExtension.class);
+ extension = LoomGradleExtension.get(project);
- nativesDir = extension.getNativesDirectory();
- jarStore = extension.getNativesJarStore();
+ nativesDir = extension.getFiles().getNativesDirectory(extension.getMinecraftProvider());
+ jarStore = extension.getFiles().getNativesJarStore();
}
public static void provide(Project project) throws IOException {
@@ -60,7 +60,7 @@ public class MinecraftNativesProvider {
}
private void provide() throws IOException {
- if (extension.hasCustomNatives()) {
+ if (extension.getFiles().hasCustomNatives()) {
if (!nativesDir.exists()) {
throw new RuntimeException("Could no find custom natives directory at " + nativesDir.getAbsolutePath());
}
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/MinecraftAssetsProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/MinecraftAssetsProvider.java
index edc3aea8..13fc8f0f 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/MinecraftAssetsProvider.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/MinecraftAssetsProvider.java
@@ -50,14 +50,14 @@ import net.fabricmc.loom.util.HashedDownloadUtil;
public class MinecraftAssetsProvider {
public static void provide(MinecraftProviderImpl minecraftProvider, Project project) throws IOException {
- LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class);
+ LoomGradleExtension extension = LoomGradleExtension.get(project);
boolean offline = project.getGradle().getStartParameter().isOffline();
MinecraftVersionMeta versionInfo = minecraftProvider.getVersionInfo();
MinecraftVersionMeta.AssetIndex assetIndex = versionInfo.assetIndex();
// get existing cache files
- File assets = new File(extension.getUserCache(), "assets");
+ File assets = new File(extension.getFiles().getUserCache(), "assets");
if (!assets.exists()) {
assets.mkdirs();