aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/net/fabricmc/loom/LoomGradlePlugin.java3
-rw-r--r--src/main/java/net/fabricmc/loom/api/decompilers/DecompilationMetadata.java11
-rw-r--r--src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java6
-rw-r--r--src/main/java/net/fabricmc/loom/build/mixin/AnnotationProcessorInvoker.java2
-rw-r--r--src/main/java/net/fabricmc/loom/build/nesting/MergedNestedJarProvider.java8
-rw-r--r--src/main/java/net/fabricmc/loom/build/nesting/NestedDependencyProvider.java30
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java4
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/DependencyProvider.java22
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/MavenPublication.java4
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/RemappedConfigurationEntry.java26
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java3
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java5
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/processors/dependency/ModDependencyInfo.java7
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/processors/dependency/RemapData.java9
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/LaunchProvider.java6
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/MinecraftProvider.java19
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProvider.java12
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/mappings/MojangMappingsDependency.java14
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/minecraft/ManifestVersion.java6
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftLibraryProvider.java6
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftNativesProvider.java22
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftVersionMeta.java221
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/AssetIndex.java15
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/AssetObject.java31
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/MinecraftAssetsProvider.java12
-rw-r--r--src/main/java/net/fabricmc/loom/decompilers/LineNumberRemapper.java2
-rw-r--r--src/main/java/net/fabricmc/loom/decompilers/cfr/FabricCFRDecompiler.java34
-rw-r--r--src/main/java/net/fabricmc/loom/decompilers/fernflower/AbstractFernFlowerDecompiler.java8
-rw-r--r--src/main/java/net/fabricmc/loom/task/GenVsCodeProjectTask.java8
-rw-r--r--src/main/java/net/fabricmc/loom/util/Constants.java2
-rw-r--r--src/main/java/net/fabricmc/loom/util/GroovyXmlUtil.java16
-rw-r--r--src/main/java/net/fabricmc/loom/util/SourceRemapper.java2
-rw-r--r--src/main/java/net/fabricmc/loom/util/StaticPathWatcher.java4
33 files changed, 156 insertions, 424 deletions
diff --git a/src/main/java/net/fabricmc/loom/LoomGradlePlugin.java b/src/main/java/net/fabricmc/loom/LoomGradlePlugin.java
index cac0b324..0a84bdfd 100644
--- a/src/main/java/net/fabricmc/loom/LoomGradlePlugin.java
+++ b/src/main/java/net/fabricmc/loom/LoomGradlePlugin.java
@@ -24,6 +24,8 @@
package net.fabricmc.loom;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.ImmutableMap;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -41,6 +43,7 @@ import net.fabricmc.loom.task.LoomTasks;
public class LoomGradlePlugin implements Plugin<Project> {
public static boolean refreshDeps;
public static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();
+ public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
@Override
public void apply(Project project) {
diff --git a/src/main/java/net/fabricmc/loom/api/decompilers/DecompilationMetadata.java b/src/main/java/net/fabricmc/loom/api/decompilers/DecompilationMetadata.java
index 35dcbfa6..c15f5a32 100644
--- a/src/main/java/net/fabricmc/loom/api/decompilers/DecompilationMetadata.java
+++ b/src/main/java/net/fabricmc/loom/api/decompilers/DecompilationMetadata.java
@@ -27,14 +27,5 @@ package net.fabricmc.loom.api.decompilers;
import java.nio.file.Path;
import java.util.Collection;
-public class DecompilationMetadata {
- public final int numberOfThreads;
- public final Path javaDocs;
- public final Collection<Path> libraries;
-
- public DecompilationMetadata(int numberOfThreads, Path javaDocs, Collection<Path> libraries) {
- this.numberOfThreads = numberOfThreads;
- this.javaDocs = javaDocs;
- this.libraries = libraries;
- }
+public record DecompilationMetadata(int numberOfThreads, Path javaDocs, Collection<Path> libraries) {
}
diff --git a/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java b/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java
index 9314873b..fbb0cf93 100644
--- a/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java
+++ b/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java
@@ -69,7 +69,7 @@ public class ModCompileRemapper {
for (RemappedConfigurationEntry entry : Constants.MOD_COMPILE_ENTRIES) {
data.getLazyConfigurationProvider(entry.getRemappedConfiguration()).configure(remappedConfig -> {
- Configuration sourceConfig = project.getConfigurations().getByName(entry.getSourceConfiguration());
+ Configuration sourceConfig = project.getConfigurations().getByName(entry.sourceConfiguration());
Configuration regularConfig = project.getConfigurations().getByName(entry.getTargetConfiguration(project.getConfigurations()));
List<ModDependencyInfo> modDependencies = new ArrayList<>();
@@ -149,8 +149,8 @@ public class ModCompileRemapper {
Dependency dep = dependencies.module(artifact.getModuleVersion().toString()
+ (artifact.getClassifier() == null ? "" : ':' + artifact.getClassifier())); // the owning module of the artifact
- if (dep instanceof ModuleDependency) {
- ((ModuleDependency) dep).setTransitive(false);
+ if (dep instanceof ModuleDependency moduleDependency) {
+ moduleDependency.setTransitive(false);
}
dependencies.add(regularCompile.getName(), dep);
diff --git a/src/main/java/net/fabricmc/loom/build/mixin/AnnotationProcessorInvoker.java b/src/main/java/net/fabricmc/loom/build/mixin/AnnotationProcessorInvoker.java
index ecdaf152..a0c3987b 100644
--- a/src/main/java/net/fabricmc/loom/build/mixin/AnnotationProcessorInvoker.java
+++ b/src/main/java/net/fabricmc/loom/build/mixin/AnnotationProcessorInvoker.java
@@ -71,7 +71,7 @@ public abstract class AnnotationProcessorInvoker<T extends Task> {
private void passMixinArguments(T task) {
try {
LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class);
- Map<String, String> args = new HashMap<String, String>() {{
+ Map<String, String> args = new HashMap<>() {{
put(Constants.MixinArguments.IN_MAP_FILE_NAMED_INTERMEDIARY, extension.getMappingsProvider().tinyMappings.getCanonicalPath());
put(Constants.MixinArguments.OUT_MAP_FILE_NAMED_INTERMEDIARY, extension.getNextMixinMappings().getCanonicalPath());
put(Constants.MixinArguments.OUT_REFMAP_FILE, getRefmapDestination(task, extension));
diff --git a/src/main/java/net/fabricmc/loom/build/nesting/MergedNestedJarProvider.java b/src/main/java/net/fabricmc/loom/build/nesting/MergedNestedJarProvider.java
index 566002d4..1b93b44f 100644
--- a/src/main/java/net/fabricmc/loom/build/nesting/MergedNestedJarProvider.java
+++ b/src/main/java/net/fabricmc/loom/build/nesting/MergedNestedJarProvider.java
@@ -29,13 +29,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.stream.Collectors;
-public class MergedNestedJarProvider implements NestedJarProvider {
- private final NestedJarProvider[] parents;
-
- public MergedNestedJarProvider(NestedJarProvider... parents) {
- this.parents = parents;
- }
-
+public record MergedNestedJarProvider(NestedJarProvider... parents) implements NestedJarProvider {
@Override
public Collection<File> provide() {
return Arrays.stream(parents)
diff --git a/src/main/java/net/fabricmc/loom/build/nesting/NestedDependencyProvider.java b/src/main/java/net/fabricmc/loom/build/nesting/NestedDependencyProvider.java
index dbca51ed..8de3103e 100644
--- a/src/main/java/net/fabricmc/loom/build/nesting/NestedDependencyProvider.java
+++ b/src/main/java/net/fabricmc/loom/build/nesting/NestedDependencyProvider.java
@@ -80,13 +80,12 @@ public final class NestedDependencyProvider implements NestedJarProvider {
DependencySet dependencies = configuration.getDependencies();
for (Dependency dependency : dependencies) {
- if (dependency instanceof ProjectDependency) {
- ProjectDependency projectDependency = (ProjectDependency) dependency;
+ if (dependency instanceof ProjectDependency projectDependency) {
Project dependencyProject = projectDependency.getDependencyProject();
for (Task task : dependencyProject.getTasksByName("remapJar", false)) {
- if (task instanceof RemapJarTask) {
- remapTasks.add((RemapJarTask) task);
+ if (task instanceof RemapJarTask remapJarTask) {
+ remapTasks.add(remapJarTask);
}
}
}
@@ -99,8 +98,7 @@ public final class NestedDependencyProvider implements NestedJarProvider {
List<DependencyInfo<ProjectDependency>> fileList = new ArrayList<>();
for (Dependency dependency : configuration.getDependencies()) {
- if (dependency instanceof ProjectDependency) {
- ProjectDependency projectDependency = (ProjectDependency) dependency;
+ if (dependency instanceof ProjectDependency projectDependency) {
Project dependencyProject = projectDependency.getDependencyProject();
visited.add(dependency.getGroup() + ":" + dependency.getName() + ":" + dependency.getVersion());
@@ -110,11 +108,11 @@ public final class NestedDependencyProvider implements NestedJarProvider {
Collection<Task> jarTasks = dependencyProject.getTasksByName("jar", false);
for (Task task : remapJarTasks.isEmpty() ? jarTasks : remapJarTasks) {
- if (task instanceof RemapJarTask) {
- File file = ((RemapJarTask) task).getArchivePath();
+ if (task instanceof RemapJarTask remapJarTask) {
+ File file = remapJarTask.getArchiveFile().get().getAsFile();
fileList.add(new DependencyInfo<>(projectDependency, new ProjectDependencyMetaExtractor(), file));
- } else if (task instanceof AbstractArchiveTask) {
- File file = ((AbstractArchiveTask) task).getArchivePath();
+ } else if (task instanceof AbstractArchiveTask abstractArchiveTask) {
+ File file = abstractArchiveTask.getArchiveFile().get().getAsFile();
fileList.add(new DependencyInfo<>(projectDependency, new ProjectDependencyMetaExtractor(), file));
}
}
@@ -208,17 +206,7 @@ public final class NestedDependencyProvider implements NestedJarProvider {
return LoomGradlePlugin.GSON.toJson(jsonObject);
}
- private static class DependencyInfo<D> {
- final D dependency;
- final DependencyMetaExtractor<D> metaExtractor;
- final File file;
-
- DependencyInfo(D dependency, DependencyMetaExtractor<D> metaExtractor, File file) {
- this.dependency = dependency;
- this.metaExtractor = metaExtractor;
- this.file = file;
- }
-
+ private record DependencyInfo<D>(D dependency, DependencyMetaExtractor<D> metaExtractor, File file) {
public void validateInputs() {
if (!file.exists()) {
throw new RuntimeException("Failed to include nested jars, as it could not be found @ " + file.getAbsolutePath());
diff --git a/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java b/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java
index ce6dea44..343353a1 100644
--- a/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java
+++ b/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java
@@ -67,7 +67,7 @@ public final class CompileConfiguration {
data.createLazyConfiguration(Constants.Configurations.UNPICK_CLASSPATH);
for (RemappedConfigurationEntry entry : Constants.MOD_COMPILE_ENTRIES) {
- data.createLazyConfiguration(entry.getSourceConfiguration())
+ data.createLazyConfiguration(entry.sourceConfiguration())
.configure(configuration -> configuration.setTransitive(true));
// Don't get transitive deps of already remapped mods
@@ -77,7 +77,7 @@ public final class CompileConfiguration {
extendsFrom(entry.getTargetConfiguration(configurations), entry.getRemappedConfiguration(), project);
if (entry.isOnModCompileClasspath()) {
- extendsFrom(Constants.Configurations.MOD_COMPILE_CLASSPATH, entry.getSourceConfiguration(), project);
+ extendsFrom(Constants.Configurations.MOD_COMPILE_CLASSPATH, entry.sourceConfiguration(), project);
extendsFrom(Constants.Configurations.MOD_COMPILE_CLASSPATH_MAPPED, entry.getRemappedConfiguration(), project);
}
}
diff --git a/src/main/java/net/fabricmc/loom/configuration/DependencyProvider.java b/src/main/java/net/fabricmc/loom/configuration/DependencyProvider.java
index 63ef8354..0d1d2d3b 100644
--- a/src/main/java/net/fabricmc/loom/configuration/DependencyProvider.java
+++ b/src/main/java/net/fabricmc/loom/configuration/DependencyProvider.java
@@ -100,8 +100,8 @@ public abstract class DependencyProvider {
private String resolvedVersion = null;
public static DependencyInfo create(Project project, Dependency dependency, Configuration sourceConfiguration) {
- if (dependency instanceof SelfResolvingDependency) {
- return new FileDependencyInfo(project, (SelfResolvingDependency) dependency, sourceConfiguration);
+ if (dependency instanceof SelfResolvingDependency selfResolvingDependency) {
+ return new FileDependencyInfo(project, selfResolvingDependency, sourceConfiguration);
} else {
return new DependencyInfo(project, dependency, sourceConfiguration);
}
@@ -138,8 +138,8 @@ public abstract class DependencyProvider {
}
public Set<File> resolve() {
- if (dependency instanceof SelfResolvingDependency) {
- return ((SelfResolvingDependency) dependency).resolve();
+ if (dependency instanceof SelfResolvingDependency selfResolvingDependency) {
+ return selfResolvingDependency.resolve();
}
return sourceConfiguration.files(dependency);
@@ -189,14 +189,11 @@ public abstract class DependencyProvider {
Set<File> files = dependency.resolve();
this.resolvedFiles = files;
switch (files.size()) {
- case 0: //Don't think Gradle would ever let you do this
- throw new IllegalStateException("Empty dependency?");
-
- case 1: //Single file dependency
- classifierToFile.put("", Iterables.getOnlyElement(files));
- break;
-
- default: //File collection, try work out the classifiers
+ case 0 -> //Don't think Gradle would ever let you do this
+ throw new IllegalStateException("Empty dependency?");
+ case 1 -> //Single file dependency
+ classifierToFile.put("", Iterables.getOnlyElement(files));
+ default -> { //File collection, try work out the classifiers
List<File> sortedFiles = files.stream().sorted(Comparator.comparing(File::getName, Comparator.comparingInt(String::length))).collect(Collectors.toList());
//First element in sortedFiles is the one with the shortest name, we presume all the others are different classifier types of this
File shortest = sortedFiles.remove(0);
@@ -223,6 +220,7 @@ public abstract class DependencyProvider {
}
}
}
+ }
if (dependency.getGroup() != null && dependency.getVersion() != null) {
group = dependency.getGroup();
diff --git a/src/main/java/net/fabricmc/loom/configuration/MavenPublication.java b/src/main/java/net/fabricmc/loom/configuration/MavenPublication.java
index 92acad95..afdc2400 100644
--- a/src/main/java/net/fabricmc/loom/configuration/MavenPublication.java
+++ b/src/main/java/net/fabricmc/loom/configuration/MavenPublication.java
@@ -51,7 +51,7 @@ public final class MavenPublication {
continue;
}
- Configuration compileModsConfig = p.getConfigurations().getByName(entry.getSourceConfiguration());
+ Configuration compileModsConfig = p.getConfigurations().getByName(entry.sourceConfiguration());
// add modsCompile to maven-publish
PublishingExtension mavenPublish = p.getExtensions().findByType(PublishingExtension.class);
@@ -92,7 +92,7 @@ public final class MavenPublication {
depNode.appendNode("groupId", dependency.getGroup());
depNode.appendNode("artifactId", dependency.getName());
depNode.appendNode("version", dependency.getVersion());
- depNode.appendNode("scope", entry.getMavenScope());
+ depNode.appendNode("scope", entry.mavenScope());
if (!(dependency instanceof ModuleDependency)) {
continue;
diff --git a/src/main/java/net/fabricmc/loom/configuration/RemappedConfigurationEntry.java b/src/main/java/net/fabricmc/loom/configuration/RemappedConfigurationEntry.java
index 01b0d94c..ca2fd995 100644
--- a/src/main/java/net/fabricmc/loom/configuration/RemappedConfigurationEntry.java
+++ b/src/main/java/net/fabricmc/loom/configuration/RemappedConfigurationEntry.java
@@ -27,35 +27,11 @@ package net.fabricmc.loom.configuration;
import org.gradle.api.artifacts.ConfigurationContainer;
import org.gradle.api.plugins.JavaPlugin;
-public class RemappedConfigurationEntry {
- private final String sourceConfiguration;
- private final String targetConfiguration;
- private final String mavenScope;
- private final boolean isOnModCompileClasspath;
-
- public RemappedConfigurationEntry(String sourceConfiguration, String targetConfiguration, boolean isOnModCompileClasspath, String mavenScope) {
- this.sourceConfiguration = sourceConfiguration;
- this.targetConfiguration = targetConfiguration;
- this.isOnModCompileClasspath = isOnModCompileClasspath;
- this.mavenScope = mavenScope;
- }
-
- public String getMavenScope() {
- return mavenScope;
- }
-
+public record RemappedConfigurationEntry(String sourceConfiguration, String targetConfiguration, boolean isOnModCompileClasspath, String mavenScope) {
public boolean hasMavenScope() {
return mavenScope != null && !mavenScope.isEmpty();
}
- public boolean isOnModCompileClasspath() {
- return isOnModCompileClasspath;
- }
-
- public String getSourceConfiguration() {
- return sourceConfiguration;
- }
-
public String getRemappedConfiguration() {
return sourceConfiguration + "Mapped";
}
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 0557b9a8..c7fca513 100644
--- a/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java
+++ b/src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java
@@ -36,7 +36,6 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
-import org.apache.commons.io.IOUtils;
import org.gradle.api.Project;
import org.gradle.api.tasks.SourceSet;
import org.gradle.plugins.ide.eclipse.model.EclipseModel;
@@ -222,7 +221,7 @@ public class RunConfig {
String dummyConfig;
try (InputStream input = SetupIntelijRunConfigs.class.getClassLoader().getResourceAsStream(dummy)) {
- dummyConfig = IOUtils.toString(input, StandardCharsets.UTF_8);
+ dummyConfig = new String(input.readAllBytes(), StandardCharsets.UTF_8);
}
dummyConfig = dummyConfig.replace("%NAME%", configName);
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 367a49a6..6eaa1133 100644
--- a/src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java
+++ b/src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java
@@ -42,7 +42,6 @@ import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import com.google.gson.JsonObject;
-import org.apache.commons.io.IOUtils;
import org.gradle.api.Project;
import org.objectweb.asm.commons.Remapper;
import org.zeroturnaround.zip.ZipUtil;
@@ -156,7 +155,7 @@ public class ModProcessor {
final Map<ModDependencyInfo, byte[]> accessWidenerMap = new HashMap<>();
for (RemappedConfigurationEntry entry : Constants.MOD_COMPILE_ENTRIES) {
- for (File inputFile : project.getConfigurations().getByName(entry.getSourceConfiguration()).getFiles()) {
+ for (File inputFile : project.getConfigurations().getByName(entry.sourceConfiguration()).getFiles()) {
if (remapList.stream().noneMatch(info -> info.getInputFile().equals(inputFile))) {
project.getLogger().debug("Adding " + inputFile + " onto the remap classpath");
@@ -229,7 +228,7 @@ public class ModProcessor {
}
try (InputStream inputstream = jarFile.getInputStream(entry)) {
- jsonStr = IOUtils.toString(inputstream, StandardCharsets.UTF_8);
+ jsonStr = new String(inputstream.readAllBytes(), StandardCharsets.UTF_8);
}
}
diff --git a/src/main/java/net/fabricmc/loom/configuration/processors/dependency/ModDependencyInfo.java b/src/main/java/net/fabricmc/loom/configuration/processors/dependency/ModDependencyInfo.java
index 34720051..e7437621 100644
--- a/src/main/java/net/fabricmc/loom/configuration/processors/dependency/ModDependencyInfo.java
+++ b/src/main/java/net/fabricmc/loom/configuration/processors/dependency/ModDependencyInfo.java
@@ -34,7 +34,6 @@ import java.util.jar.JarFile;
import com.google.gson.JsonObject;
import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
import org.gradle.api.artifacts.Configuration;
import org.jetbrains.annotations.Nullable;
@@ -80,7 +79,7 @@ public class ModDependencyInfo {
}
public File getRemappedDir() {
- return new File(remapData.modStore, String.format("%s/%s/%s", getGroup().replace(".", "/"), name, version));
+ return new File(remapData.modStore(), String.format("%s/%s/%s", getGroup().replace(".", "/"), name, version));
}
public File getRemappedOutput() {
@@ -96,7 +95,7 @@ public class ModDependencyInfo {
}
private String getGroup() {
- return getMappingsPrefix(remapData.mappingsSuffix) + "." + group;
+ return getMappingsPrefix(remapData.mappingsSuffix()) + "." + group;
}
public static String getMappingsPrefix(String mappings) {
@@ -121,7 +120,7 @@ public class ModDependencyInfo {
String pomTemplate;
try (InputStream input = ModDependencyInfo.class.getClassLoader().getResourceAsStream("mod_compile_template.pom")) {
- pomTemplate = IOUtils.toString(input, StandardCharsets.UTF_8);
+ pomTemplate = new String(input.readAllBytes(), StandardCharsets.UTF_8);
}
pomTemplate = pomTemplate
diff --git a/src/main/java/net/fabricmc/loom/configuration/processors/dependency/RemapData.java b/src/main/java/net/fabricmc/loom/configuration/processors/dependency/RemapData.java
index 08ce7cff..cbb92cb2 100644
--- a/src/main/java/net/fabricmc/loom/configuration/processors/dependency/RemapData.java
+++ b/src/main/java/net/fabricmc/loom/configuration/processors/dependency/RemapData.java
@@ -26,12 +26,5 @@ package net.fabricmc.loom.configuration.processors.dependency;
import java.io.File;
-public class RemapData {
- public final String mappingsSuffix;
- public final File modStore;
-
- public RemapData(String mappingsSuffix, File modStore) {
- this.mappingsSuffix = mappingsSuffix;
- this.modStore = modStore;
- }
+public record RemapData(String mappingsSuffix, File modStore) {
}
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 f4511160..e7f961df 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/LaunchProvider.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/LaunchProvider.java
@@ -65,7 +65,7 @@ public class LaunchProvider extends DependencyProvider {
.property("client", "org.lwjgl.librarypath", getExtension().getNativesDirectory().getAbsolutePath())
.argument("client", "--assetIndex")
- .argument("client", getExtension().getMinecraftProvider().getVersionInfo().getAssetIndex().getFabricId(getExtension().getMinecraftProvider().getMinecraftVersion()))
+ .argument("client", getExtension().getMinecraftProvider().getVersionInfo().assetIndex().fabricId(getExtension().getMinecraftProvider().getMinecraftVersion()))
.argument("client", "--assetsDir")
.argument("client", new File(getExtension().getUserCache(), "assets").getAbsolutePath());
@@ -112,7 +112,7 @@ public class LaunchProvider extends DependencyProvider {
private void writeRemapClassPath() {
List<String> inputConfigurations = new ArrayList<>();
inputConfigurations.add(Constants.Configurations.LOADER_DEPENDENCIES);
- inputConfigurations.addAll(Constants.MOD_COMPILE_ENTRIES.stream().map(RemappedConfigurationEntry::getSourceConfiguration).collect(Collectors.toList()));
+ inputConfigurations.addAll(Constants.MOD_COMPILE_ENTRIES.stream().map(RemappedConfigurationEntry::sourceConfiguration).collect(Collectors.toList()));
List<File> remapClasspath = new ArrayList<>();
@@ -127,7 +127,7 @@ public class LaunchProvider extends DependencyProvider {
.collect(Collectors.joining(File.pathSeparator));
try {
- Files.write(getRemapClasspathFile().toPath(), str.getBytes(StandardCharsets.UTF_8));
+ Files.writeString(getRemapClasspathFile().toPath(), str);
} catch (IOException e) {
throw new RuntimeException("Failed to generate remap classpath", e);
}
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/MinecraftProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/MinecraftProvider.java
index 8ea88b7c..aed9c725 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/MinecraftProvider.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/MinecraftProvider.java
@@ -33,7 +33,6 @@ import java.util.Optional;
import java.util.function.Consumer;
import com.google.common.io.Files;
-import com.google.gson.GsonBuilder;
import org.gradle.api.GradleException;
import org.gradle.api.Project;
import org.gradle.api.logging.Logger;
@@ -75,7 +74,7 @@ public class MinecraftProvider extends DependencyProvider {
downloadMcJson(offline);
try (FileReader reader = new FileReader(minecraftJson)) {
- versionInfo = LoomGradlePlugin.GSON.fromJson(reader, MinecraftVersionMeta.class);
+ versionInfo = LoomGradlePlugin.OBJECT_MAPPER.readValue(reader, MinecraftVersionMeta.class);
}
// Add Loom as an annotation processor
@@ -140,7 +139,7 @@ public class MinecraftProvider extends DependencyProvider {
}
String versionManifest = Files.asCharSource(versionManifestJson, StandardCharsets.UTF_8).read();
- ManifestVersion mcManifest = new GsonBuilder().create().fromJson(versionManifest, ManifestVersion.class);
+ ManifestVersion mcManifest = LoomGradlePlugin.OBJECT_MAPPER.readValue(versionManifest, ManifestVersion.class);
Optional<ManifestVersion.Versions> optionalVersion = Optional.empty();
@@ -153,7 +152,7 @@ public class MinecraftProvider extends DependencyProvider {
}
if (!optionalVersion.isPresent()) {
- optionalVersion = mcManifest.versions.stream().filter(versions -> versions.id.equalsIgnoreCase(minecraftVersion)).findFirst();
+ optionalVersion = mcManifest.versions().stream().filter(versions -> versions.id.equalsIgnoreCase(minecraftVersion)).findFirst();
}
if (optionalVersion.isPresent()) {
@@ -197,8 +196,8 @@ public class MinecraftProvider extends DependencyProvider {
return false;
}
- ManifestVersion manifest = new GsonBuilder().create().fromJson(Files.asCharSource(versionManifestJson, StandardCharsets.UTF_8).read(), ManifestVersion.class);
- Optional<ManifestVersion.Versions> version = manifest.versions.stream().filter(versions -> versions.id.equalsIgnoreCase(minecraftVersion)).findFirst();
+ ManifestVersion manifest = LoomGradlePlugin.OBJECT_MAPPER.readValue(Files.asCharSource(versionManifestJson, StandardCharsets.UTF_8).read(), ManifestVersion.class);
+ Optional<ManifestVersion.Versions> version = manifest.versions().stream().filter(versions -> versions.id.equalsIgnoreCase(minecraftVersion)).findFirst();
// fail if the expected mc version was not found, will download the file again.
return version.isPresent();
@@ -209,11 +208,11 @@ public class MinecraftProvider extends DependencyProvider {
return;
}
- MinecraftVersionMeta.Download client = versionInfo.getDownload("client");
- MinecraftVersionMeta.Download server = versionInfo.getDownload("server");
+ MinecraftVersionMeta.Download client = versionInfo.download("client");
+ MinecraftVersionMeta.Download server = versionInfo.download("server");
- HashedDownloadUtil.downloadIfInvalid(new URL(client.getUrl()), minecraftClientJar, client.getSha1(), logger, false);
- HashedDownloadUtil.downloadIfInvalid(new URL(server.getUrl()), minecraftServerJar, server.getSha1(), logger, false);
+ HashedDownloadUtil.downloadIfInvalid(new URL(client.url()), minecraftClientJar, client.sha1(), logger, false);
+ HashedDownloadUtil.downloadIfInvalid(new URL(server.url()), minecraftServerJar, server.sha1(), logger, false);
}
private void mergeJars(Logger logger) throws IOException {
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProvider.java
index 448082b9..c19b3796 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProvider.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProvider.java
@@ -28,7 +28,6 @@ import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.net.URL;
-import java.nio.charset.StandardCharsets;
import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
import java.nio.file.Files;
@@ -259,7 +258,7 @@ public class MappingsProvider extends DependencyProvider {
}
private UnpickMetadata parseUnpickMetadata(Path input) throws IOException {
- JsonObject jsonObject = LoomGradlePlugin.GSON.fromJson(new String(Files.readAllBytes(input), StandardCharsets.UTF_8), JsonObject.class);
+ JsonObject jsonObject = LoomGradlePlugin.GSON.fromJson(Files.readString(input), JsonObject.class);
if (!jsonObject.has("version") || jsonObject.get("version").getAsInt() != 1) {
throw new UnsupportedOperationException("Unsupported unpick version");
@@ -409,13 +408,6 @@ public class MappingsProvider extends DependencyProvider {
return hasUnpickDefinitions;
}
- public static class UnpickMetadata {
- public final String unpickGroup;
- public final String unpickVersion;
-
- public UnpickMetadata(String unpickGroup, String unpickVersion) {
- this.unpickGroup = unpickGroup;
- this.unpickVersion = unpickVersion;
- }
+ public record UnpickMetadata(String unpickGroup, String unpickVersion) {
}
}
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MojangMappingsDependency.java b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MojangMappingsDependency.java
index 62879458..1cd80a45 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MojangMappingsDependency.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MojangMappingsDependency.java
@@ -123,15 +123,15 @@ public class MojangMappingsDependency implements SelfResolvingDependency {
private MappingSet getMappingsSet(Path clientMappings, Path serverMappings) throws IOException {
MinecraftVersionMeta versionInfo = extension.getMinecraftProvider().getVersionInfo();
- if (versionInfo.getDownload(MANIFEST_CLIENT_MAPPINGS) == null) {
+ if (versionInfo.download(MANIFEST_CLIENT_MAPPINGS) == null) {
throw new RuntimeException("Failed to find official mojang mappings for " + getVersion());
}
- MinecraftVersionMeta.Download clientMappingsDownload = versionInfo.getDownload(MANIFEST_CLIENT_MAPPINGS);
- MinecraftVersionMeta.Download serverMappingsDownload = versionInfo.getDownload(MANIFEST_CLIENT_MAPPINGS);
+ MinecraftVersionMeta.Download clientMappingsDownload = versionInfo.download(MANIFEST_CLIENT_MAPPINGS);
+ MinecraftVersionMeta.Download serverMappingsDownload = versionInfo.download(MANIFEST_CLIENT_MAPPINGS);
- HashedDownloadUtil.downloadIfInvalid(new URL(clientMappingsDownload.getUrl()), clientMappings.toFile(), clientMappingsDownload.getSha1(), project.getLogger(), false);
- HashedDownloadUtil.downloadIfInvalid(new URL(serverMappingsDownload.getUrl()), serverMappings.toFile(), clientMappingsDownload.getSha1(), project.getLogger(), false);
+ HashedDownloadUtil.downloadIfInvalid(new URL(clientMappingsDownload.url()), clientMappings.toFile(), clientMappingsDownload.sha1(), project.getLogger(), false);
+ HashedDownloadUtil.downloadIfInvalid(new URL(serverMappingsDownload.url()), serverMappings.toFile(), clientMappingsDownload.sha1(), project.getLogger(), false);
MappingSet mappings = MappingSet.create();
@@ -208,8 +208,8 @@ public class MojangMappingsDependency implements SelfResolvingDependency {
@Override
public boolean contentEquals(Dependency dependency) {
- if (dependency instanceof MojangMappingsDependency) {
- return ((MojangMappingsDependency) dependency).extension.getMinecraftProvider().getMinecraftVersion().equals(getVersion());
+ if (dependency instanceof MojangMappingsDependency mojangMappingsDependency) {
+ return mojangMappingsDependency.extension.getMinecraftProvider().getMinecraftVersion().equals(getVersion());
}
return false;
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/ManifestVersion.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/ManifestVersion.java
index 8ab01007..d4108b14 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/ManifestVersion.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/ManifestVersion.java
@@ -24,12 +24,10 @@
package net.fabricmc.loom.configuration.providers.minecraft;
-import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
-public class ManifestVersion {
- public List<Versions> versions = new ArrayList<>();
-
+public record ManifestVersion(List<Versions> versions, Map<String, String> latest) {
public static class Versions {
public String id, url, sha1;
}
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 dcf846e8..130df4d8 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
@@ -40,9 +40,9 @@ public class MinecraftLibraryProvider {
initFiles(project, minecraftProvider);
- for (MinecraftVersionMeta.Library library : versionInfo.getLibraries()) {
- if (library.isValidForOS() && !library.hasNatives() && library.getArtifact() != null) {
- project.getDependencies().add(Constants.Configurations.MINECRAFT_DEPENDENCIES, project.getDependencies().module(library.getName()));
+ for (MinecraftVersionMeta.Library library : versionInfo.libraries()) {
+ if (library.isValidForOS() && !library.hasNatives() && library.artifact() != null) {
+ project.getDependencies().add(Constants.Configurations.MINECRAFT_DEPENDENCIES, project.getDependencies().module(library.name()));
}
}
}
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 08c4c6d4..f57db002 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
@@ -89,11 +89,11 @@ public class MinecraftNativesProvider {
nativesDir.mkdirs();
- for (MinecraftVersionMeta.Classifier library : getNatives()) {
- File libJarFile = library.getRelativeFile(jarStore);
+ for (MinecraftVersionMeta.Download library : getNatives()) {
+ File libJarFile = library.relativeFile(jarStore);
if (!offline) {
- HashedDownloadUtil.downloadIfInvalid(new URL(library.getUrl()), libJarFile, library.getSha1(), project.getLogger(), false);
+ HashedDownloadUtil.downloadIfInvalid(new URL(library.url()), libJarFile, library.sha1(), project.getLogger(), false);
}
if (!libJarFile.exists()) {
@@ -104,19 +104,19 @@ public class MinecraftNativesProvider {
// Store a file containing the hash of the extracted natives, used on subsequent runs to skip extracting all the natives if they haven't changed
File libSha1File = new File(nativesDir, libJarFile.getName() + ".sha1");
- FileUtils.writeStringToFile(libSha1File, library.getSha1(), StandardCharsets.UTF_8);
+ FileUtils.writeStringToFile(libSha1File, library.sha1(), StandardCharsets.UTF_8);
}
}
private boolean requiresExtract() {
- List<MinecraftVersionMeta.Classifier> natives = getNatives();
+ List<MinecraftVersionMeta.Download> natives = getNatives();
if (natives.isEmpty()) {
throw new IllegalStateException("No natives found for the current system");
}
- for (MinecraftVersionMeta.Classifier library : natives) {
- File libJarFile = library.getRelativeFile(jarStore);
+ for (MinecraftVersionMeta.Download library : natives) {
+ File libJarFile = library.relativeFile(jarStore);
File libSha1File = new File(nativesDir, libJarFile.getName() + ".sha1");
if (!libSha1File.exists()) {
@@ -126,7 +126,7 @@ public class MinecraftNativesProvider {
try {
String sha1 = FileUtils.readFileToString(libSha1File, StandardCharsets.UTF_8);
- if (!sha1.equalsIgnoreCase(library.getSha1())) {
+ if (!sha1.equalsIgnoreCase(library.sha1())) {
return true;
}
} catch (IOException e) {
@@ -139,10 +139,10 @@ public class MinecraftNativesProvider {
return false;
}
- private List<MinecraftVersionMeta.Classifier> getNatives() {
- return extension.getMinecraftProvider().getVersionInfo().getLibraries().stream()
+ private List<MinecraftVersionMeta.Download> getNatives() {
+ return extension.getMinecraftProvider().getVersionInfo().libraries().stream()
.filter((MinecraftVersionMeta.Library::hasNativesForOS))
- .map(MinecraftVersionMeta.Library::getClassifierForOS)
+ .map(MinecraftVersionMeta.Library::classifierForOS)
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftVersionMeta.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftVersionMeta.java
index f6676283..7f0539e9 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftVersionMeta.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftVersionMeta.java
@@ -29,108 +29,35 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
-import com.google.gson.JsonObject;
-
import net.fabricmc.loom.util.OperatingSystem;
@SuppressWarnings("unused")
-public final class MinecraftVersionMeta {
- private JsonObject arguments;
- private AssetIndex assetIndex;
- private String assets;
- private int complianceLevel;
- private Map<String, Download> downloads;
- private String id;
- private List<Library> libraries;
- private JsonObject logging;
- private String mainClass;
- private int minimumLauncherVersion;
- private String releaseTime;
- private String time;
- private String type;
-
- public Download getDownload(String key) {
- return getDownloads().get(key);
- }
-
- public JsonObject getArguments() {
- return arguments;
- }
-
- public AssetIndex getAssetIndex() {
- return assetIndex;
- }
-
- public String getAssets() {
- return assets;
- }
-
- public int getComplianceLevel() {
- return complianceLevel;
- }
-
- public Map<String, Download> getDownloads() {
- return downloads;
- }
-
- public String getId() {
- return id;
- }
-
- public List<Library> getLibraries() {
- return libraries;
- }
-
- public JsonObject getLogging() {
- return logging;
- }
-
- public String getMainClass() {
- return mainClass;
- }
-
- public int getMinimumLauncherVersion() {
- return minimumLauncherVersion;
- }
-
- public String getReleaseTime() {
- return releaseTime;
- }
-
- public String getTime() {
- return time;
- }
-
- public String getType() {
- return type;
- }
-
- public final class AssetIndex extends Downloadable {
- private String id;
- private long totalSize;
-
- public String getFabricId(String version) {
+public record MinecraftVersionMeta(
+ Object arguments,
+ AssetIndex assetIndex,
+ String assets,
+ int complianceLevel,
+ Map<String, Download> downloads,
+ String id,
+ List<Library> libraries,
+ Object logging,
+ String mainClass,
+ int minimumLauncherVersion,
+ String releaseTime,
+ String time,
+ String type
+) {
+ public Download download(String key) {
+ return downloads().get(key);
+ }
+
+ public record AssetIndex(String id, long totalSize, String path, String sha1, long size, String url) {
+ public String fabricId(String version) {
return id.equals(version) ? version : version + "-" + id;
}
-
- public String getId() {
- return id;
- }
-
- public long getTotalSize() {
- return totalSize;
- }
- }
-
- public final class Download extends Downloadable {
}
- public final class Library {
- private Downloads downloads;
- private String name;
- private Map<String, String> natives;
- private List<Rule> rules;
-
+ public record Library(Downloads downloads, String name, Map<String, String> natives, List<Rule> rules, Object extract) {
public boolean isValidForOS() {
if (rules == null || rules.isEmpty()) {
return true;
@@ -161,117 +88,45 @@ public final class MinecraftVersionMeta {
return isValidForOS();
}
- public Classifier getClassifierForOS() {
- return getDownloads().getClassifier(natives.get(OperatingSystem.getOS()));
+ public Download classifierForOS() {
+ return downloads().classifier(natives.get(OperatingSystem.getOS()));
}
- public Downloads getDownloads() {
- return downloads;
- }
-
- public Artifact getArtifact() {
- if (getDownloads() == null) {
+ public Download artifact() {
+ if (downloads() == null) {
return null;
}
- return getDownloads().getArtifact();
- }
-
- public String getName() {
- return name;
- }
-
- public Map<String, String> getNatives() {
- return natives;
- }
-
- public List<Rule> getRules() {
- return rules;
+ return downloads().artifact();
}
}
- public final class Downloads {
- private Artifact artifact;
- private Map<String, Classifier> classifiers;
-
- public Classifier getClassifier(String os) {
+ public record Downloads(Download artifact, Map<String, Download> classifiers) {
+ public Download classifier(String os) {
return classifiers.get(os);
}
-
- public Artifact getArtifact() {
- return artifact;
- }
-
- public Map<String, Classifier> getClassifiers() {
- return classifiers;
- }
- }
-
- public final class Artifact extends Downloadable {
- }
-
- public final class Classifier extends Downloadable {
}
- public final class Rule {
- private String action;
- private OS os;
-
+ public record Rule(String action, OS os) {
public boolean appliesToOS() {
- return getOS() == null || getOS().isValidForOS();
+ return os() == null || os().isValidForOS();
}
public boolean isAllowed() {
- return getAction().equals("allow");
- }
-
- public String getAction() {
- return action;
- }
-
- public OS getOS() {
- return os;
+ return action().equals("allow");
}
}
- public final class OS {
- private String name;
-
+ public record OS(String name) {
public boolean isValidForOS() {
- return getName() == null || getName().equalsIgnoreCase(OperatingSystem.getOS());
- }
-
- public String getName() {
- return name;
+ return name() == null || name().equalsIgnoreCase(OperatingSystem.getOS());
}
}
- // A base class for everything that can be downloaded
- public abstract class Downloadable {
- private String path;
- private String sha1;
- private long size;
- private String url;
-
- public File getRelativeFile(File baseDirectory) {
- Objects.requireNonNull(getPath(), "Cannot get relative file from a null path");
- return new File(baseDirectory, getPath());
- }
-
- public String getPath() {
- return path;
- }
-
- public String getSha1() {
- return sha1;
- }
-
- public long getSize() {
- return size;
- }
-
- public String getUrl() {
- return url;
+ public record Download(String path, String sha1, long size, String url) {
+ public File relativeFile(File baseDirectory) {
+ Objects.requireNonNull(path(), "Cannot get relative file from a null path");
+ return new File(baseDirectory, path());
}
}
}
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/AssetIndex.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/AssetIndex.java
index bbe96f97..6c1b8ead 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/AssetIndex.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/AssetIndex.java
@@ -30,23 +30,12 @@ import java.util.Map;
import java.util.Set;
@SuppressWarnings("unused")
-public class AssetIndex {
- private final Map<String, AssetObject> objects;
- private boolean virtual;
-
+public record AssetIndex(Map<String, AssetObject> objects, boolean virtual) {
public AssetIndex() {
- this.objects = new LinkedHashMap<>();
- }
-
- public Map<String, AssetObject> getFileMap() {
- return this.objects;
+ this(new LinkedHashMap<>(), false);
}
public Set<AssetObject> getUniqueObjects() {
return new HashSet<>(this.objects.values());
}
-
- public boolean isVirtual() {
- return this.virtual;
- }
}
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/AssetObject.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/AssetObject.java
index 32d16d6e..0380d9ba 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/AssetObject.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/assets/AssetObject.java
@@ -25,34 +25,5 @@
package net.fabricmc.loom.configuration.providers.minecraft.assets;
@SuppressWarnings("unused")
-public class AssetObject {
- private String hash;
- private long size;
-
- public String getHash() {
- return this.hash;
- }
-
- public long getSize() {
- return this.size;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- } else if ((o == null) || (getClass() != o.getClass())) {
- return false;
- } else {
- AssetObject that = (AssetObject) o;
- return this.size == that.size && this.hash.equals(that.hash);
- }
- }
-
- @Override
- public int hashCode() {
- int result = this.hash.hashCode();
- result = 31 * result + (int) (this.size ^ this.size >>> 32);
- return result;
- }
+public record AssetObject(String hash, long size) {
}
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 931e8672..fd1ad733 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
@@ -53,7 +53,7 @@ public class MinecraftAssetsProvider {
boolean offline = project.getGradle().getStartParameter().isOffline();
MinecraftVersionMeta versionInfo = minecraftProvider.getVersionInfo();
- MinecraftVersionMeta.AssetIndex assetIndex = versionInfo.getAssetIndex();
+ MinecraftVersionMeta.AssetIndex assetIndex = versionInfo.assetIndex();
// get existing cache files
File assets = new File(extension.getUserCache(), "assets");
@@ -62,7 +62,7 @@ public class MinecraftAssetsProvider {
assets.mkdirs();
}
- File assetsInfo = new File(assets, "indexes" + File.separator + assetIndex.getFabricId(minecraftProvider.getMinecraftVersion()) + ".json");
+ File assetsInfo = new File(assets, "indexes" + File.separator + assetIndex.fabricId(minecraftProvider.getMinecraftVersion()) + ".json");
project.getLogger().info(":downloading asset index");
@@ -75,7 +75,7 @@ public class MinecraftAssetsProvider {
throw new GradleException("Asset index not found at " + assetsInfo.getAbsolutePath());
}
} else {
- HashedDownloadUtil.downloadIfInvalid(new URL(assetIndex.getUrl()), assetsInfo, assetIndex.getSha1(), project.getLogger(), false);
+ HashedDownloadUtil.downloadIfInvalid(new URL(assetIndex.url()), assetsInfo, assetIndex.sha1(), project.getLogger(), false);
}
Deque<ProgressLogger> loggers = new ConcurrentLinkedDeque<>();
@@ -84,16 +84,16 @@ public class MinecraftAssetsProvider {
AssetIndex index;
try (FileReader fileReader = new FileReader(assetsInfo)) {
- index = LoomGradlePlugin.GSON.fromJson(fileReader, AssetIndex.class);
+ index = LoomGradlePlugin.OBJECT_MAPPER.readValue(fileReader, AssetIndex.class);
}
Stopwatch stopwatch = Stopwatch.createStarted();
- Map<String, AssetObject> parent = index.getFileMap();
+ Map<String, AssetObject> parent = index.objects();
for (Map.Entry<String, AssetObject> entry : parent.entrySet()) {
AssetObject object = entry.getValue();
- String sha1 = object.getHash();
+ String sha1 = object.hash();
String filename = "objects" + File.separator + sha1.substring(0, 2) + File.separator + sha1;
File file = new File(assets, filename);
diff --git a/src/main/java/net/fabricmc/loom/decompilers/LineNumberRemapper.java b/src/main/java/net/fabricmc/loom/decompilers/LineNumberRemapper.java
index 3b899c8c..4bec4e71 100644
--- a/src/main/java/net/fabricmc/loom/decompilers/LineNumberRemapper.java
+++ b/src/main/java/net/fabricmc/loom/decompilers/LineNumberRemapper.java
@@ -89,7 +89,7 @@ public class LineNumberRemapper {
}
public void process(ProgressLogger logger, Path input, Path output) throws IOException {
- Files.walkFileTree(input, new SimpleFileVisitor<Path>() {
+ Files.walkFileTree(input, new SimpleFileVisitor<>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
String rel = input.relativize(file).toString();
diff --git a/src/main/java/net/fabricmc/loom/decompilers/cfr/FabricCFRDecompiler.java b/src/main/java/net/fabricmc/loom/decompilers/cfr/FabricCFRDecompiler.java
index ee2801ab..d0ffa406 100644
--- a/src/main/java/net/fabricmc/loom/decompilers/cfr/FabricCFRDecompiler.java
+++ b/src/main/java/net/fabricmc/loom/decompilers/cfr/FabricCFRDecompiler.java
@@ -54,7 +54,6 @@ import java.util.zip.ZipFile;
import com.google.common.base.Charsets;
import com.google.common.collect.ImmutableMap;
-import com.google.common.io.ByteStreams;
import org.benf.cfr.reader.api.CfrDriver;
import org.benf.cfr.reader.api.ClassFileSource;
import org.benf.cfr.reader.api.OutputSinkFactory;
@@ -134,36 +133,29 @@ public class FabricCFRDecompiler implements LoomDecompiler {
}
try (InputStream inputStream = inputZip.getInputStream(zipEntry)) {
- return Pair.make(ByteStreams.toByteArray(inputStream), path);
+ return Pair.make(inputStream.readAllBytes(), path);
}
}
})
.withOutputSink(new OutputSinkFactory() {
@Override
public List<SinkClass> getSupportedSinks(SinkType sinkType, Collection<SinkClass> available) {
- switch (sinkType) {
- case PROGRESS:
- return Collections.singletonList(SinkClass.STRING);
- case JAVA:
- return Collections.singletonList(SinkClass.DECOMPILED);
- default:
- return Collections.emptyList();
- }
+ return switch (sinkType) {
+ case PROGRESS -> Collections.singletonList(SinkClass.STRING);
+ case JAVA -> Collections.singletonList(SinkClass.DECOMPILED);
+ default -> Collections.emptyList();
+ };
}
@SuppressWarnings("unchecked")
@Override
public <T> Sink<T> getSink(SinkType sinkType, SinkClass sinkClass) {
- switch (sinkType) {
- case PROGRESS:
- return (p) -> project.getLogger().debug((String) p);
- case JAVA:
- return (Sink<T>) decompiledSink(jos, addedDirectories);
- case EXCEPTION:
- return (e) -> project.getLogger().error((String) e);
- }
-
- return null;
+ return switch (sinkType) {
+ case PROGRESS -> (p) -> project.getLogger().debug((String) p);
+ case JAVA -> (Sink<T>) decompiledSink(jos, addedDirectories);
+ case EXCEPTION -> (e) -> project.getLogger().error((String) e);
+ default -> null;
+ };
}
})
.build();
@@ -173,7 +165,7 @@ public class FabricCFRDecompiler implements LoomDecompiler {
.filter(input -> input.endsWith(".class"))
.collect(Collectors.toList());
- ExecutorService executorService = Executors.newFixedThreadPool(metaData.numberOfThreads);
+ ExecutorService executorService = Executors.newFixedThreadPool(metaData.numberOfThreads());
List<Future<?>> futures = new LinkedList<>();
for (String clazz : classes) {
diff --git a/src/main/java/net/fabricmc/loom/decompilers/fernflower/AbstractFernFlowerDecompiler.java b/src/main/java/net/fabricmc/loom/decompilers/fernflower/AbstractFernFlowerDecompiler.java
index fdaa90d0..43e9c9d7 100644
--- a/src/main/java/net/fabricmc/loom/decompilers/fernflower/AbstractFernFlowerDecompiler.java
+++ b/src/main/java/net/fabricmc/loom/decompilers/fernflower/AbstractFernFlowerDecompiler.java
@@ -65,12 +65,12 @@ public abstract class AbstractFernFlowerDecompiler implements LoomDecompiler {
project.getLogging().captureStandardOutput(LogLevel.LIFECYCLE);
- Map<String, Object> options = new HashMap<String, Object>() {{
+ Map<String, Object> options = new HashMap<>() {{
put(IFernflowerPreferences.DECOMPILE_GENERIC_SIGNATURES, "1");
put(IFernflowerPreferences.BYTECODE_SOURCE_MAPPING, "1");
put(IFernflowerPreferences.REMOVE_SYNTHETIC, "1");
put(IFernflowerPreferences.LOG_LEVEL, "trace");
- put(IFernflowerPreferences.THREADS, metaData.numberOfThreads);
+ put(IFernflowerPreferences.THREADS, metaData.numberOfThreads());
}};
List<String> args = new ArrayList<>();
@@ -79,10 +79,10 @@ public abstract class AbstractFernFlowerDecompiler implements LoomDecompiler {
args.add(absolutePathOf(compiledJar));
args.add("-o=" + absolutePathOf(sourcesDestination));
args.add("-l=" + absolutePathOf(linemapDestination));
- args.add("-m=" + absolutePathOf(metaData.javaDocs));
+ args.add("-m=" + absolutePathOf(metaData.javaDocs()));
// TODO, Decompiler breaks on jemalloc, J9 module-info.class?
- for (Path library : metaData.libraries) {
+ for (Path library : metaData.libraries()) {
args.add("-e=" + absolutePathOf(library));
}
diff --git a/src/main/java/net/fabricmc/loom/task/GenVsCodeProjectTask.java b/src/main/java/net/fabricmc/loom/task/GenVsCodeProjectTask.java
index 2b7e4139..357b15ed 100644
--- a/src/main/java/net/fabricmc/loom/task/GenVsCodeProjectTask.java
+++ b/src/main/java/net/fabricmc/loom/task/GenVsCodeProjectTask.java
@@ -30,13 +30,11 @@ import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
import org.apache.commons.io.FileUtils;
import org.gradle.api.Project;
import org.gradle.api.tasks.TaskAction;
-import net.fabricmc.loom.LoomGradleExtension;
+import net.fabricmc.loom.LoomGradlePlugin;
import net.fabricmc.loom.configuration.ide.RunConfig;
import net.fabricmc.loom.configuration.ide.RunConfigSettings;
@@ -48,7 +46,6 @@ public class GenVsCodeProjectTask extends AbstractLoomTask {
@TaskAction
public void genRuns() {
Project project = getProject();
- LoomGradleExtension extension = getExtension();
File projectDir = project.file(".vscode");
if (!projectDir.exists()) {
@@ -72,8 +69,7 @@ public class GenVsCodeProjectTask extends AbstractLoomTask {
settings.makeRunDir();
}
- Gson gson = new GsonBuilder().setPrettyPrinting().create();
- String json = gson.toJson(launch);
+ String json = LoomGradlePlugin.GSON.toJson(launch);
try {
FileUtils.writeStringToFile(launchJson, json, StandardCharsets.UTF_8);
diff --git a/src/main/java/net/fabricmc/loom/util/Constants.java b/src/main/java/net/fabricmc/loom/util/Constants.java
index ed18dea8..1abba932 100644
--- a/src/main/java/net/fabricmc/loom/util/Constants.java
+++ b/src/main/java/net/fabricmc/loom/util/Constants.java
@@ -34,7 +34,7 @@ import net.fabricmc.loom.configuration.RemappedConfigurationEntry;
public class Constants {
public static final String LIBRARIES_BASE = "https://libraries.minecraft.net/";
- public static final String RESOURCES_BASE = "http://resources.download.minecraft.net/";
+ public static final String RESOURCES_BASE = "https://resources.download.minecraft.net/";
public static final String VERSION_MANIFESTS = "https://launchermeta.mojang.com/mc/game/version_manifest_v2.json";
public static final String SYSTEM_ARCH = System.getProperty("os.arch").equals("64") ? "64" : "32";
diff --git a/src/main/java/net/fabricmc/loom/util/GroovyXmlUtil.java b/src/main/java/net/fabricmc/loom/util/GroovyXmlUtil.java
index 4a31a287..fcc9d9cd 100644
--- a/src/main/java/net/fabricmc/loom/util/GroovyXmlUtil.java
+++ b/src/main/java/net/fabricmc/loom/util/GroovyXmlUtil.java
@@ -36,8 +36,8 @@ public final class GroovyXmlUtil {
public static Node getOrCreateNode(Node parent, String name) {
for (Object object : parent.children()) {
- if (object instanceof Node && isSameName(((Node) object).name(), name)) {
- return (Node) object;
+ if (object instanceof Node node && isSameName(node.name(), name)) {
+ return node;
}
}
@@ -46,8 +46,8 @@ public final class GroovyXmlUtil {
public static Optional<Node> getNode(Node parent, String name) {
for (Object object : parent.children()) {
- if (object instanceof Node && isSameName(((Node) object).name(), name)) {
- return Optional.of((Node) object);
+ if (object instanceof Node node && isSameName(node.name(), name)) {
+ return Optional.of(node);
}
}
@@ -59,13 +59,13 @@ public final class GroovyXmlUtil {
return nodeName.equals(givenName);
}
- if (nodeName instanceof QName) {
- return ((QName) nodeName).matches(givenName);
+ if (nodeName instanceof QName qName) {
+ return qName.matches(givenName);
}
// New groovy 3 (gradle 7) class
- if (nodeName instanceof groovy.namespace.QName) {
- return ((groovy.namespace.QName) nodeName).matches(givenName);
+ if (nodeName instanceof groovy.namespace.QName qName) {
+ return qName.matches(givenName);
}
throw new UnsupportedOperationException("Cannot determine if " + nodeName.getClass() + " is the same as a String");
diff --git a/src/main/java/net/fabricmc/loom/util/SourceRemapper.java b/src/main/java/net/fabricmc/loom/util/SourceRemapper.java
index e673d0a7..ed4957a5 100644
--- a/src/main/java/net/fabricmc/loom/util/SourceRemapper.java
+++ b/src/main/java/net/fabricmc/loom/util/SourceRemapper.java
@@ -234,7 +234,7 @@ public class SourceRemapper {
}
} else {
for (RemappedConfigurationEntry entry : Constants.MOD_COMPILE_ENTRIES) {
- for (File inputFile : project.getConfigurations().getByName(entry.getSourceConfiguration()).getFiles()) {
+ for (File inputFile : project.getConfigurations().getByName(entry.sourceConfiguration()).getFiles()) {
m.getClassPath().add(inputFile.toPath());
}
}
diff --git a/src/main/java/net/fabricmc/loom/util/StaticPathWatcher.java b/src/main/java/net/fabricmc/loom/util/StaticPathWatcher.java
index 751d6ce0..2dd9b08d 100644
--- a/src/main/java/net/fabricmc/loom/util/StaticPathWatcher.java
+++ b/src/main/java/net/fabricmc/loom/util/StaticPathWatcher.java
@@ -61,8 +61,8 @@ public final class StaticPathWatcher {
for (WatchEvent<?> event : key.pollEvents()) {
Object ctx = event.context();
- if (ctx instanceof Path) {
- changeCache.put(((Path) ctx).toAbsolutePath(), true);
+ if (ctx instanceof Path path) {
+ changeCache.put(path.toAbsolutePath(), true);
}
}
}