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() {
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
resourceDecodingMode = ResourceDecodingMode.FULL
}.dependencies?.forEach { it.java.isResource() }
@ -249,14 +249,15 @@ class Patcher(private val options: PatcherOptions) {
}
// recursively apply all dependency patches
patch.dependencies?.forEach { dependency ->
val result = applyPatch(dependency.java, appliedPatches)
patch.dependencies?.forEach { dependencyClass ->
val dependency = dependencyClass.java
val result = applyPatch(dependency, appliedPatches)
if (result.isSuccess()) return@forEach
val error = result.error()!!
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) ->