generated from TropheusJ/quilt-template-mod
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
127 lines (112 loc) · 3.06 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
plugins {
alias(libs.plugins.quilt.loom)
alias(libs.plugins.quilt.flower) // Quiltflower, a better decompiler
id "maven-publish"
}
archivesBaseName = project.archives_base_name
group = project.maven_group
ext.buildNumber = System.getenv("GITHUB_RUN_NUMBER")
String patch = buildNumber != null ? buildNumber : "99999"
version = project.version.replace("<build>", patch)
repositories {
maven { url = "https://api.modrinth.com/maven" }
maven { url = "https://cursemaven.com" }
maven { url = "https://maven.terraformersmc.com/releases/" }
maven { url = "https://maven.shedaniel.me/" }
}
dependencies {
// dev environment
minecraft(libs.minecraft)
mappings loom.layered {
it.addLayer(quiltMappings.mappings("org.quiltmc:quilt-mappings:${libs.versions.minecraft.get()}+build.${libs.versions.qm.build.get()}:v2"))
it.officialMojangMappings { setNameSyntheticMembers(false) }
}
modImplementation(libs.bundles.dependencies)
modLocalRuntime(libs.bundles.dev.mods) { exclude group: "net.fabricmc"; exclude group: "net.fabricmc.fabric-api"; exclude group: "net.fabricmc.loader" }
}
task buildOrPublish {
group = "build"
String mavenUser = System.getenv().MAVEN_USER
if (mavenUser != null && !mavenUser.isEmpty()) {
dependsOn(tasks.getByName("publish"))
println("prepared for publish")
} else {
dependsOn(tasks.getByName("build"))
println("prepared for build")
}
}
processResources {
Map<String, String> properties = new HashMap<>()
properties.put("version", project.version)
properties.put("loader_version", libs.versions.quilt.loader.get())
properties.put("qfapi_version", libs.versions.quilted.fabric.api.get())
properties.put("minecraft_version", libs.versions.minecraft.get())
properties.forEach((k, v) -> inputs.property(k, v))
filesMatching("quilt.mod.json") {
expand properties
}
}
sourceSets {
testmod {
compileClasspath += main.compileClasspath
compileClasspath += main.output
runtimeClasspath += main.runtimeClasspath
runtimeClasspath += main.output
}
}
loom {
runs {
testmodClient {
client()
name "Testmod Client"
source sourceSets.testmod
runDir "run/test"
}
testmodServer {
server()
name "Testmod Server"
source sourceSets.testmod
runDir "run/test_server"
}
gametest {
server()
name "Test"
source sourceSets.testmod
vmArg "-Dfabric-api.gametest"
vmArg "-Dfabric-api.gametest.report-file=${project.buildDir}/junit.xml"
runDir "run/gametest_server"
}
}
}
tasks.withType(JavaCompile).configureEach {
it.options.encoding = "UTF-8"
it.options.release = 17
}
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
withSourcesJar()
withJavadocJar()
}
jar {
from("LICENSE") {
rename { "${it}_${archivesBaseName}" }
}
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
}
}
repositories {
maven {
url = "https://mvn.devos.one/${System.getenv().PUBLISH_SUFFIX}/"
credentials {
username = System.getenv().MAVEN_USER
password = System.getenv().MAVEN_PASS
}
authentication { basic(BasicAuthentication) }
}
}
}