import com.modrinth.minotaur.dependencies.ModDependency buildscript { dependencies { classpath 'org.kohsuke:github-api:1.306' } } plugins { id "fabric-loom" version "0.12.+" id "maven-publish" id "com.modrinth.minotaur" version "2.+" } repositories { mavenCentral() maven { name 'm2-dv8tion' url 'https://m2.dv8tion.net/releases' } } def CHANGELOG = new File('CHANGELOG.md').exists() ? new File('CHANGELOG.md').text : "No changelog provided" archivesBaseName = project.archives_base_name version = project.mod_version group = project.maven_group sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 configurations { includeTransitive } dependencies { minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" include modImplementation(fabricApi.module("fabric-lifecycle-events-v1", project.fabric_version)) include modImplementation(fabricApi.module("fabric-api-base", project.fabric_version)) include implementation('net.dv8tion:JDA:4.4.0_352') { exclude module: 'opus-java' } include 'com.fasterxml.jackson.core:jackson-annotations:2.10.1' include 'com.fasterxml.jackson.core:jackson-databind:2.10.1' include 'com.fasterxml.jackson.core:jackson-core:2.10.1' include 'com.neovisionaries:nv-websocket-client:2.14' include 'org.apache.commons:commons-collections4:4.1' include 'com.squareup.okhttp3:okhttp:3.13.0' include 'com.squareup.okio:okio:1.17.2' include 'net.sf.trove4j:trove4j:3.0.3' } compileJava { sourceCompatibility = 17 targetCompatibility = 17 options.encoding = 'UTF-8' } processResources { inputs.property "version", project.version filesMatching("fabric.mod.json") { expand "version": project.version } } // ensure that the encoding is set to UTF-8, no matter what the system default is // this fixes some edge cases with special characters not displaying correctly // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html tasks.withType(JavaCompile) { options.encoding = "UTF-8" } // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task // if it is present. // If you remove this task, sources will not be generated. /*task sourcesJar(type: Jar, dependsOn: classes) { classifier = "sources" from sourceSets.main.allSource }*/ jar { from "LICENSE" } def getBranch() { def ENV = System.getenv() if (ENV.GITHUB_REF) { def branch = ENV.GITHUB_REF return branch.substring(branch.lastIndexOf("/") + 1) } if (grgit == null) { return "unknown" } def branch = grgit.branch.current().name return branch.substring(branch.lastIndexOf("/") + 1) } task remapMavenJar(type: net.fabricmc.loom.task.RemapJarTask, dependsOn: jar) { input = jar.archiveFile archiveFileName = "${archivesBaseName}-${project.version}-maven.jar" addNestedDependencies = false } build.dependsOn remapMavenJar modrinth { String projectVersion = project.version.toString(); List projectVersionNumber = projectVersion.split("-", 2) String projectVersionName = "Release ${projectVersionNumber[0]}" if (projectVersion.contains("beta")) { List projectBeta = projectVersionNumber[1].split("[.]", 2) projectVersionName = "${projectVersionNumber[0]} - Beta ${projectBeta[1]}" versionType = "beta" } else if (projectVersion.contains("alpha")) { List projectAlpha = projectVersionNumber[1].split("[.]", 2) projectVersionName = "${projectVersionNumber[0]} - Alpha ${projectAlpha[1]}" versionType = "alpha" } else if (projectVersion.contains("rc")) { List projectRC = projectVersionNumber[1].split("[.]", 2) projectVersionName = "${projectVersionNumber[0]} - Release Candidate ${projectRC[1]}" versionType = "beta" } token = System.getenv().MODRINTH_TOKEN projectId = "2tvyop0z" versionName = projectVersionName changelog = CHANGELOG ?: "No changelog provided" uploadFile = remapJar dependencies = [ new ModDependency("fabric-language-kotlin", "required") //Cube controller ] }