11import io.papermc.hangarpublishplugin.model.Platforms
2+ import java.util.*
23import net.minecrell.pluginyml.bukkit.BukkitPluginDescription
3- import org.ajoberstar.grgit.Grgit
44import xyz.jpenilla.runpaper.task.RunServer
5- import java.util.*
65
76plugins {
87 java
98 `java- library`
9+ id(" olf.build-logic" )
1010 id(" com.diffplug.spotless" ) version " 6.18.0"
1111 id(" com.github.johnrengelman.shadow" ) version " 8.1.1"
12- id(" org.ajoberstar.grgit" ) version " 5.2.0"
1312 id(" net.minecrell.plugin-yml.bukkit" ) version " 0.5.3"
1413 id(" xyz.jpenilla.run-paper" ) version " 2.1.0"
1514 idea
1615
1716 id(" io.papermc.hangar-publish-plugin" ) version " 0.0.5"
1817 id(" com.modrinth.minotaur" ) version " 2.+"
19- id(" org.jetbrains.changelog" ) version " 2.0.0"
2018}
2119
2220if (! File (" $rootDir /.git" ).exists()) {
@@ -29,20 +27,11 @@ if (!File("$rootDir/.git").exists()) {
2927 """ .trimIndent()
3028 ).also { System .exit(1 ) }
3129}
32- var baseVersion by extra(" 1.0.0" )
33- var extension by extra(" " )
34- var snapshot by extra(" -SNAPSHOT" )
35-
36- ext {
37- val git: Grgit = Grgit .open {
38- dir = File (" $rootDir /.git" )
39- }
40- val revision = git.head().abbreviatedId
41- extension = " %s+%s" .format(Locale .ROOT , snapshot, revision)
30+ allprojects {
31+ group = " net.onelitefeather.bettergopaint"
32+ version = property(" projectVersion" ) as String // from gradle.properties
4233}
43-
44- version = " %s%s" .format(Locale .ROOT , baseVersion, extension)
45- group = " dev.themeinerlp.bettergopaint"
34+ group = " net.onelitefeather.bettergopaint"
4635
4736val minecraftVersion = " 1.20.2"
4837val supportedMinecraftVersions = listOf (
@@ -130,54 +119,6 @@ bukkit {
130119 }
131120}
132121
133- changelog {
134- version.set(baseVersion)
135- path.set(" ${project.projectDir} /CHANGELOG.md" )
136- itemPrefix.set(" -" )
137- keepUnreleasedSection.set(true )
138- unreleasedTerm.set(" [Unreleased]" )
139- groups.set(listOf (" Added" , " Changed" , " Deprecated" , " Removed" , " Fixed" , " Security" ))
140- }
141-
142- hangarPublish {
143- publications.register(" BetterGoPaint" ) {
144- version.set(project.version.toString())
145- channel.set(System .getenv(" HANGAR_CHANNEL" ))
146- changelog.set(
147- project.changelog.renderItem(
148- project.changelog.getOrNull(baseVersion) ? : project.changelog.getUnreleased()
149- )
150- )
151- apiKey.set(System .getenv(" HANGAR_SECRET" ))
152- owner.set(" TheMeinerLP" )
153- slug.set(" BetterGoPaint" )
154-
155- platforms {
156- register(Platforms .PAPER ) {
157- jar.set(tasks.shadowJar.flatMap { it.archiveFile })
158- platformVersions.set(supportedMinecraftVersions)
159- }
160- }
161- }
162- }
163-
164- modrinth {
165- token.set(System .getenv(" MODRINTH_TOKEN" ))
166- projectId.set(" qf7sNg9A" )
167- versionNumber.set(version.toString())
168- versionType.set(System .getenv(" MODRINTH_CHANNEL" ))
169- uploadFile.set(tasks.shadowJar as Any )
170- gameVersions.addAll(supportedMinecraftVersions)
171- loaders.add(" paper" )
172- loaders.add(" bukkit" )
173- loaders.add(" folia" )
174- changelog.set(
175- project.changelog.renderItem(
176- project.changelog.getOrNull(baseVersion) ? : project.changelog.getUnreleased()
177- )
178- )
179- }
180-
181122
182123spotless {
183124 java {
@@ -194,22 +135,24 @@ java {
194135}
195136
196137tasks {
138+ named<Jar >(" jar" ) {
139+ archiveClassifier.set(" unshaded" )
140+ }
197141 compileJava {
198142 options.release.set(17 )
199143 options.encoding = " UTF-8"
200144 }
201145 shadowJar {
202- archiveClassifier.set(null as String? )
146+ archiveClassifier.set(" " )
203147 dependencies {
204148 relocate(" com.cryptomorin.xseries" , " $group .xseries" )
205149 relocate(" org.incendo.serverlib" , " $group .serverlib" )
206150 relocate(" org.bstats" , " $group .metrics" )
207151 relocate(" io.papermc.lib" , " $group .paperlib" )
208152 }
209- minimize()
210153 }
211154
212- build {
155+ named( " build" ) {
213156 dependsOn(shadowJar)
214157 }
215158
@@ -223,3 +166,50 @@ tasks {
223166 }
224167 }
225168}
169+
170+ val branch = rootProject.branchName()
171+ val baseVersion = project.version as String
172+ val isRelease = ! baseVersion.contains(' -' )
173+ val isMainBranch = branch == " master"
174+ if (! isRelease || isMainBranch) { // Only publish releases from the main branch
175+ val suffixedVersion = if (isRelease) baseVersion else baseVersion + " +" + System .getenv(" GITHUB_RUN_NUMBER" )
176+ val changelogContent = if (isRelease) {
177+ " See [GitHub](https://github.com/OneLiteFeatherNET/BetterGoPaint) for release notes."
178+ } else {
179+ val commitHash = rootProject.latestCommitHash()
180+ " [$commitHash ](https://github.com/OneLiteFeatherNET/BetterGoPaint/commit/$commitHash ) ${rootProject.latestCommitMessage()} "
181+ }
182+ hangarPublish {
183+ publications.register(" BetterGoPaint" ) {
184+ version.set(project.version.toString())
185+ channel.set(if (isRelease) " Release" else if (isMainBranch) " Snapshot" else " Alpha" )
186+ changelog.set(changelogContent)
187+ apiKey.set(System .getenv(" HANGAR_SECRET" ))
188+ owner.set(" TheMeinerLP" )
189+ slug.set(" BetterGoPaint" )
190+ platforms {
191+ register(Platforms .PAPER ) {
192+ jar.set(tasks.shadowJar.flatMap { it.archiveFile })
193+ platformVersions.set(supportedMinecraftVersions)
194+ }
195+ }
196+ }
197+ }
198+
199+ modrinth {
200+ token.set(System .getenv(" MODRINTH_TOKEN" ))
201+ projectId.set(" qf7sNg9A" )
202+ versionType.set(if (isRelease) " release" else if (isMainBranch) " beta" else " alpha" )
203+ versionNumber.set(suffixedVersion)
204+ versionName.set(suffixedVersion)
205+ changelog.set(changelogContent)
206+ uploadFile.set(tasks.shadowJar.flatMap { it.archiveFile })
207+ gameVersions.addAll(supportedMinecraftVersions)
208+ loaders.add(" paper" )
209+ loaders.add(" bukkit" )
210+ loaders.add(" folia" )
211+ }
212+ }
213+
214+
215+
0 commit comments