plugins { id 'fabric-loom' version '1.6-SNAPSHOT' id 'maven-publish' id "me.modmuss50.mod-publish-plugin" version "0.5.1" } version = "${project.mod_version}+${project.minecraft_version}" group = project.maven_group repositories { // Add repositories to retrieve artifacts from in here. // You should only use this when depending on other mods because // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. // See https://docs.gradle.org/current/userguide/declaring_repositories.html // for more information about repositories. flatDir { dirs 'libs' } maven { url "https://maven.terraformersmc.com/releases" } maven { url "https://maven.shedaniel.me/" } maven { url "https://maven.isxander.dev/releases" } maven { url "https://maven.isxander.dev/snapshots" } //For minecraft snapshots maven { url 'https://repo.maven.apache.org/maven2' name 'Maven Central' } maven { name = "meteor-maven" url = "https://maven.meteordev.org/releases" } maven { url "https://repo.codemc.io/repository/maven-public/" } // For Occlusion Culling library maven { url "https://repo.nea.moe/releases" } // For neu repoparser } dependencies { testImplementation "net.fabricmc:fabric-loader-junit:${project.loader_version}" // To change the versions see the gradle.properties file minecraft "com.mojang:minecraft:${project.minecraft_version}" //Layered Yarn & Mojmap - used to fill in intermediary names mappings loom.layered { //Using Mojmap breaks runClient, so uncomment only for snapshots when temp mappings are needed //officialMojangMappings() mappings("net.fabricmc:yarn:${project.yarn_mappings}:v2") } modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" // Fabric API modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}" // YACL include modImplementation("dev.isxander:yet-another-config-lib:${project.yacl_version}-fabric") // Mod Menu modImplementation "com.terraformersmc:modmenu:${project.mod_menu_version}" // REI modCompileOnly "me.shedaniel:RoughlyEnoughItems-api-fabric:${project.rei_version}" //modRuntimeOnly "me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}" // EMI modCompileOnly "dev.emi:emi-fabric:${project.emi_version}:api" //modLocalRuntime "dev.emi:emi-fabric:${project.emi_version}" include modImplementation("meteordevelopment:discord-ipc:1.1") // Occlusion Culling (https://github.com/LogisticsCraft/OcclusionCulling) include implementation("com.logisticscraft:occlusionculling:${project.occlusionculling_version}") // NEU RepoParser include implementation("moe.nea:neurepoparser:${project.repoparser_version}") // JGit used pull data from the NEU item repo include implementation("org.eclipse.jgit:org.eclipse.jgit:${project.jgit_version}") // Apache Commons Math include implementation("org.apache.commons:commons-math3:${project.commons_math_version}") } loom { accessWidenerPath = file("src/main/resources/skyblocker.accesswidener") mixin { useLegacyMixinAp = false } } base { archivesName = project.archives_base_name } processResources { inputs.property "version", project.version filesMatching("fabric.mod.json") { expand "version": project.version } } tasks.withType(JavaCompile).configureEach { it.options.release = 21 } java { sourceCompatibility = JavaVersion.VERSION_21 targetCompatibility = JavaVersion.VERSION_21 } jar { from("LICENSE") { rename { "${it}_${base.archivesName.get()}"} } } test { useJUnitPlatform() } publishMods { file = remapJar.archiveFile changelog = System.getenv('CHANGELOG') version = "v${project.version}" displayName = "Skyblocker ${mod_version} for ${minecraft_version}" modLoaders.add("fabric") type = STABLE modrinth { accessToken = System.getenv("MODRINTH_TOKEN") projectId = modrinth_id minecraftVersions.add(minecraft_version) announcementTitle = "<:modrinth:1237114573354438696> Download from Modrinth" requires("fabric-api") optional("modmenu", "rei", "emi") } curseforge { accessToken = System.getenv("CURSEFORGE_TOKEN") projectId = curseforge_id minecraftVersions.add(minecraft_version) announcementTitle = "<:curseforge:900697838453936149> Download from CurseForge" projectSlug = "skyblocker" requires("fabric-api") optional("roughly-enough-items", "emi") } discord { webhookUrl = System.getenv("DISCORD_WEBHOOK") username = "Changelog" content = changelog.map { "<@&1134565945482948638>\n## Skyblocker v${mod_version}\n" + it} } } // configure the maven publication publishing { publications { mavenJava(MavenPublication) { from components.java } } // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. repositories { // Add repositories to publish to here. // Notice: This block does NOT have the same function as the block in the top level. // The repositories here will be used for publishing your artifact, not for // retrieving dependencies. } }