Skip to content

Commit e8981e5

Browse files
committed
chore: Exclude panama jar from curseforge build, download it at runtime instead
From curseforge staff: > We reviewed your file and found that it includes a nested helper JAR (falsetweaks-panama-1.0.0.jar) containing classes compiled with a newer Java version that our system doesn’t yet support. As a result, the file cannot be properly scanned, and we’re unable to manually approve it. Please adjust the structure or recompile those components for an older Java version, then resubmit.
1 parent 8ac6e43 commit e8981e5

2 files changed

Lines changed: 81 additions & 5 deletions

File tree

build.gradle.kts

Lines changed: 77 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
1+
import com.falsepattern.jtweaker.readZipInputStreamFor
12
import com.falsepattern.zanama.tasks.ZanamaTranslate
23
import com.falsepattern.zigbuild.tasks.ZigBuildTask
34
import com.falsepattern.zigbuild.toolchain.ZigVersion
5+
import com.gtnewhorizons.retrofuturagradle.mcp.ReobfuscatedJar
6+
import net.darkhax.curseforgegradle.TaskPublishCurseForge
7+
import java.nio.file.StandardOpenOption
8+
import kotlin.io.path.outputStream
49

510
plugins {
6-
id("com.falsepattern.fpgradle-mc") version "2.1.1"
11+
id("com.falsepattern.fpgradle-mc") version "2.2.1"
712
id("com.falsepattern.zanama") version "0.2.0"
813
id("com.falsepattern.zigbuild")
914
}
@@ -118,7 +123,6 @@ val panamaNatives = jarInJar_fp("panama") {
118123
this.javaCompatibility = modern
119124
this.javaVersion = JavaVersion.VERSION_25
120125
this.artifactName = "falsetweaks-panama"
121-
this.artifactVersion = "1.0.0"
122126
}
123127
tasks.named<JavaCompile>(panamaNatives.compileJavaTaskName) {
124128
dependsOn(zigTranslateCpuID, zigTranslateFalseTweaks)
@@ -143,8 +147,79 @@ tasks.processResources.configure {
143147
into(minecraft_fp.mod.rootPkg.map { "/assets/falsetweaks" } ) {
144148
from(packNatives.map { it.outputs.files })
145149
}
150+
val ver = minecraft_fp.mod.version
151+
filesMatching("META-INF/deps_modern.json") {
152+
expand("modVersion" to ver.get())
153+
}
154+
}
155+
156+
//region curseforge jank
157+
158+
publishing {
159+
publications {
160+
val mvn = minecraft_fp.publish.maven
161+
val jar = tasks.named<Jar>(panamaNatives.jarTaskName)
162+
val reobfJar = tasks.named<ReobfuscatedJar>("reobf${panamaNatives.jarTaskName}")
163+
create<MavenPublication>("mavenPanama") {
164+
setArtifacts(emptyList<Any>())
165+
artifact(jar)
166+
artifact(reobfJar)
167+
groupId = mvn.group.get()
168+
artifactId = jar.flatMap { it.archiveBaseName }.get()
169+
version = mvn.version.get()
170+
}
171+
}
172+
}
173+
174+
val reobfJarTask = tasks.reobfJar
175+
176+
abstract class CurseStripJar @Inject constructor(project: Project): Jar() {
177+
@get:Inject
178+
abstract val archive: ArchiveOperations
179+
180+
@get:InputFile
181+
abstract val inputFile: RegularFileProperty
182+
183+
@TaskAction
184+
fun run() {
185+
inputFile.asFile.get().toPath().readZipInputStreamFor("META-INF/MANIFEST.MF", false) { inp ->
186+
// write to temp file
187+
val inpTmp = temporaryDir.resolve("input-manifest.MF").toPath()
188+
inpTmp.outputStream(StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING).use { out ->
189+
inp.copyTo(out)
190+
}
191+
this.manifest {
192+
this@manifest.from(inpTmp)
193+
}
194+
}
195+
196+
from(archive.zipTree(inputFile)) {
197+
exclude("META-INF/falsepatternlib_repo/com/falsepattern/falsetweaks-panama/**/*")
198+
}
199+
copy()
200+
}
201+
202+
init {
203+
this.destinationDirectory.set(project.layout.buildDirectory.dir("libs-cf"))
204+
}
146205
}
147206

207+
val cfJar = tasks.register<CurseStripJar>("curseforgeJar") {
208+
inputFile = reobfJarTask.flatMap { it.archiveFile }
209+
dependsOn(reobfJarTask)
210+
archiveFileName = reobfJarTask.flatMap { it.archiveFileName }
211+
}
212+
213+
afterEvaluate {
214+
tasks.named<TaskPublishCurseForge>("curseforge") {
215+
dependsOn(cfJar)
216+
}
217+
}
218+
219+
minecraft_fp.publish.curseforge.toUpload.set(cfJar.map { it.archiveFile })
220+
221+
// endregion
222+
148223
repositories {
149224
cursemavenEX()
150225
modrinthEX()

src/main/resources/META-INF/deps_modern.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
"identifier": "falsepatternlib_dependencies",
33
"minJava": 25,
44
"repositories": [
5-
"https://repo1.maven.org/maven2/"
5+
"https://repo1.maven.org/maven2/",
6+
"https://mvn.falsepattern.com/releases/"
67
],
78
"dependencies": {
89
"always": {
@@ -15,14 +16,14 @@
1516
"obf": {
1617
"common": [],
1718
"client": [
18-
"com.falsepattern:falsetweaks-panama:1.0.0"
19+
"com.falsepattern:falsetweaks-panama:${modVersion}"
1920
],
2021
"server": []
2122
},
2223
"dev": {
2324
"common": [],
2425
"client": [
25-
"com.falsepattern:falsetweaks-panama:1.0.0:dev"
26+
"com.falsepattern:falsetweaks-panama:${modVersion}:dev"
2627
],
2728
"server": []
2829
}

0 commit comments

Comments
 (0)