diff --git a/build.gradle b/build.gradle index ff44d8c..ffaf90e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,14 @@ + +import com.modrinth.minotaur.TaskModrinthUpload +import com.modrinth.minotaur.dependencies.ModDependency +import groovy.json.JsonOutput +import groovy.json.JsonSlurper +import net.darkhax.curseforgegradle.TaskPublishCurseForge +import net.darkhax.curseforgegradle.UploadArtifact +import net.minecraftforge.gradle.common.util.RunConfig +import net.minecraftforge.gradle.userdev.tasks.RenameJarInPlace + + buildscript { repositories { maven { url = 'https://repo.spongepowered.org/repository/maven-public' } @@ -8,12 +19,13 @@ buildscript { } plugins { - id "com.matthewprenger.cursegradle" version '1.4.0' + id 'net.darkhax.curseforgegradle' version '1.1.16' + id "com.modrinth.minotaur" version "2.+" id 'java' id 'eclipse' id 'idea' id 'maven-publish' - id 'net.minecraftforge.gradle' version '5.1.+' + id 'net.minecraftforge.gradle' version '[6.0,6.2)' id 'org.parchmentmc.librarian.forgegradle' version '1.+' id 'org.spongepowered.mixin' version '0.7.+' } @@ -119,11 +131,11 @@ repositories { } maven { //curio - url = "https://maven.theillusivec4.top/" + url "https://maven.theillusivec4.top/" } maven { - //HWYLA - url "https://maven.tehnut.info" + //curios + url 'https://modmaven.dev/' } maven { url "https://www.cursemaven.com" @@ -131,7 +143,6 @@ repositories { includeGroup "curse.maven" } } - mavenCentral() whenObjectAdded { //ForgeGradle adds these in an afterEvaluate, so we need to catch them as they're added and exclude mod artifacts/groups @@ -162,10 +173,16 @@ dependencies { compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}-forge-api:${jei_version}") runtimeOnly fg.deobf("mezz.jei:jei-${minecraft_version}-forge:${jei_version}") - runtimeOnly fg.deobf("top.theillusivec4.curios:curios-forge:${minecraft_version}-${curios_version}") - compileOnly fg.deobf("top.theillusivec4.curios:curios-forge:${minecraft_version}-${curios_version}:api") + compileOnly fg.deobf("curse.maven:jade-api-324717:${jade_api_id}") + runtimeOnly fg.deobf("curse.maven:jade-324717:${jade_id}") + + //runtimeOnly fg.deobf("curse.maven:soulhome-574511:${soulhome_id}") + + runtimeOnly fg.deobf("top.theillusivec4.curios:curios-forge:${curios_version}") + compileOnly fg.deobf("top.theillusivec4.curios:curios-forge:${curios_version}:api") - implementation fg.deobf("vazkii.patchouli:Patchouli:${patchouli_version}") + compileOnly fg.deobf("vazkii.patchouli:Patchouli:${patchouli_version}-FORGE:api") + runtimeOnly fg.deobf("vazkii.patchouli:Patchouli:${patchouli_version}-FORGE") } // Example for how to get properties into the manifest for reading at runtime. @@ -279,27 +296,31 @@ def changeLogResolver = { -> if (System.getenv("CURSEFORGE_API_TOKEN") != null || project.hasProperty('curseforge_api_token')) { println "Enabling Curseforge config" - tasks.named('curseforge').configure { dependsOn(jar) } - curseforge { + tasks.register("curseforge", TaskPublishCurseForge, { task -> + setGroup("publishing") + setDescription("Upload to CurseForge") //https://authors.curseforge.com/account/api-tokens - apiKey = System.getenv("CURSEFORGE_API_TOKEN") ?: project.findProperty("curseforge_api_token") - - //Main - Cosmere - project { - id = '574511' - changelogType = "html" - changelog = changeLogResolver - releaseType = "${release_type}" - mainArtifact(jar) { - relations { - optionalDependency "jei" - optionalDependency "patchouli" - } - } - //addArtifact apiJar.get() - addGameVersion "Java ${java_version}" - addGameVersion "${minecraft_version}" + apiToken = System.getenv("CURSEFORGE_API_TOKEN") ?: project.findProperty("curseforge_api_token") + + def changelog = changeLogResolver.call() + + task.upload(574511, jar) { main -> + setGenericCurseArtifactData(main, changelog, release_type) + //Add optional deps + addOptional( + //'curios', + 'patchouli', + 'jei', + ) } - } + }) +} + +void setGenericCurseArtifactData(UploadArtifact artifact, String changelog, String release_type) +{ + artifact.changelog = changelog + artifact.changelogType = 'text' + artifact.releaseType = "${release_type}" + artifact.addModLoader("Forge") } diff --git a/gradle.properties b/gradle.properties index bd9c9b2..2b8e885 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,14 +1,16 @@ org.gradle.daemon=false -org.gradle.jvmargs=-Xmx8G +org.gradle.jvmargs=-Xmx3G java_version=17 #Sat Jan 29 12:10:33 NZDT 2022 -minecraft_version=1.19.2 -forge_version=43.1.3 +minecraft_version=1.20.1 +forge_version=47.3.0 jar_name=SoulHome-Mod -jei_version=11.2.0.256 -curios_version=5.1.1.0 -patchouli_version=1.19.2-76 +jei_version=15.2.0.27 +curios_version=5.10.0+1.20.1 +patchouli_version=1.20.1-84 +jade_api_id=4712550 +jade_id=4711195 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7454180..7f93135 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e750102..8838ba9 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle b/settings.gradle index c536578..c121b1c 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,26 +1,27 @@ pluginManagement { repositories { gradlePluginPortal() + /*maven { + name "NeoForge" + url "https://maven.neoforged.net/releases/" + }*/ maven { - name "forge" - url "https://maven.minecraftforge.net/" + name = 'MinecraftForge' + url = 'https://maven.minecraftforge.net/' } maven { name 'parchment' url 'https://maven.parchmentmc.org' } } + resolutionStrategy { eachPlugin { - switch (requested.id.toString()) { - case "net.minecraftforge.gradle": { - useModule("${requested.id}:ForgeGradle:${requested.version}") - break - } - case "org.spongepowered.mixin": { - useModule("org.spongepowered:mixingradle:${requested.version}") - break; - } + if (requested.id.toString() == "org.spongepowered.mixin") { + useModule("org.spongepowered:mixingradle:${requested.version}") + } + if (requested.id.toString() == "net.minecraftforge.gradle") { + useModule("${requested.id}:ForgeGradle:${requested.version}") } } }