add minVersion filling support - fix #34
This commit is contained in:
parent
fe194ea64d
commit
83d6a2da42
5 changed files with 33 additions and 6 deletions
|
@ -41,7 +41,7 @@ dependencies {
|
|||
// implementation ('org.benf:cfr:0.136')
|
||||
implementation ('org.jetbrains:intellij-fernflower:1.0.0.2')
|
||||
|
||||
implementation ('net.fabricmc:sponge-mixin:0.7.11.4') {
|
||||
implementation ('net.fabricmc:sponge-mixin:0.7.11.10') {
|
||||
exclude module: 'launchwrapper'
|
||||
exclude module: 'guava'
|
||||
}
|
||||
|
|
|
@ -29,11 +29,14 @@ import net.fabricmc.loom.providers.MinecraftMappedProvider;
|
|||
import net.fabricmc.loom.providers.MinecraftProvider;
|
||||
import net.fabricmc.loom.util.LoomDependencyManager;
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.artifacts.Dependency;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
public class LoomGradleExtension {
|
||||
public String runDir = "run";
|
||||
|
@ -74,6 +77,24 @@ public class LoomGradleExtension {
|
|||
return projectCache;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getMixinVersion() {
|
||||
for (Dependency dependency : project.getConfigurations().getByName("compile").getDependencies()) {
|
||||
if (dependency.getName().equalsIgnoreCase("mixin") && dependency.getGroup().equals("org.spongepowered")) {
|
||||
return dependency.getVersion();
|
||||
}
|
||||
|
||||
if (dependency.getName().equals("sponge-mixin") && dependency.getGroup().equals("net.fabricmc")) {
|
||||
if (Objects.requireNonNull(dependency.getVersion()).split("\\.").length >= 4) {
|
||||
return dependency.getVersion().substring(0, dependency.getVersion().lastIndexOf('.')) + "-SNAPSHOT";
|
||||
}
|
||||
return dependency.getVersion();
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public LoomDependencyManager getDependencyManager() {
|
||||
return dependencyManager;
|
||||
}
|
||||
|
|
|
@ -66,7 +66,7 @@ public class LoomDependencyManager {
|
|||
}
|
||||
for(String config : targetConfigs){
|
||||
Configuration configuration = project.getConfigurations().getByName(config);
|
||||
configuration.getDependencies().stream().forEach(dependency -> {
|
||||
configuration.getDependencies().forEach(dependency -> {
|
||||
for(DependencyProvider provider : dependencyProviderList){
|
||||
if(provider.getTargetConfig().equals(config)){
|
||||
DependencyProvider.DependencyInfo info = new DependencyProvider.DependencyInfo(dependency, configuration);
|
||||
|
|
|
@ -50,7 +50,7 @@ public final class MixinRefmapHelper {
|
|||
private MixinRefmapHelper() {
|
||||
|
||||
}
|
||||
public static boolean addRefmapName(String filename, File output) {
|
||||
public static boolean addRefmapName(String filename, String mixinVersion, File output) {
|
||||
Set<String> mixinFilenames = findMixins(output, true);
|
||||
|
||||
if (mixinFilenames.size() > 0) {
|
||||
|
@ -61,7 +61,12 @@ public final class MixinRefmapHelper {
|
|||
@Override
|
||||
protected String transform(ZipEntry zipEntry, String input) throws IOException {
|
||||
JsonObject json = GSON.fromJson(input, JsonObject.class);
|
||||
json.addProperty("refmap", filename);
|
||||
if (!json.has("refmap")) {
|
||||
json.addProperty("refmap", filename);
|
||||
}
|
||||
if (!json.has("minVersion") && mixinVersion != null) {
|
||||
json.addProperty("minVersion", mixinVersion);
|
||||
}
|
||||
return GSON.toJson(json);
|
||||
}
|
||||
})).toArray(ZipEntryTransformerEntry[]::new)
|
||||
|
@ -82,7 +87,7 @@ public final class MixinRefmapHelper {
|
|||
try {
|
||||
JsonObject json = GSON.fromJson(inputStreamReader, JsonObject.class);
|
||||
if (json != null && json.has("mixins") && json.get("mixins").isJsonArray()) {
|
||||
if (!onlyWithoutRefmap || !json.has("refmap")) {
|
||||
if (!onlyWithoutRefmap || !json.has("refmap") || !json.has("minVersion")) {
|
||||
mixinFilename.add(entry.getName());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,6 +31,7 @@ import net.fabricmc.tinyremapper.OutputConsumerPath;
|
|||
import net.fabricmc.tinyremapper.TinyRemapper;
|
||||
import net.fabricmc.tinyremapper.TinyUtils;
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.artifacts.Dependency;
|
||||
|
||||
import java.io.File;
|
||||
import java.nio.file.Path;
|
||||
|
@ -100,7 +101,7 @@ public class ModRemapper {
|
|||
}
|
||||
|
||||
if (extension.refmapName != null && extension.refmapName.length() > 0) {
|
||||
if (MixinRefmapHelper.addRefmapName(extension.refmapName, modJarOutput)) {
|
||||
if (MixinRefmapHelper.addRefmapName(extension.refmapName, extension.getMixinVersion(), modJarOutput)) {
|
||||
project.getLogger().debug("Transformed mixin reference maps in output JAR!");
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue