1+ import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin
2+ import me.modmuss50.mpp.MppPlugin
3+ import me.modmuss50.mpp.PublishModTask
14import net.kyori.indra.IndraPlugin
25import org.jetbrains.gradle.ext.IdeaExtPlugin
36
@@ -13,6 +16,8 @@ plugins {
1316
1417 alias(libs.plugins.indra)
1518 alias(libs.plugins.blossom) apply false
19+
20+ alias(libs.plugins.publishing)
1621}
1722
1823allprojects {
@@ -22,7 +27,6 @@ allprojects {
2227 apply<IndraPlugin >()
2328
2429 group = " dev.booky"
25- version = " 1.1.0-SNAPSHOT"
2630
2731 repositories {
2832 maven(" https://repo.cloudcraftmc.de/public/" )
@@ -54,11 +58,61 @@ allprojects {
5458 tasks.withType<Jar > {
5559 archiveBaseName = project.name
5660 }
57- }
5861
59- subprojects {
60- tasks.withType<Jar > {
61- destinationDirectory = rootProject.tasks.jar.map { it.destinationDirectory }.get()
62+ if (project != rootProject) {
63+ tasks.withType<Jar > {
64+ destinationDirectory = rootProject.tasks.jar.map { it.destinationDirectory }.get()
65+ }
66+ }
67+
68+ if (project.projectDir.name != " common" ) {
69+ apply<ShadowPlugin >()
70+ apply<MppPlugin >()
71+
72+ publishMods {
73+ val repositoryName = " CloudCraftProjects/CloudCore"
74+ file = tasks.shadowJar.flatMap { it.archiveFile }.get()
75+ changelog = " See https://github.com/$repositoryName /releases/tag/v${project.version} "
76+ type = if (project.version.toString().endsWith(" -SNAPSHOT" )) BETA else STABLE
77+ additionalFiles.from(tasks.sourcesJar.flatMap { it.archiveFile }.get())
78+ dryRun = ! hasProperty(" noDryPublish" )
79+
80+ github {
81+ accessToken = providers.environmentVariable(" GITHUB_API_TOKEN" )
82+ .orElse(providers.gradleProperty(" ccGithubToken" ))
83+
84+ displayName = " ${rootProject.name} v${project.version} "
85+
86+ repository = repositoryName
87+ commitish = " master"
88+ tagName = " v${project.version} "
89+
90+ if (project != rootProject) {
91+ parent(rootProject.tasks.named(" publishGithub" ))
92+ }
93+ }
94+ modrinth {
95+ accessToken = providers.environmentVariable(" MODRINTH_API_TOKEN" )
96+ .orElse(providers.gradleProperty(" ccModrinthToken" ))
97+
98+ val platformName = if (project == rootProject) " paper" else project.projectDir.name
99+ val fancyPlatformName = platformName.replaceFirstChar { it.titlecaseChar() }
100+ version = " ${project.version} +$platformName "
101+ displayName = " ${rootProject.name} $fancyPlatformName v${project.version} "
102+ modLoaders.add(platformName)
103+
104+ projectId = " I9yBw5Kw"
105+ minecraftVersionRange {
106+ start = rootProject.libs.versions.paper.get().split(" -" )[0 ]
107+ end = " latest"
108+ }
109+ }
110+ }
111+
112+ tasks.withType<PublishModTask > {
113+ dependsOn(tasks.shadowJar)
114+ dependsOn(tasks.sourcesJar)
115+ }
62116 }
63117}
64118
0 commit comments