Skip to content

Commit 3e17d54

Browse files
committed
Initial work on fully migrating to Stonecutter
1 parent 530b1bd commit 3e17d54

40 files changed

+756
-689
lines changed

build.gradle.kts

Lines changed: 22 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,37 @@
1-
import com.modrinth.minotaur.dependencies.DependencyType
2-
import com.modrinth.minotaur.dependencies.ModDependency
3-
import dev.deftu.gradle.tools.minecraft.CurseRelation
4-
import dev.deftu.gradle.tools.minecraft.CurseRelationType
5-
import dev.deftu.gradle.utils.ModLoader
6-
import dev.deftu.gradle.utils.includeOrShade
7-
import dev.deftu.gradle.utils.version.MinecraftVersions
8-
91
plugins {
10-
java
2+
id("architectury-plugin")
3+
id("dev.architectury.loom")
114
kotlin("jvm")
125
kotlin("plugin.serialization")
6+
}
7+
8+
val minecraftVersion = stonecutter.current.version
9+
val loader = try { project.property("loom.platform") as? String? } catch (_: Throwable) { null } ?: "unknown"
1310

14-
id("dev.deftu.gradle.multiversion")
15-
id("dev.deftu.gradle.tools")
16-
id("dev.deftu.gradle.tools.resources")
17-
id("dev.deftu.gradle.tools.bloom")
18-
id("dev.deftu.gradle.tools.shadow")
19-
id("dev.deftu.gradle.tools.minecraft.loom")
20-
id("dev.deftu.gradle.tools.minecraft.releases")
11+
version = "${mod.version}+$minecraftVersion-$loader"
12+
group = mod.group
13+
14+
base {
15+
archivesName.set(mod.name)
2116
}
2217

23-
toolkitMultiversion {
24-
moveBuildsToRootProject.set(true)
18+
dependencies {
19+
minecraft("com.mojang:minecraft:$minecraftVersion")
20+
mappings(loom.officialMojangMappings())
2521
}
2622

27-
toolkitLoomHelper {
28-
if (!mcData.isNeoForge) {
29-
useMixinRefMap("unitytranslate")
30-
}
23+
stonecutter {
24+
constants.match(
25+
loader,
26+
"fabric", "forge", "neoforge", "unknown"
27+
)
3128

32-
if (mcData.isForge) {
33-
useTweaker("org.spongepowered.asm.launch.MixinTweaker")
34-
useForgeMixin("unitytranslate.mixins.json", true)
35-
}
29+
constants["forge_like"] = loader == "forge" || loader == "neoforge"
3630
}
3731

32+
/*
3833
version = "${project.property("mod.version")}+mc${mcData.version}-${mcData.loader.friendlyString}"
3934
40-
repositories {
41-
mavenCentral()
42-
maven("https://maven.parchmentmc.org")
43-
maven("https://oss.sonatype.org/content/repositories/snapshots")
44-
exclusiveContent {
45-
forRepository {
46-
maven("https://api.modrinth.com/maven")
47-
}
48-
filter {
49-
includeGroup("maven.modrinth")
50-
}
51-
}
52-
maven("https://repo.clojars.org")
53-
maven("https://maven.terraformersmc.com/")
54-
maven("https://maven.architectury.dev/")
55-
maven("https://maven.maxhenkel.de/repository/public")
56-
maven("https://maven.neoforged.net/releases/")
57-
maven("https://maven.nucleoid.xyz/")
58-
maven("https://maven.minecraftforge.net")
59-
60-
maven("https://repo.plo.su")
61-
maven("https://repo.plasmoverse.com/releases")
62-
maven("https://repo.plasmoverse.com/snapshots")
63-
maven("https://repo.nyon.dev/releases")
64-
maven("https://mvn.devos.one/releases")
65-
maven("https://mvn.devos.one/snapshots")
66-
}
67-
6835
val leastCommonMcVersion = when (mcData.version) {
6936
MinecraftVersions.VERSION_1_21_10 -> "1.21.9"
7037
MinecraftVersions.VERSION_1_21_8 -> "1.21.6"
@@ -298,3 +265,4 @@ tasks {
298265
exclude("kotlin/**/*", "org/**/*")
299266
}
300267
}
268+
*/

buildSrc/build.gradle.kts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
plugins {
2+
`kotlin-dsl`
3+
kotlin("jvm") version "2.2.21"
4+
}
5+
6+
repositories {
7+
mavenCentral()
8+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import org.gradle.api.Project
2+
import org.gradle.api.artifacts.dsl.RepositoryHandler
3+
import org.gradle.kotlin.dsl.maven
4+
import org.gradle.language.jvm.tasks.ProcessResources
5+
6+
val Project.mod: ModData get() = ModData(this)
7+
fun Project.prop(key: String): String? = findProperty(key)?.toString()
8+
fun String.upperCaseFirst() = replaceFirstChar { if (it.isLowerCase()) it.uppercaseChar() else it }
9+
10+
fun RepositoryHandler.strictMaven(url: String, alias: String, vararg groups: String) = exclusiveContent {
11+
forRepository { maven(url) { name = alias } }
12+
filter { groups.forEach(::includeGroup) }
13+
}
14+
15+
fun ProcessResources.properties(files: Iterable<String>, vararg properties: Pair<String, Any>) {
16+
for ((name, value) in properties) inputs.property(name, value)
17+
filesMatching(files) {
18+
expand(properties.toMap())
19+
}
20+
}
21+
22+
@JvmInline
23+
value class ModData(private val project: Project) {
24+
val id: String get() = requireNotNull(project.prop("mod.id")) { "Missing 'mod.id'" }
25+
val name: String get() = requireNotNull(project.prop("mod.name")) { "Missing 'mod.name'" }
26+
val version: String get() = requireNotNull(project.prop("mod.version")) { "Missing 'mod.version'" }
27+
val group: String get() = requireNotNull(project.prop("mod.group")) { "Missing 'mod.group'" }
28+
29+
fun prop(key: String) = requireNotNull(project.prop("mod.$key")) { "Missing 'mod.$key'" }
30+
fun prop(key: String, orElse: Any) = project.prop("mod.$key") ?: orElse
31+
fun dep(key: String) = requireNotNull(project.prop("deps.$key")) { "Missing 'deps.$key'" }
32+
}

fabric/gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
loom.platform = fabric

forge/gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
loom.platform = forge

gradle.properties

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,47 +7,44 @@ systemProp.javax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal
77
org.gradle.jvmargs=-Xmx8192m -Xms8192m -XX:MaxMetaspaceSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
88
org.gradle.parallel.threads=8
99
org.gradle.parallel=true
10-
org.gradle.daemon=false
1110

1211
# Loom Setup
13-
dgt.loom.mappings=mojmap
14-
#dgt.loom.mappings.flavor=parchment
1512

1613
# Mod Properties
17-
mod.version = 0.2.0-beta
18-
mod.group = xyz.bluspring
19-
mod.name = UnityTranslate
20-
mod.id = unitytranslate
14+
mod.version = 0.2.0-beta
15+
mod.group = xyz.bluspring
16+
mod.name = UnityTranslate
17+
mod.id = unitytranslate
2118

2219
# Dependencies
2320

2421
### Common
25-
# https://maven.maxhenkel.de/#/releases/de/maxhenkel/voicechat/voicechat-api
26-
voicechat_api_version=2.6.0
27-
# https://github.com/plasmoapp/plasmo-voice/releases
28-
plasmo_api_version=2.1.6
22+
# https://maven.maxhenkel.de/#/releases/de/maxhenkel/voicechat/voicechat-api
23+
voicechat_api_version=2.6.0
24+
# https://github.com/plasmoapp/plasmo-voice/releases
25+
plasmo_api_version=2.1.6
2926

30-
# https://modrinth.com/mod/simple-voice-chat/versions?g=1.20.1
31-
voicechat_version=2.6.6
27+
# https://modrinth.com/mod/simple-voice-chat/versions?g=1.20.1
28+
voicechat_version=2.6.6
3229

33-
# https://modrinth.com/plugin/plasmo-voice/versions?g=1.20.1
34-
plasmo_version=2.1.6
30+
# https://modrinth.com/plugin/plasmo-voice/versions?g=1.20.1
31+
plasmo_version=2.1.6
3532

36-
kotlin_version=2.2.21
37-
kotlin_coroutines_version=1.10.2
38-
kotlin_serialization_version=1.9.0
33+
kotlin_version=2.2.21
34+
kotlin_coroutines_version=1.10.2
35+
kotlin_serialization_version=1.9.0
3936

40-
# https://central.sonatype.com/artifact/com.squareup.okhttp3/okhttp/4.12.0/versions
41-
okhttp_version=5.3.1
37+
# https://central.sonatype.com/artifact/com.squareup.okhttp3/okhttp/4.12.0/versions
38+
okhttp_version=5.3.1
4239

43-
# http://mvn.devos.one/#/snapshots/xyz/bluspring/unitytranslate/UnityTranslateLib
44-
unitytranslatelib_version = 0.4.2
40+
# http://mvn.devos.one/#/snapshots/xyz/bluspring/unitytranslate/UnityTranslateLib
41+
unitytranslatelib_version = 0.4.2
4542

46-
# https://central.sonatype.com/artifact/com.github.jnr/jnr-ffi?smo=true
47-
jnr_version = 2.2.17
43+
# https://central.sonatype.com/artifact/com.github.jnr/jnr-ffi?smo=true
44+
jnr_version = 2.2.17
4845

49-
# https://modrinth.com/mod/kotlin-lang-forge
50-
kotlinlangforge_version = 2.10.6
46+
# https://modrinth.com/mod/kotlin-lang-forge
47+
kotlinlangforge_version = 2.10.6
5148

52-
# https://modrinth.com/mod/talk-balloons
53-
talk_balloons_version = 1.3.1
49+
# https://modrinth.com/mod/talk-balloons
50+
talk_balloons_version = 1.3.1

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

neoforge/gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
loom.platform = neoforge

root.gradle.kts

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

settings.gradle.kts

Lines changed: 22 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,8 @@ pluginManagement {
33
maven("https://maven.fabricmc.net")
44
maven("https://maven.architectury.dev")
55
maven("https://maven.neoforged.net/releases")
6-
maven("https://maven.firstdark.dev/releases")
7-
maven("https://maven.deftu.dev/releases")
8-
maven("https://maven.deftu.dev/snapshots")
96
maven("https://maven.minecraftforge.net")
10-
maven("https://repo.essential.gg/repository/maven-public")
11-
maven("https://server.bbkr.space/artifactory/libs-release/")
7+
maven("https://maven.kikugie.dev/releases")
128

139
gradlePluginPortal()
1410
mavenCentral()
@@ -17,37 +13,32 @@ pluginManagement {
1713
plugins {
1814
kotlin("jvm") version("2.2.21")
1915
kotlin("plugin.serialization") version("2.2.21")
20-
id("dev.deftu.gradle.multiversion-root") version("2.64.0")
2116
}
2217
}
2318

24-
val projectName: String = extra["mod.name"]?.toString()!!
25-
rootProject.name = projectName
26-
rootProject.buildFileName = "root.gradle.kts"
27-
28-
listOf(
29-
"1.20.1-fabric",
30-
"1.20.1-forge",
31-
32-
"1.21.1-fabric",
33-
"1.21.1-neoforge",
34-
//"1.21.1-forge",
19+
plugins {
20+
id("dev.kikugie.stonecutter") version("0.7.+")
21+
}
3522

36-
"1.21.4-fabric",
37-
"1.21.4-neoforge",
23+
stonecutter {
24+
centralScript = "build.gradle.kts"
25+
kotlinController = true
3826

39-
"1.21.5-fabric",
40-
"1.21.5-neoforge",
27+
val versions = listOf("1.20.1", "1.21.1", "1.21.4", "1.21.5", "1.21.8", "1.21.10")
4128

42-
"1.21.8-fabric",
43-
"1.21.8-neoforge",
29+
create(rootProject) {
30+
versions(versions)
31+
vcsVersion = "1.20.1"
4432

45-
"1.21.10-fabric",
46-
"1.21.10-neoforge"
47-
).forEach { version ->
48-
include(":$version")
49-
project(":$version").apply {
50-
projectDir = file("versions/$version")
51-
buildFileName = "../../build.gradle.kts"
33+
branch("fabric")
34+
// branch("forge") {
35+
// versions(versions.filterIndexed { i, _ -> i <= versions.indexOf("1.20.1") })
36+
// }
37+
// branch("neoforge") {
38+
// versions(versions.filterIndexed { i, _ -> i >= versions.indexOf("1.21.1") })
39+
// }
5240
}
53-
}
41+
}
42+
43+
val projectName: String = extra["mod.name"]?.toString()!!
44+
rootProject.name = projectName

0 commit comments

Comments
 (0)