Skip to content

Commit 9cf5e09

Browse files
committed
Allow providers to be added to run config args
1 parent 3e2a0f2 commit 9cf5e09

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

src/main/java/net/minecraftforge/gradle/SlimeLauncherOptionsInternal.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,13 @@
44
*/
55
package net.minecraftforge.gradle;
66

7+
import org.gradle.api.provider.Provider;
8+
import org.gradle.api.provider.ProviderConvertible;
79
import org.gradle.api.reflect.HasPublicType;
810
import org.gradle.api.reflect.TypeOf;
911

12+
import java.util.ArrayList;
13+
1014
non-sealed interface SlimeLauncherOptionsInternal extends SlimeLauncherOptions, HasPublicType {
1115
@Override
1216
default TypeOf<?> getPublicType() {
@@ -18,7 +22,21 @@ default void apply(SlimeLauncherExec task) {
1822
task.getBootstrapMainClass().set(this.getMainClass());
1923

2024
if (this.getArgs().filter(Util::isPresent).isPresent())
21-
task.getMcBootstrapArgs().set(this.getArgs().map(it -> it.stream().map(Object::toString).toList()));
25+
task.getMcBootstrapArgs().set(this.getArgs().map(args -> {
26+
var list = new ArrayList<String>(args.size());
27+
for (var arg : args) {
28+
if (arg instanceof ProviderConvertible<?>) {
29+
var s = ((ProviderConvertible<?>) arg).asProvider().get();
30+
list.add(s.toString());
31+
} else if (arg instanceof Provider<?>) {
32+
var s = ((Provider<?>) arg).get();
33+
list.add(s.toString());
34+
} else {
35+
list.add(arg.toString());
36+
}
37+
}
38+
return list;
39+
}));
2240

2341
if (this.getJvmArgs().filter(Util::isPresent).isPresent())
2442
task.jvmArgs(this.getJvmArgs().get());

0 commit comments

Comments
 (0)