diff --git a/build.gradle b/build.gradle index 1f3d797d8..f89440827 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,5 @@ buildscript { repositories { - jcenter() mavenCentral() maven { name = "forge" @@ -9,7 +8,7 @@ } dependencies { classpath 'com.google.code.gson:gson:2.8.1' - classpath 'net.minecraftforge.gradle:ForgeGradle:4.1.9' + classpath 'net.minecraftforge.gradle:ForgeGradle:5.0.6' } } @@ -17,10 +16,11 @@ id "checkstyle" id "jacoco" id "maven-publish" - id "com.github.hierynomus.license" version "0.15.0" + id "com.github.hierynomus.license" version "0.16.1" id "com.matthewprenger.cursegradle" version "1.4.0" id "com.github.breadmoirai.github-release" version "2.2.12" id "org.jetbrains.kotlin.jvm" version "1.3.72" + id "com.modrinth.minotaur" version "1.2.1" } apply plugin: 'net.minecraftforge.gradle' @@ -30,15 +30,30 @@ group = "org.squiddev" archivesBaseName = "cc-tweaked-${mc_version}" +def javaVersion = JavaLanguageVersion.of(8) java { toolchain { - languageVersion = JavaLanguageVersion.of(8) + languageVersion = javaVersion } withSourcesJar() withJavadocJar() } +// Tragically java.toolchain.languageVersion doesn't apply to ForgeGradle's +// tasks, so we force all launchers to use the right Java version. +tasks.withType(JavaCompile).configureEach { + javaCompiler = javaToolchains.compilerFor { + languageVersion = javaVersion + } +} + +tasks.withType(JavaExec).configureEach { + javaLauncher = javaToolchains.launcherFor { + languageVersion = javaVersion + } +} + minecraft { runs { client { @@ -199,6 +214,7 @@ task luaJavadoc(type: Javadoc) { e.printStackTrace() } inputs.property "commithash", hash + duplicatesStrategy = DuplicatesStrategy.INCLUDE from(sourceSets.main.resources.srcDirs) { include 'META-INF/mods.toml' @@ -215,6 +231,10 @@ task luaJavadoc(type: Javadoc) { } } +sourcesJar { + duplicatesStrategy = DuplicatesStrategy.INCLUDE +} + // Web tasks import org.apache.tools.ant.taskdefs.condition.Os @@ -445,6 +465,21 @@ task setupServer(type: Copy) { } } +import com.modrinth.minotaur.TaskModrinthUpload +tasks.register('publishModrinth', TaskModrinthUpload.class).configure { + dependsOn('assemble', 'reobfJar') + onlyIf { + project.hasProperty('modrinthApiKey') + } + + token = project.hasProperty('curseForgeApiKey') + projectId = 'gu7yAYhd' + versionNumber = project.mod_version + uploadFile = jar + addGameVersion(project.mc_version) + addLoader('forge') +} + tasks.withType(GenerateModuleMetadata) { // We can't generate metadata as that includes Forge as a dependency. enabled = false @@ -519,10 +554,10 @@ task setupServer(type: Copy) { prerelease false } -def uploadTasks = ["publish", "curseforge", "githubRelease"] +def uploadTasks = ["publish", "curseforge", "publishModrinth", "githubRelease"] uploadTasks.forEach { tasks.getByName(it).dependsOn checkRelease } task uploadAll(dependsOn: uploadTasks) { group "upload" - description "Uploads to all repositories (Maven, Curse, GitHub release)" + description "Uploads to all repositories (Maven, Curse, Modrinth, GitHub release)" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2a563242c..f371643ee 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists