fix: check dependencies for resource patches

This commit is contained in:
oSumAtrIX 2022-09-29 21:27:12 +02:00
parent 438321330e
commit 9c07ffcc7a
No known key found for this signature in database
GPG Key ID: A9B3094ACDB604B4

View File

@ -207,7 +207,7 @@ class Patcher(private val options: PatcherOptions) {
*/ */
fun Class<out Patch<Data>>.isResource() { fun Class<out Patch<Data>>.isResource() {
this.also { this.also {
if (!ResourcePatch::class.java.isAssignableFrom(it)) return if (!ResourcePatch::class.java.isAssignableFrom(it)) return@also
// set the mode to decode all resources before running the patches // set the mode to decode all resources before running the patches
resourceDecodingMode = ResourceDecodingMode.FULL resourceDecodingMode = ResourceDecodingMode.FULL
}.dependencies?.forEach { it.java.isResource() } }.dependencies?.forEach { it.java.isResource() }
@ -249,14 +249,15 @@ class Patcher(private val options: PatcherOptions) {
} }
// recursively apply all dependency patches // recursively apply all dependency patches
patch.dependencies?.forEach { dependency -> patch.dependencies?.forEach { dependencyClass ->
val result = applyPatch(dependency.java, appliedPatches) val dependency = dependencyClass.java
val result = applyPatch(dependency, appliedPatches)
if (result.isSuccess()) return@forEach if (result.isSuccess()) return@forEach
val error = result.error()!! val error = result.error()!!
val errorMessage = error.cause ?: error.message val errorMessage = error.cause ?: error.message
return PatchResultError("'$patchName' depends on '${patch.patchName}' but the following error was raised: $errorMessage") return PatchResultError("'$patchName' depends on '${dependency.patchName}' but the following error was raised: $errorMessage")
} }
patch.deprecated?.let { (reason, replacement) -> patch.deprecated?.let { (reason, replacement) ->