diff --git a/build.gradle.kts b/build.gradle.kts index acc5960..78f6682 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -22,12 +22,9 @@ repositories { } } -val patchesDependency = "app.revanced:revanced-patches:1.+" - dependencies { implementation(kotlin("stdlib")) implementation("app.revanced:revanced-patcher:+") - implementation(patchesDependency) implementation("info.picocli:picocli:+") implementation("me.tongfei:progressbar:+") @@ -45,9 +42,6 @@ tasks { dependsOn(shadowJar) } shadowJar { - dependencies { - exclude(dependency(patchesDependency)) - } manifest { attributes("Main-Class" to "app.revanced.cli.MainKt") attributes("Implementation-Title" to project.name) diff --git a/src/main/kotlin/app/revanced/patch/PatchLoader.kt b/src/main/kotlin/app/revanced/patch/PatchLoader.kt deleted file mode 100644 index 088076f..0000000 --- a/src/main/kotlin/app/revanced/patch/PatchLoader.kt +++ /dev/null @@ -1,10 +0,0 @@ -package app.revanced.patch - -import java.io.File -import java.net.URLClassLoader - -internal class PatchLoader { - internal companion object { - - } -} \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patch/Patches.kt b/src/main/kotlin/app/revanced/patch/Patches.kt index b302c90..4b24a81 100644 --- a/src/main/kotlin/app/revanced/patch/Patches.kt +++ b/src/main/kotlin/app/revanced/patch/Patches.kt @@ -2,25 +2,25 @@ package app.revanced.patch import app.revanced.patcher.data.base.Data import app.revanced.patcher.patch.base.Patch -import app.revanced.patches.Index import java.io.File import java.net.URLClassLoader internal object Patches { - /** * This method loads patches from a given patch file * @return the loaded patches represented as a list of functions returning instances of [Patch] */ - internal fun load(patchFile: File): List<() -> Patch> { - val url = patchFile.toURI().toURL() + internal fun load(patchesJar: File): List<() -> Patch> { + val url = patchesJar.toURI().toURL() val classLoader = URLClassLoader(arrayOf(url)) - return loadIndex(classLoader).patches + + val indexClass = classLoader.loadClass("app.revanced.patches.Index") + + val index = indexClass.declaredFields.last() + index.isAccessible = true + + @Suppress("UNCHECKED_CAST") + return index.get(null) as List<() -> Patch> } - private fun loadIndex(classLoader: ClassLoader) = classLoader - .loadClass(Index::class.java.canonicalName) - .fields - .first() - .get(null) as Index }