11import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
2+ import net.minecraftforge.jarjar.gradle.JarJar
3+ import net.minecraftforge.jarjar.gradle.JarJarDependencyMethods
24import ru.astrainteractive.gradleplugin.property.util.requireProjectInfo
35
46plugins {
@@ -10,6 +12,7 @@ plugins {
1012 alias(libs.plugins.gradle.forgerenamer)
1113 alias(libs.plugins.gradle.shadow)
1214 alias(libs.plugins.klibs.minecraft.resource.processor)
15+ alias(libs.plugins.gradle.forge.jarjar)
1316}
1417
1518repositories {
@@ -31,7 +34,6 @@ dependencies {
3134 shadow(libs.klibs.mikro.core)
3235 shadow(libs.klibs.kstorage)
3336 shadow(libs.driver.h2)
34- shadow(libs.driver.jdbc)
3537 shadow(libs.minecraft.kyori.plain)
3638 shadow(libs.minecraft.kyori.legacy)
3739 shadow(libs.minecraft.kyori.gson)
@@ -55,9 +57,21 @@ minecraftProcessResource {
5557 )
5658}
5759
60+ jarJar {
61+ register()
62+ }
63+
5864val shadowJar by tasks.getting(ShadowJar ::class ) {
5965 mergeServiceFiles()
6066 dependsOn(tasks.named<ProcessResources >(" processResources" ))
67+ dependsOn(tasks.withType<JarJar >())
68+ from(
69+ tasks.withType<JarJar >()
70+ .map { task -> task.archiveFile }
71+ .map { archiveFile -> project.zipTree(archiveFile) },
72+ { include(" META-INF/jarjar/**" ) }
73+ )
74+
6175 configurations = listOf (project.configurations.shadow.get())
6276 isReproducibleFileOrder = true
6377 duplicatesStrategy = DuplicatesStrategy .EXCLUDE
@@ -85,10 +99,11 @@ val shadowJar by tasks.getting(ShadowJar::class) {
8599 exclude(" org/jetbrains/annotations/**" )
86100 exclude(" org/slf4j/**" )
87101 exclude(" org/w3c/dom/**" )
102+ exclude(" org/jspecify/annotations/**" )
88103 // Root
89104 if (project.name == " forge" || project.name == " neoforge" ) {
90105 // Use kotlin-neoforge or kotlin-forge
91- // exclude("kotlin/**")
106+ exclude(" kotlin/**" )
92107 }
93108 exclude(" _COROUTINE/**" )
94109 exclude(" DebugProbesKt.bin" )
@@ -124,6 +139,7 @@ val shadowJar by tasks.getting(ShadowJar::class) {
124139 exclude(" org/slf4j/**" )
125140 exclude(" javax/xml/**" )
126141 exclude(" org/xml/**" )
142+ exclude(" org/sqlite/**" )
127143 // META
128144 exclude(" META-INF/**.md" )
129145 exclude(" META-INF/**.MD" )
@@ -209,11 +225,10 @@ val shadowJar by tasks.getting(ShadowJar::class) {
209225 }
210226 add(" org.intellij" )
211227 add(" org.jetbrains.annotations" )
212- // add("org.jetbrains.exposed") // Don't relocate on: [*]
228+ add(" org.jetbrains.exposed" ) // Don't relocate on: [*]
213229 add(" org.jetbrains.kotlinx" )
214230 add(" org.json" )
215231 add(" org.json" )
216- // add("org.sqlite")
217232 add(" org.telegram" )
218233 add(" org.telegram.telegrambots" )
219234 add(" org.w3c.css" )
@@ -231,6 +246,9 @@ minecraft {
231246
232247dependencies {
233248 compileOnly(minecraft.dependency(libs.minecraft.forgeversion.get()))
249+ " jarJar" (libs.driver.jdbc) {
250+ JarJarDependencyMethods .getJarJar(this ).setVersion(libs.versions.driver.jdbc)
251+ }
234252}
235253
236254renamer {
0 commit comments