mirror of
https://github.com/ReVanced/revanced-patcher.git
synced 2024-11-10 01:02:22 +01:00
fix: JarPatchBundle
loading non-class files to class loader
This commit is contained in:
parent
e8a131fb08
commit
849616dc2b
2 changed files with 18 additions and 5 deletions
1
.github/workflows/release.yml
vendored
1
.github/workflows/release.yml
vendored
|
@ -1,5 +1,6 @@
|
||||||
name: Release
|
name: Release
|
||||||
on:
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
|
|
|
@ -10,9 +10,21 @@ import java.util.jar.JarFile
|
||||||
* @param patchBundlePath The path to the patch bundle.
|
* @param patchBundlePath The path to the patch bundle.
|
||||||
*/
|
*/
|
||||||
class JarPatchBundle(patchBundlePath: String) : PatchBundle(patchBundlePath) {
|
class JarPatchBundle(patchBundlePath: String) : PatchBundle(patchBundlePath) {
|
||||||
fun loadPatches() = loadPatches(URLClassLoader(arrayOf(this.toURI().toURL()), null), StringIterator(
|
fun loadPatches() = loadPatches(
|
||||||
JarFile(this).entries().iterator()
|
URLClassLoader(
|
||||||
) {
|
arrayOf(this.toURI().toURL()),
|
||||||
it.realName.replace('/', '.').replace(".class", "")
|
Thread.currentThread().contextClassLoader // TODO: find out why this is required
|
||||||
})
|
),
|
||||||
|
StringIterator(
|
||||||
|
JarFile(this)
|
||||||
|
.entries()
|
||||||
|
.toList() // TODO: find a cleaner solution than that to filter non class files
|
||||||
|
.filter {
|
||||||
|
it.name.endsWith(".class") && !it.name.contains("$")
|
||||||
|
}
|
||||||
|
.iterator()
|
||||||
|
) {
|
||||||
|
it.realName.replace('/', '.').replace(".class", "")
|
||||||
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue