Skip to content

Commit 433ac63

Browse files
committed
use DependencyFactory for mc deps
1 parent 3c3a545 commit 433ac63

File tree

2 files changed

+16
-14
lines changed

2 files changed

+16
-14
lines changed

plugin/src/main/java/io/github/cichlidmc/cichlid_gradle/extension/dep/MinecraftDepsExtension.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,41 +3,41 @@
33
import io.github.cichlidmc.cichlid_gradle.util.Distribution;
44
import org.gradle.api.Action;
55
import org.gradle.api.Project;
6-
import org.gradle.api.artifacts.Dependency;
7-
import org.gradle.api.artifacts.dsl.DependencyHandler;
6+
import org.gradle.api.artifacts.ExternalModuleDependency;
7+
import org.gradle.api.artifacts.dsl.DependencyFactory;
88

99
public class MinecraftDepsExtension {
1010
// can't use managed properties - https://github.com/gradle/gradle/issues/18213
11-
private final DependencyHandler deps;
11+
private final DependencyFactory factory;
1212

13-
private MinecraftDepsExtension(DependencyHandler deps) {
14-
this.deps = deps;
13+
private MinecraftDepsExtension(DependencyFactory factory) {
14+
this.factory = factory;
1515
}
1616

17-
public Dependency client(String version) {
17+
public ExternalModuleDependency client(String version) {
1818
return this.ofDist(Distribution.CLIENT, version);
1919
}
2020

21-
public Dependency server(String version) {
21+
public ExternalModuleDependency server(String version) {
2222
return this.ofDist(Distribution.SERVER, version);
2323
}
2424

25-
public Dependency merged(String version) {
25+
public ExternalModuleDependency merged(String version) {
2626
return this.ofDist(Distribution.MERGED, version);
2727
}
2828

29-
public Dependency of(Action<MinecraftSpec> action) {
29+
public ExternalModuleDependency of(Action<MinecraftSpec> action) {
3030
MinecraftSpecImpl spec = new MinecraftSpecImpl();
3131
action.execute(spec);
32-
return this.deps.create(spec.toDependencyString());
32+
return spec.createDependencyOrThrow(this.factory);
3333
}
3434

35-
private Dependency ofDist(Distribution dist, String version) {
35+
private ExternalModuleDependency ofDist(Distribution dist, String version) {
3636
return this.of(spec -> spec.distribution(dist).version(version));
3737
}
3838

3939
public static void setup(Project project) {
40-
MinecraftDepsExtension mc = new MinecraftDepsExtension(project.getDependencies());
40+
MinecraftDepsExtension mc = new MinecraftDepsExtension(project.getDependencyFactory());
4141
project.getDependencies().getExtensions().add("minecraft", mc);
4242
}
4343
}

plugin/src/main/java/io/github/cichlidmc/cichlid_gradle/extension/dep/MinecraftSpecImpl.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import io.github.cichlidmc.cichlid_gradle.util.Distribution;
44
import org.gradle.api.InvalidUserDataException;
5+
import org.gradle.api.artifacts.ExternalModuleDependency;
6+
import org.gradle.api.artifacts.dsl.DependencyFactory;
57

68
public final class MinecraftSpecImpl implements MinecraftSpec {
79
private Distribution dist;
@@ -19,14 +21,14 @@ public MinecraftSpec version(String version) {
1921
return this;
2022
}
2123

22-
public String toDependencyString() {
24+
public ExternalModuleDependency createDependencyOrThrow(DependencyFactory factory) {
2325
if (this.dist == null) {
2426
throw new InvalidUserDataException("Minecraft distribution is not specified.");
2527
} else if (this.version == null) {
2628
throw new InvalidUserDataException("Minecraft version is not specified.");
2729
}
2830

29-
return "net.minecraft:minecraft-" + this.dist.name + ':' + this.version;
31+
return factory.create("net.minecraft", "minecraft-" + this.dist.name, this.version);
3032
}
3133

3234
@Override

0 commit comments

Comments
 (0)