Skip to content

Commit ab87e1d

Browse files
committed
zoomify, meet modstitch!
1 parent e75c871 commit ab87e1d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+117
-410
lines changed

build.gradle.kts

Lines changed: 83 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,57 @@
11
plugins {
22
`java-library`
33

4-
val kotlinVersion = "2.2.0"
4+
val kotlinVersion = "2.3.0"
55
kotlin("jvm") version kotlinVersion
66
kotlin("plugin.serialization") version kotlinVersion
77

8-
id("fabric-loom") version "1.14-SNAPSHOT"
8+
id("dev.isxander.modstitch.base") version "0.8.4"
99

1010
id("me.modmuss50.mod-publish-plugin") version "0.8.4"
1111
`maven-publish`
12-
12+
signing
13+
id("dev.isxander.secrets") version "0.1.0"
1314
id("org.ajoberstar.grgit") version "5.3.2"
1415
}
1516

16-
val mcVersion = property("mcVersion")!!.toString()
17-
val mcSemverVersion = stonecutter.current.version
18-
val mcDep = property("fmj.mcDep").toString()
17+
modstitch {
18+
minecraftVersion = property("mcVersion").toString()
1919

20-
group = "dev.isxander"
21-
val versionWithoutMC = "2.14.6"
22-
version = "$versionWithoutMC+${stonecutter.current.project}"
20+
parchment {
21+
mappingsVersion = providers.gradleProperty("parchment.version")
22+
minecraftVersion = providers.gradleProperty("parchment.minecraft")
23+
}
2324

24-
val isAlpha = "alpha" in version.toString()
25-
val isBeta = "beta" in version.toString()
25+
metadata {
26+
modId = providers.gradleProperty("modId")
27+
modName = providers.gradleProperty("modName")
28+
modVersion = providers.gradleProperty("modVersion").map { "$it+${stonecutter.current.project}" }
29+
modDescription = providers.gradleProperty("modDescription")
30+
modGroup = "dev.isxander"
31+
modLicense = "LGPL-3.0-or-later"
32+
modAuthor = "isXander"
33+
}
2634

27-
base {
28-
archivesName.set(property("modName").toString())
29-
}
35+
loom {
36+
fabricLoaderVersion = providers.gradleProperty("deps.fabricLoader")
3037

31-
loom {
32-
runConfigs.all {
33-
ideConfigGenerated(true)
34-
runDir("../../run")
38+
configureLoom {
39+
runConfigs.all {
40+
runDir("../../run")
41+
}
42+
}
3543
}
3644

3745
mixin {
38-
useLegacyMixinAp.set(false)
46+
addMixinsToModManifest = true
47+
configs.register("zoomify")
3948
}
4049
}
4150

51+
52+
val isAlpha = "alpha" in modstitch.metadata.modVersion.get()
53+
val isBeta = "beta" in modstitch.metadata.modVersion.get()
54+
4255
stonecutter {
4356
swaps.put(
4457
"fov-precision",
@@ -71,120 +84,56 @@ repositories {
7184
forRepository { maven("https://cursemaven.com") }
7285
filter { includeGroup("curse.maven") }
7386
}
74-
exclusiveContent {
75-
forRepository { mavenLocal() }
76-
filter {
77-
includeVersionByRegex("net\\.fabricmc\\.fabric-api", "fabric.*", ".*local")
78-
includeVersion("dev.isxander", "yet-another-config-lib", "3.7.1+1.21.9-fabric")
79-
}
80-
}
8187
}
8288

8389
dependencies {
84-
fun Dependency?.jij() = this?.also(::include)
90+
fun Dependency?.jij() = this?.also(::modstitchJiJ)
8591

86-
minecraft("com.mojang:minecraft:$mcVersion")
87-
mappings(loom.layered {
88-
optionalProp("deps.parchment") {
89-
parchment("org.parchmentmc.data:parchment-$it@zip")
90-
}
91-
92-
officialMojangMappings()
93-
})
94-
modImplementation("net.fabricmc:fabric-loader:${property("deps.fabricLoader")}")
95-
96-
modImplementation("net.fabricmc.fabric-api:fabric-api:${property("deps.fabricApi")}")
97-
98-
modImplementation("net.fabricmc:fabric-language-kotlin:${property("deps.flk")}")
99-
100-
modApi("dev.isxander:yet-another-config-lib:${property("deps.yacl")}") {
101-
// was including old fapi version that broke things at runtime
102-
exclude(group = "net.fabricmc.fabric-api")
103-
}.jij()
92+
modstitchModImplementation("net.fabricmc.fabric-api:fabric-api:${property("deps.fabricApi")}")
93+
modstitchModImplementation("net.fabricmc:fabric-language-kotlin:${property("deps.flk")}")
94+
modstitchModApi("dev.isxander:yet-another-config-lib:${property("deps.yacl")}")
10495

10596
// mod menu compat
10697
optionalProp("deps.modMenu") {
107-
modCompileOnly("com.terraformersmc:modmenu:$it") {
108-
exclude(group = "net.fabricmc.fabric-api")
109-
}
98+
modstitchModCompileOnly("com.terraformersmc:modmenu:$it")
11099
}
111100

112101
optionalProp("deps.controlify") {
113-
modCompileOnly("dev.isxander:controlify:$it") {
114-
exclude(group = "net.fabricmc.fabric-api")
115-
}
116-
}
117-
118-
modImplementation(include("com.akuleshov7:ktoml-core-jvm:${property("deps.ktoml")}")!!)
119-
}
120-
121-
tasks {
122-
processResources {
123-
val modId: String by project
124-
val modName: String by project
125-
val modDescription: String by project
126-
val githubProject: String by project
127-
128-
val props = mapOf(
129-
"id" to modId,
130-
"group" to project.group,
131-
"name" to modName,
132-
"description" to modDescription,
133-
"version" to project.version,
134-
"github" to githubProject,
135-
"mc" to mcDep
136-
)
137-
138-
props.forEach(inputs::property)
139-
140-
filesMatching("fabric.mod.json") {
141-
expand(props)
142-
}
143-
144-
eachFile {
145-
// don't include photoshop files for the textures for development
146-
if (name.endsWith(".psd")) {
147-
exclude()
148-
}
149-
}
102+
modstitchModCompileOnly("dev.isxander:controlify:$it")
150103
}
151104

152-
register("releaseMod") {
153-
group = "mod"
154-
155-
dependsOn("publishMods")
156-
dependsOn("publish")
157-
}
105+
modstitchImplementation("com.akuleshov7:ktoml-core-jvm:${property("deps.ktoml")}").jij()
158106
}
159107

160-
val javaMajorVersion = property("java.version").toString().toInt()
161108
java {
162109
withSourcesJar()
163-
164-
javaMajorVersion
165-
.let { JavaVersion.values()[it - 1] }
166-
.let {
167-
sourceCompatibility = it
168-
targetCompatibility = it
169-
}
110+
withJavadocJar()
170111
}
171112

172-
tasks.withType<JavaCompile> {
173-
options.release = javaMajorVersion
113+
tasks.javadoc {
114+
isFailOnError = false
174115
}
116+
175117
kotlin {
176-
jvmToolchain(javaMajorVersion)
118+
//jvmToolchain(modstitch.javaVersion)
119+
}
120+
121+
tasks.register("releaseMod") {
122+
group = "mod"
123+
124+
dependsOn("publishMods")
125+
dependsOn("publish")
177126
}
178127

179128
publishMods {
180-
displayName.set("Zoomify $versionWithoutMC for MC $mcVersion")
181-
file.set(tasks.remapJar.get().archiveFile)
182-
changelog.set(
183-
rootProject.file("changelogs/${versionWithoutMC}.md")
129+
displayName = modstitch.metadata.modVersion.map { "Zoomify $it" }
130+
file = modstitch.finalJarTask.flatMap { it.archiveFile }
131+
changelog = providers.provider {
132+
rootProject.file("changelog.md")
184133
.takeIf { it.exists() }
185134
?.readText()
186135
?: "No changelog provided."
187-
)
136+
}
188137
type.set(when {
189138
isAlpha -> ALPHA
190139
isBeta -> BETA
@@ -200,43 +149,37 @@ publishMods {
200149
// modrinth and curseforge use different formats for snapshots. this can be expressed globally
201150
val stableMCVersions = versionList("pub.stableMC")
202151

203-
val modrinthId: String by project
204-
if (modrinthId.isNotBlank() && hasProperty("modrinth.token")) {
205-
modrinth {
206-
projectId.set(modrinthId)
207-
accessToken.set(findProperty("modrinth.token")?.toString())
208-
minecraftVersions.addAll(stableMCVersions)
209-
minecraftVersions.addAll(versionList("pub.modrinthMC"))
210-
211-
requires { slug.set("fabric-api") }
212-
requires { slug.set("yacl") }
213-
requires { slug.set("fabric-language-kotlin") }
214-
optional { slug.set("modmenu") }
215-
}
152+
modrinth {
153+
accessToken = secrets.gradleProperty("modrinth.accessToken")
154+
projectId = providers.gradleProperty("pub.modrinthId")
155+
156+
minecraftVersions.addAll(stableMCVersions)
157+
minecraftVersions.addAll(versionList("pub.modrinthMC"))
158+
159+
requires { slug.set("fabric-api") }
160+
requires { slug.set("yacl") }
161+
requires { slug.set("fabric-language-kotlin") }
162+
optional { slug.set("modmenu") }
216163
}
217164

218-
val curseforgeId: String by project
219-
if (curseforgeId.isNotBlank() && hasProperty("curseforge.token")) {
220-
curseforge {
221-
projectId.set(curseforgeId)
222-
accessToken.set(findProperty("curseforge.token")?.toString())
223-
minecraftVersions.addAll(stableMCVersions)
224-
minecraftVersions.addAll(versionList("pub.curseMC"))
225-
226-
requires { slug.set("fabric-api") }
227-
requires { slug.set("yacl") }
228-
requires { slug.set("fabric-language-kotlin") }
229-
optional { slug.set("modmenu") }
230-
}
165+
curseforge {
166+
accessToken = secrets.gradleProperty("curseforge.accessToken")
167+
projectId = providers.gradleProperty("pub.curseforgeId")
168+
projectSlug = providers.gradleProperty("pub.curseforgeSlug")
169+
170+
minecraftVersions.addAll(stableMCVersions)
171+
minecraftVersions.addAll(versionList("pub.curseMC"))
172+
173+
requires { slug.set("fabric-api") }
174+
requires { slug.set("yacl") }
175+
requires { slug.set("fabric-language-kotlin") }
176+
optional { slug.set("modmenu") }
231177
}
232178

233-
val githubProject: String by project
234-
if (githubProject.isNotBlank() && hasProperty("github.token")) {
235-
github {
236-
repository.set(githubProject)
237-
accessToken.set(findProperty("github.token")?.toString())
238-
commitish.set(grgit.branch.current().name)
239-
}
179+
github {
180+
accessToken = secrets.gradleProperty("github.accessToken")
181+
repository = providers.gradleProperty("githubProject")
182+
commitish = grgit.branch.current().name
240183
}
241184
}
242185

File renamed without changes.

changelogs/1.6.0.md

Lines changed: 0 additions & 3 deletions
This file was deleted.

changelogs/1.6.1.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

changelogs/1.6.2.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

changelogs/1.7.0.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

changelogs/1.7.1.md

Lines changed: 0 additions & 2 deletions
This file was deleted.

changelogs/2.0.0.md

Lines changed: 0 additions & 44 deletions
This file was deleted.

changelogs/2.0.1.md

Lines changed: 0 additions & 4 deletions
This file was deleted.

changelogs/2.0.2.md

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)