plugins { id "vfp.base-conventions" } base { archivesName = "ViaFabricPlus" } loom { accessWidenerPath = file("src/main/resources/viafabricplus.accesswidener") } configurations { jij // jar in jar configuration modJij // jar in jar configuration for mods include.extendsFrom modJij modImplementation.extendsFrom modJij modCompileOnlyApi.extendsFrom modJij } dependencies { modJij fabricApi.module("fabric-api-base", project.fabric_api_version) modJij fabricApi.module("fabric-resource-loader-v0", project.fabric_api_version) modJij fabricApi.module("fabric-networking-api-v1", project.fabric_api_version) modJij fabricApi.module("fabric-command-api-v2", project.fabric_api_version) modJij fabricApi.module("fabric-lifecycle-events-v1", project.fabric_api_version) modJij fabricApi.module("fabric-particles-v1", project.fabric_api_version) modJij fabricApi.module("fabric-registry-sync-v0", project.fabric_api_version) // Manually include to ignore dependencies include implementation(project(path: ":viafabricplus-api", configuration: "namedElements")) include implementation(project(path: ":viafabricplus-visuals", configuration: "namedElements")) // Will be removed in future versions include implementation(project(":viafabricplus-api-legacy")) jij "com.viaversion:viaversion-common:${project.viaversion_version}" jij "com.viaversion:viabackwards-common:${project.viabackwards_version}" jij "net.raphimc:viaaprilfools-common:${project.viaaprilfools_version}" jij "net.raphimc:ViaLegacy:${project.vialegacy_version}" jij ("net.raphimc:ViaBedrock:${project.viabedrock_version}") { exclude group: "io.jsonwebtoken" exclude group: "com.mojang", module: "brigadier" } jij ("net.raphimc:ViaLoader:${project.vialoader_version}") { exclude group: "com.google.guava", module: "guava" exclude group: "org.slf4j", module: "slf4j-api" } jij ("net.raphimc:MinecraftAuth:4.1.1") { exclude group: "com.google.code.gson", module: "gson" exclude group: "org.slf4j", module: "slf4j-api" } jij "net.lenni0451:Reflect:1.4.0" jij("net.lenni0451:MCPing:1.4.2") { exclude group: "com.google.code.gson", module: "gson" } jij("org.cloudburstmc.netty:netty-transport-raknet:1.0.0.CR3-SNAPSHOT") { exclude group: "io.netty" } jij "de.florianmichael:Classic4J:2.1.1-SNAPSHOT" modCompileOnly "com.terraformersmc:modmenu:12.0.0" // Fabric's jar in jar system doesn't support transitive dependencies, so we have to manually add them afterEvaluate { configurations.jij.incoming.resolutionResult.allDependencies.each { dependencies.include(dependencies.implementation(dependencies.compileOnlyApi(it.requested.toString()) { transitive = false })) } } } processResources { filesMatching("fabric.mod.json") { expand( "version": project.version, "description": project.description, "implVersion": "git-${project.name}-${project.version}:${latestCommitHash().get()}", "mcVersion": mcVersion() ) } } String mcVersion() { if (project.supported_versions.isEmpty()) { return project.minecraft_version } else { return project.supported_versions } } Provider latestCommitHash() { return providers.exec { commandLine = ["git", "rev-parse", "--short", "HEAD"] }.standardOutput.getAsText().map(String::trim) } jar { // Rename the project's license file to LICENSE_ to avoid conflicts from("LICENSE") { rename { "${it}_${project.archivesBaseName}" } } } idea { module { ["run"].each { excludeDirs << file("$it") } } }