plugins { id "java" id "base.base-conventions" id "base.application-conventions" id "base.fill-build-constants" id "viaproxy.publishing-conventions" id "net.raphimc.class-token-replacer" version "1.1.7" id "xyz.wagyourtail.jvmdowngrader" version "1.3.6" } configurations { includeInJarJ8 } repositories { maven { name = "ViaVersion" url = "https://repo.viaversion.com" content { includeGroupByRegex "com\\.viaversion(\\..+)?" includeGroupByRegex "net\\.raphimc(\\..+)?" } } maven { name = "Lenni0451" url = "https://maven.lenni0451.net/everything" content { includeGroupByRegex "net\\.lenni0451(\\..+)?" includeGroupByRegex "net\\.raphimc(\\..+)?" } } maven { name = "Minecraft Libraries" url = "https://libraries.minecraft.net" content { includeGroup "com.mojang" } } maven { name = "Jitpack" url = "https://jitpack.io" content { includeGroupByRegex "com\\.github\\..+" } } } dependencies { includeInJar "com.viaversion:viaversion-common:5.7.2-SNAPSHOT" includeInJar "com.viaversion:viabackwards-common:5.7.1" includeInJar "com.viaversion:viarewind-common:4.0.14" includeInJar "net.raphimc:ViaLegacy:3.0.13" includeInJar "com.viaversion:viaaprilfools-common:4.0.8" includeInJar "net.raphimc:ViaBedrock:0.0.25-SNAPSHOT" includeInJar "com.google.guava:guava:33.5.0-jre" includeInJar "com.google.code.gson:gson:2.13.2" includeInJar "com.formdev:flatlaf:3.7" includeInJar "com.formdev:flatlaf-extras:3.7" includeInJar "org.apache.commons:commons-lang3:3.20.0" includeInJar "commons-io:commons-io:2.21.0" includeInJar "net.sf.jopt-simple:jopt-simple:5.0.4" includeInJar "org.apache.logging.log4j:log4j-core:2.25.3" includeInJar "org.apache.logging.log4j:log4j-slf4j2-impl:2.25.3" includeInJar "org.jline:jansi:3.30.6" includeInJar("com.mojang:authlib:6.0.58") { exclude group: "org.slf4j", module: "slf4j-api" } includeInJar "net.lenni0451.classtransform:mixinstranslator:1.14.1" includeInJar "net.lenni0451.classtransform:mixinsdummy:1.14.1" includeInJar "net.lenni0451.classtransform:additionalclassprovider:1.14.1" includeInJar "net.lenni0451:Reflect:1.6.2" includeInJar "net.lenni0451:LambdaEvents:2.4.2" includeInJar("net.lenni0451:MCPing:1.4.4") { exclude group: "com.google.code.gson", module: "gson" } includeInJar "net.lenni0451.commons:swing:1.9.2" includeInJar "net.lenni0451.commons:brigadier:1.9.2" includeInJar "net.lenni0451.commons:unchecked:1.9.2" includeInJar("net.raphimc.netminecraft:all:3.1.5-SNAPSHOT") { exclude group: "com.google.code.gson", module: "gson" } includeInJar("io.netty:netty-codec-haproxy:4.2.10.Final") { transitive = false } includeInJar("io.netty:netty-handler-proxy:4.2.10.Final") { transitive = false } includeInJar("io.netty:netty-codec-socks:4.2.10.Final") { transitive = false } includeInJar("net.raphimc:MinecraftAuth:5.0.0") { exclude group: "com.google.code.gson", module: "gson" } includeInJar("dev.kastle.netty:netty-transport-raknet:1.6.1") { exclude group: "io.netty" } includeInJar("dev.kastle.netty:netty-transport-nethernet:1.6.1") { exclude group: "io.netty" } ["windows-x86_64", "windows-aarch64", "linux-x86_64", "linux-aarch64", "macos-aarch64"].each { includeInJar "dev.kastle.webrtc:webrtc-java:1.0.3:$it" } includeInJar "gs.mclo:api:6.2.0" includeInJar "net.lenni0451:optconfig:1.1.1" includeInJarJ8(compileOnly("xyz.wagyourtail.jvmdowngrader:jvmdowngrader:1.3.6")) includeInJarJ8 "xyz.wagyourtail.jvmdowngrader:jvmdowngrader-java-api:1.3.6:downgraded-8" } application { mainClass = "net.raphimc.viaproxy.ViaProxy" } jar { manifest { attributes( "Launcher-Agent-Class": application.mainClass ) } } downgradeJar { dependsOn(configurations.includeInJarJ8) from { duplicatesStrategy = DuplicatesStrategy.EXCLUDE configurations.includeInJarJ8.collect { zipTree(it) } } { exclude "META-INF/*.RSA", "META-INF/*.SF", "META-INF/*.DSA" } downgradeTo = JavaVersion.VERSION_1_8 ignoreWarningsIn.add("net/lenni0451/commons/httpclient/executor/HttpClientExecutor") archiveClassifier = null archiveVersion = project.version + "+java8" } build.finalizedBy("downgradeJar") tasks.javadoc.enabled = false