@@ -2,6 +2,7 @@ plugins {
22 id ' dev.architectury.loom' version ' 1.7-SNAPSHOT' apply false
33 id ' architectury-plugin' version ' 3.4-SNAPSHOT'
44 id ' com.github.johnrengelman.shadow' version ' 8.1.1' apply false
5+ id ' me.modmuss50.mod-publish-plugin' version ' 1.1.0'
56}
67
78architectury {
@@ -81,3 +82,63 @@ subprojects {
8182 }
8283 }
8384}
85+
86+ // Mod Publishing
87+ def publishingFile = file(" publishing.properties" )
88+ if (! publishingFile. exists()) {
89+ throw new InvalidUserDataException (" publishing.properties could not be found." )
90+ }
91+ def publishing = new Properties ()
92+ publishingFile. withInputStream { publishing. load(it) }
93+ publishing. each { k, v -> if (v != null ) publishing. setProperty(k, v. toString(). trim()) }
94+
95+ publishMods {
96+ changelog = file(" CHANGELOG.md" ). exists() ? file(" CHANGELOG.md" ). text : " Changelog not found - check the repository for updates."
97+ type = project. version. toString(). toLowerCase(). contains(" pre" ) ? BETA : STABLE
98+ maxRetries = 5
99+
100+ def cfOptions = curseforgeOptions {
101+ accessToken = providers. provider({ publishing. getProperty(" curseforgeToken" ) })
102+ projectId = publishing. getProperty(" curseforgeId" )
103+ minecraftVersions. add(project. minecraft_version)
104+ projectSlug = " building-but-better"
105+ }
106+
107+ def mrOptions = modrinthOptions {
108+ accessToken = providers. provider({ publishing. getProperty(" modrinthToken" ) })
109+ projectId = publishing. getProperty(" modrinthId" )
110+ minecraftVersions. add(project. minecraft_version)
111+ }
112+
113+ curseforge(" curseforgeFabric" ) {
114+ from cfOptions
115+ file project(" :fabric" )
116+ modLoaders. add(" fabric" )
117+ requires(" architectury-api" )
118+ displayName = " Building But Better ${ project.version} (Fabric ${ project.minecraft_version} )"
119+ }
120+
121+ curseforge(" curseforgeForge" ) {
122+ from cfOptions
123+ file project(" :forge" )
124+ modLoaders. add(" forge" )
125+ requires(" architectury-api" )
126+ displayName = " Building But Better ${ project.version} (Forge ${ project.minecraft_version} )"
127+ }
128+
129+ modrinth(" modrinthFabric" ) {
130+ from mrOptions
131+ file project(" :fabric" )
132+ modLoaders. add(" fabric" )
133+ requires(" architectury-api" )
134+ displayName = " Building But Better ${ project.version} (Fabric ${ project.minecraft_version} )"
135+ }
136+
137+ modrinth(" modrinthForge" ) {
138+ from mrOptions
139+ file project(" :forge" )
140+ modLoaders. add(" forge" )
141+ requires(" architectury-api" )
142+ displayName = " Building But Better ${ project.version} (Forge ${ project.minecraft_version} )"
143+ }
144+ }
0 commit comments