1+ import org.jetbrains.changelog.Changelog
2+
13plugins {
24 java
35 id(" maven-publish" )
46 id(" fabric-loom" ) version " 1.7.+"
57 kotlin(" jvm" ) version " 2.0.20"
68 id(" io.github.goooler.shadow" ) version " 8.1.7"
79 kotlin(" plugin.serialization" ) version " 2.0.20"
10+ id(" me.modmuss50.mod-publish-plugin" ) version " 0.7.4"
11+ id(" org.jetbrains.changelog" ) version " 2.+"
812}
913
1014configurations.implementation.get().extendsFrom(configurations.shadow.get())
@@ -19,7 +23,7 @@ allprojects {
1923
2024 base.archivesName.set(modId)
2125 group = mavenGroup
22- version = " $modVersion${getVersionMetadata()} "
26+ version = " $modVersion + ${rootProject.libs.versions.minecraft.get()} ${getVersionMetadata()}"
2327
2428 java {
2529 sourceCompatibility = JavaVersion .VERSION_21
@@ -118,6 +122,33 @@ dependencies {
118122 }
119123}
120124
125+ publishMods {
126+ file.set(tasks.remapJar.get().archiveFile)
127+ type.set(STABLE )
128+ changelog.set(fetchChangelog())
129+
130+ displayName.set(" Blockbot ${version.get()} " )
131+ modLoaders.add(" fabric" )
132+ modLoaders.add(" quilt" )
133+
134+ val minecraftVersion = rootProject.libs.versions.minecraft.get()
135+ curseforge {
136+ accessToken.set(providers.environmentVariable(" CF_API_TOKEN" ))
137+ projectId.set(" 482904" )
138+ minecraftVersions.add(minecraftVersion)
139+ }
140+ modrinth {
141+ accessToken.set(providers.environmentVariable(" MODRINTH_TOKEN" ))
142+ projectId.set(" yKZ9outG" )
143+ minecraftVersions.add(minecraftVersion)
144+ }
145+ github {
146+ accessToken.set(providers.environmentVariable(" GITHUB_TOKEN" ))
147+ repository.set(providers.environmentVariable(" GITHUB_REPOSITORY" ).getOrElse(" QuiltServerTools/dryrun" ))
148+ commitish.set(providers.environmentVariable(" GITHUB_REF_NAME" ).getOrElse(" dryrun" ))
149+ }
150+ }
151+
121152tasks {
122153 remapJar {
123154 dependsOn(shadowJar)
@@ -200,3 +231,16 @@ fun getVersionMetadata(): String {
200231 // No tracking information could be found about the build
201232 return " "
202233}
234+
235+ private fun fetchChangelog (): String {
236+ val changelog = tasks.getChangelog.get().changelog.get()
237+ val modVersion: String by project
238+ return if (changelog.has(modVersion)) {
239+ changelog.renderItem(
240+ changelog.get(modVersion).withHeader(false ),
241+ Changelog .OutputType .MARKDOWN
242+ )
243+ } else {
244+ " "
245+ }
246+ }
0 commit comments