@@ -5,14 +5,31 @@ plugins {
5
5
id(" net.darkhax.curseforgegradle" ) version(" ${ curseforgegradle_version} " )
6
6
id(" com.github.breadmoirai.github-release" ) version(" ${ githubrelease_version} " )
7
7
id(" org.ajoberstar.grgit.service" ) version(" ${ grgitservice_version} " )
8
+ id(" org.cadixdev.licenser" ) version(" ${ licenser_version} " )
8
9
}
9
10
10
11
subprojects {
11
12
version = mod_version
12
13
group = mod_group
13
-
14
- // Publishing
15
- if (name != " common" ) {
14
+
15
+ if (name == " common" ) {
16
+ // License headers
17
+ apply(plugin : " org.cadixdev.licenser" )
18
+ String licenseDir = " src/main/resources/assets/${ mod_id} /license/"
19
+ license {
20
+ // This can be done in multiloader-common.gradle but only if the
21
+ // "matching" method is not used (throws a pile of weird errors).
22
+ // Also, NeoForge's update of the plugin can't handle matching at all.
23
+ include(" **/*.java" ) // Java files only
24
+ header = project. file(licenseDir + " HEADER.txt" )
25
+ properties {
26
+ project_name = mod_name
27
+ owner_name = mod_owner
28
+ year = java.time.LocalDate . now(). getYear(). toString()
29
+ }
30
+ }
31
+ } else {
32
+ // Publishing
16
33
apply(plugin : " com.modrinth.minotaur" )
17
34
apply(plugin : " net.darkhax.curseforgegradle" )
18
35
apply(plugin : " com.github.breadmoirai.github-release" )
@@ -24,8 +41,8 @@ subprojects {
24
41
projectId = modrinth_id
25
42
versionNumber = mod_version
26
43
versionType = release_type
27
- versionName = " v${ mod_version} -${ capsLoader(name)} - ${ minecraft_version } "
28
- changelog = rootProject . file( " changelog.md " ) . text
44
+ versionName = " v${ mod_version} -${ capsLoader(name)} "
45
+ changelog = versionChangelog()
29
46
uploadFile = name == " fabric" ? remapJar : jar
30
47
loaders = project. property(" release_mod_loaders_${ name} " ). split(" ," ) as List
31
48
gameVersions = project. property(" release_game_versions_${ name} " ). split(" ," ) as List
@@ -60,10 +77,10 @@ subprojects {
60
77
String module = project. name
61
78
62
79
def file = upload(curseforge_id, module == " fabric" ? remapJar : jar)
63
- file. displayName = " v${ mod_version} -${ capsLoader(module)} - ${ minecraft_version } "
80
+ file. displayName = " v${ mod_version} -${ capsLoader(module)} "
64
81
file. releaseType = release_type
65
- file. changelog = rootProject . file( " changelog.md " ) . text
66
- file. changelogType = ' markdown'
82
+ file. changelog = versionChangelog()
83
+ file. changelogType = " markdown"
67
84
project. property(" release_mod_loaders_${ module} " ). split(" ," ). each { String id ->
68
85
file. addModLoader(id)
69
86
}
@@ -96,8 +113,18 @@ subprojects {
96
113
repo = github_repo
97
114
tagName = " v${ mod_version} "
98
115
prerelease = release_type == " alpha" || release_type == " beta"
99
- releaseName = " v${ mod_version} for ${ minecraft_version} "
100
- body = rootProject. file(" changelog.md" ). text
116
+ releaseName = " v${ mod_version} "
117
+
118
+ String changelog = " \n\n ## Changelog\n\n " + versionChangelog()
119
+ String versions = " ## MC versions\n\n "
120
+ if (project. hasProperty(" release_game_versions_fabric" ))
121
+ versions = String . format(" %s - Fabric: %s\n " , versions,
122
+ project. property(" release_game_versions_fabric" ))
123
+ if (project. hasProperty(" release_game_versions_neoforge" ))
124
+ versions = String . format(" %s - NeoForge: %s\n " , versions,
125
+ project. property(" release_game_versions_neoforge" ))
126
+ body = versions + changelog
127
+
101
128
targetCommitish = grgitService. service. get(). grgit. branch. current(). name
102
129
overwrite = false
103
130
allowUploadToExisting = true
@@ -109,6 +136,24 @@ subprojects {
109
136
}
110
137
}
111
138
139
+ String versionChangelog () {
140
+ List<String > lines = rootProject. file(" CHANGELOG.md" ). readLines()
141
+ StringBuilder builder = new StringBuilder ()
142
+ for (int i = 4 ; i < lines. size(); i++ ) {
143
+ String line = lines. get(i)
144
+ if (line. isBlank()) {
145
+ // pass
146
+ } else if (line. startsWith(" ## " )) {
147
+ break
148
+ }
149
+ else {
150
+ if (! builder. isEmpty()) builder. append(" \n " )
151
+ builder. append(line)
152
+ }
153
+ }
154
+ return builder. toString()
155
+ }
156
+
112
157
static String capsLoader (String loader ) {
113
158
switch (loader) {
114
159
case " fabric" : return " Fabric"
0 commit comments