Skip to content

Commit

Permalink
Restructured to use stonecutter
Browse files Browse the repository at this point in the history
  • Loading branch information
SHsuperCM committed Jun 20, 2023
1 parent 2b6d3a6 commit ab4fcee
Show file tree
Hide file tree
Showing 10 changed files with 197 additions and 135 deletions.
169 changes: 75 additions & 94 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,123 +1,104 @@
import java.nio.file.Files

plugins {
id 'fabric-loom' version '1.1-SNAPSHOT' apply false
id 'io.shcm.shsupercm.fabric.fletchingtable' version '1.6' apply false
id 'com.modrinth.minotaur' version '2.+' apply false
id 'com.matthewprenger.cursegradle' version '1.4.0' apply false
id 'fabric-loom' version '1.2-SNAPSHOT'
id 'io.shcm.shsupercm.fabric.fletchingtable' version '1.6'
}

allprojects {
apply plugin: "fabric-loom"
apply plugin: "io.shcm.shsupercm.fabric.fletchingtable"

version = project.mod_version + "+" + project.minecraft_version
group = project.maven_group
version = "${property('mod.version')}+${stonecutter.current().version()}"
group = 'shcm.shsupercm.fabric.citresewn'

repositories {
maven { url "https://maven.shedaniel.me/" }
maven { url "https://maven.terraformersmc.com/releases" }
maven { url "https://cursemaven.com" }
}
repositories {
maven { url 'https://maven.terraformersmc.com/releases/' }
maven { url 'https://maven.shedaniel.me/' }
}

dependencies {
minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api}"
//fletchingTable.fungible project.fungible
dependencies {
minecraft "com.mojang:minecraft:${stonecutter.current().version()}"
mappings "net.fabricmc:yarn:${property('deps.yarn')}:v2"

modCompileOnly fabricApi.module("fabric-api-base", "${project.fabric_api}")
modCompileOnly fabricApi.module("fabric-resource-loader-v0", "${project.fabric_api}")
modCompileOnly fabricApi.module("fabric-command-api-v2", "${project.fabric_api}")
modImplementation "net.fabricmc:fabric-loader:${property('deps.fabric-loader')}"
modImplementation "net.fabricmc.fabric-api:fabric-api:${property('deps.fabric-api')}"

modImplementation("com.terraformersmc:modmenu:${project.modmenu}") {
exclude(group: "net.fabricmc.fabric-api")
}
modImplementation "com.terraformersmc:modmenu:${property('deps.modmenu')}"
modImplementation "me.shedaniel.cloth:cloth-config-fabric:${property('deps.cloth-config')}"

modImplementation("me.shedaniel.cloth:cloth-config-fabric:${project.cloth}") {
exclude(group: "net.fabricmc.fabric-api")
}
}
include project(":defaults:${stonecutter.current().version()}")
}

fletchingTable {
defaultMixinEnvironment = "auto"
}
fletchingTable {
defaultMixinEnvironment = "auto"
}

processResources {
inputs.property "version", rootProject.version
filteringCharset "UTF-8"
loom {
accessWidenerPath = file("../../src/main/resources/citresewn.accesswidener")

filesMatching("fabric.mod.json") {
expand "version": rootProject.version
}
runConfigs.configureEach {
ideConfigGenerated = true
}
}

java {
//withSourcesJar()
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17

java {
archivesBaseName = project.archives_base_name
}

jar {
archiveClassifier.set "dev"
archivesBaseName = property('mod.jarname')
}

from("LICENSE") {
rename { "${it}_${project.archivesBaseName}" }
}
processResources {
filesMatching('fabric.mod.json') {
expand 'mod_version': version, 'mod_target_mc': project.property('mod.target-mc')
}
}

apply plugin: 'com.modrinth.minotaur'
apply plugin: 'com.matthewprenger.cursegradle'
jar {
archiveClassifier.set 'dev'

loom {
accessWidenerPath = file("src/main/resources/citresewn.accesswidener")
from rootProject.file('LICENSE')
}

dependencies {
afterEvaluate {
include project("defaults:")
if (stonecutter.current().isActiveVersion()) {
plugins.apply 'com.modrinth.minotaur'
plugins.apply 'com.matthewprenger.cursegradle'

modrinth {
token = TOKEN_MODRINTH
projectId = property('publish.modrinth.id')
uploadFile = remapJar
changelog = java.nio.file.Files.readString(rootProject.file("Changelog.md").toPath())
versionNumber = version
versionName = "v" + version
//additionalFiles = [sourcesJar.outputs.getFiles().singleFile]
gameVersions = Arrays.asList(property('mod.target-mc-publish').split(","))
}
}

java {
withSourcesJar()
}

modrinth {
token = TOKEN_MODRINTH
projectId = "otVJckYQ"
uploadFile = remapJar
changelog = Files.readString(projectDir.toPath().resolve("Changelog.md"))
versionNumber = version
versionName = "v" + version
additionalFiles = [ sourcesJar.outputs.getFiles().singleFile ]
gameVersions = Arrays.asList(project.publish_minecraft_versions.split(","))
}

curseforge {
apiKey = TOKEN_CURSEFORGE
project {
id = '521427'
changelogType = 'markdown'
changelog = file('Changelog.md')
releaseType = 'release'
mainArtifact(remapJar) {
displayName = "v" + version
curseforge {
apiKey = TOKEN_CURSEFORGE
project {
id = property('publish.curseforge.id')
changelogType = 'markdown'
changelog = rootProject.file('Changelog.md')
releaseType = 'release'
mainArtifact(remapJar) {
displayName = "v" + version
}
addGameVersion 'Fabric'
for (String version : property('mod.target-mc-publish').split(","))
addGameVersion version
}
options {
forgeGradleIntegration = false
}
addGameVersion 'Fabric'
for (String version : project.publish_minecraft_versions.split(","))
addGameVersion version
}
options {
forgeGradleIntegration = false

rootProject.tasks.register('publish') {
setGroup 'project'

Task remapJarTask = tasks.getByName 'remapJar'
Task curseforgeTask = tasks.getByName 'curseforge'
Task modrinthTask = tasks.getByName 'modrinth'

dependsOn remapJarTask, curseforgeTask, modrinthTask
curseforgeTask.mustRunAfter remapJarTask
modrinthTask.mustRunAfter remapJarTask
}
}

task publishVersion {
dependsOn 'remapJar', 'curseforge', 'modrinth', ':defaults:modrinth'
tasks.getByName("curseforge").mustRunAfter("remapJar")
tasks.getByName("modrinth").mustRunAfter("remapJar")
}
85 changes: 67 additions & 18 deletions defaults/build.gradle
Original file line number Diff line number Diff line change
@@ -1,30 +1,79 @@
apply plugin: 'com.modrinth.minotaur'
plugins {
id 'fabric-loom' version '1.2-SNAPSHOT'
id 'io.shcm.shsupercm.fabric.fletchingtable' version '1.6'
}

version = "${property('mod.version')}+${stonecutter.current().version()}"
group = 'shcm.shsupercm.fabric.citresewn.defaults'

archivesBaseName = "citresewn-defaults"
repositories {
maven { url 'https://maven.terraformersmc.com/releases/' }
maven { url 'https://maven.shedaniel.me/' }
}

dependencies {
implementation project(path: ":", configuration: "namedElements")
minecraft "com.mojang:minecraft:${stonecutter.current().version()}"
mappings "net.fabricmc:yarn:${property('deps.yarn')}:v2"

modImplementation "net.fabricmc:fabric-loader:${property('deps.fabric-loader')}"
modImplementation "net.fabricmc.fabric-api:fabric-api:${property('deps.fabric-api')}"

modImplementation "com.terraformersmc:modmenu:${property('deps.modmenu')}"
modImplementation "me.shedaniel.cloth:cloth-config-fabric:${property('deps.cloth-config')}"

implementation project(path: ":${stonecutter.current().version()}", configuration: "namedElements")
}

java {
withSourcesJar()
fletchingTable {
defaultMixinEnvironment = "auto"
}

loom {
accessWidenerPath = file("src/main/resources/citresewn-defaults.accesswidener")
accessWidenerPath = file("../../src/main/resources/citresewn-defaults.accesswidener")

runConfigs.configureEach {
ideConfigGenerated = true
}
runConfigs.configureEach {
ideConfigGenerated = true
}
}

modrinth {
token = TOKEN_MODRINTH
projectId = "meHXjJBu"
uploadFile = remapJar
versionNumber = version
versionName = "v" + version
additionalFiles = [ sourcesJar.outputs.getFiles().singleFile ]
gameVersions = Arrays.asList(rootProject.publish_minecraft_versions.split(","))
java {
//withSourcesJar()
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17

archivesBaseName = "${property('mod.jarname')}-defaults"
}

processResources {
filesMatching('fabric.mod.json') {
expand 'mod_version': version
}
}

jar {
archiveClassifier.set 'dev'

from rootProject.file('LICENSE')
}

if (stonecutter.current().isActiveVersion()) {
plugins.apply 'com.modrinth.minotaur'

modrinth {
token = TOKEN_MODRINTH
projectId = 'meHXjJBu'
uploadFile = remapJar
versionNumber = version
versionName = "v" + version
//additionalFiles = [sourcesJar.outputs.getFiles().singleFile]
gameVersions = Arrays.asList(property('mod.target-mc-publish').split(","))
}

rootProject.tasks.named('publish') {
Task remapJarTask = tasks.getByName 'remapJar'
Task modrinthTask = tasks.getByName 'modrinth'

dependsOn remapJarTask, modrinthTask
modrinthTask.mustRunAfter remapJarTask
}
}
tasks.getByName("modrinth").mustRunAfter(rootProject.tasks.getByName("modrinth"))
4 changes: 2 additions & 2 deletions defaults/src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"schemaVersion": 1,
"id": "citresewn-defaults",
"version": "${version}",
"version": "${mod_version}",
"name": "CIT Resewn: Defaults",
"description": "Default types and conditions for CIT Resewn",
"authors": [
Expand All @@ -28,7 +28,7 @@
}
},
"depends": {
"citresewn": "${version}"
"citresewn": "${mod_version}"
},
"conflicts": {
"eatinganimationid": "<1.9"
Expand Down
3 changes: 3 additions & 0 deletions defaults/stonecutter.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
plugins.apply 'io.shcm.shsupercm.fabric.stonecutter'
stonecutter.active '1.20.1'
//-------- !DO NOT EDIT ABOVE THIS LINE! --------\\
6 changes: 6 additions & 0 deletions defaults/versions/1.20.1/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
mod.target-mc=~1.20
mod.target-mc-publish=1.20,1.20.1
deps.yarn=1.20.1+build.2
deps.fabric-api=0.83.1+1.20.1
deps.modmenu=7.1.0
deps.cloth-config=11.0.99
33 changes: 15 additions & 18 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
# Done to increase the memory available to gradle.
org.gradle.jvmargs=-Xmx1G
# Mostly system specific, if you can handle more or less, change these for your needs
org.gradle.jvmargs=-Xmx2G
org.gradle.workers.max=1

# Fabric Properties
# check these on https://modmuss50.me/fabric.html
minecraft_version=1.20
publish_minecraft_versions=1.20
yarn_mappings=1.20+build.1
loader_version=0.14.21
fungible=1.2+mc1.19.3

fabric_api=0.83.0+1.20
modmenu=7.0.1
cloth=11.0.99

# Mod Properties
mod_version=1.1.3
maven_group=shcm.shsupercm.fabric
archives_base_name=CITResewn
# CIT Resewn
mod.version=1.1.3
mod.jarname=citresewn
mod.target-mc=[VERSIONED]
mod.target-mc-publish=[VERSIONED]
publish.modrinth.id=otVJckYQ
publish.curseforge.id=521427

# Dependencies
deps.yarn=[VERSIONED]
deps.fabric-loader=0.14.21
deps.modmenu=[VERSIONED]
deps.cloth-config=[VERSIONED]
19 changes: 18 additions & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,21 @@ pluginManagement {
}
}

include 'defaults'
plugins {
id 'io.shcm.shsupercm.fabric.stonecutter' version '1.1'

id 'com.modrinth.minotaur' version '2.+' apply false
id 'com.matthewprenger.cursegradle' version '1.4.0' apply false
}

include 'defaults'

String[] targetMCVersions = [ '1.20.1' ]

stonecutter.create(rootProject) {
versions targetMCVersions
}

stonecutter.create(project(':defaults')) {
versions targetMCVersions
}
Loading

0 comments on commit ab4fcee

Please sign in to comment.