From aabae65cd3cb64aee9675122313b58bc42304b6b Mon Sep 17 00:00:00 2001 From: shedaniel Date: Fri, 22 Apr 2022 14:07:41 +0800 Subject: [PATCH] Support MappingsProviderImpl with getMixinService Signed-off-by: shedaniel --- .../architectury/plugin/loom/LoomInterface011.kt | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/loom011/kotlin/dev/architectury/plugin/loom/LoomInterface011.kt b/src/loom011/kotlin/dev/architectury/plugin/loom/LoomInterface011.kt index aa3fbd7..6f373ac 100644 --- a/src/loom011/kotlin/dev/architectury/plugin/loom/LoomInterface011.kt +++ b/src/loom011/kotlin/dev/architectury/plugin/loom/LoomInterface011.kt @@ -2,6 +2,7 @@ package dev.architectury.plugin.loom import net.fabricmc.loom.LoomGradleExtension import net.fabricmc.loom.configuration.ide.RunConfig +import net.fabricmc.loom.configuration.providers.mappings.MappingsProviderImpl import net.fabricmc.loom.task.RemapJarTask import net.fabricmc.loom.task.service.MixinMappingsService import net.fabricmc.loom.util.service.SharedServiceManager @@ -21,9 +22,15 @@ class LoomInterface011(private val project: Project) : LoomInterface { get() = extractMixinMappings(getMixinService(SharedServiceManager.get(project))) private fun getMixinService(serviceManager: SharedServiceManager): MixinMappingsService { - return MixinMappingsService::class.java.getDeclaredMethod("getService", SharedServiceManager::class.java).also { - it.isAccessible = true - }.invoke(null, serviceManager) as MixinMappingsService + return try { + MixinMappingsService::class.java.getDeclaredMethod("getService", SharedServiceManager::class.java).also { + it.isAccessible = true + }.invoke(null, serviceManager) as MixinMappingsService + } catch (ignored: NoSuchMethodException) { + MixinMappingsService::class.java.getDeclaredMethod("getService", SharedServiceManager::class.java, MappingsProviderImpl::class.java).also { + it.isAccessible = true + }.invoke(null, serviceManager, extension.mappingsProvider) as MixinMappingsService + } } private fun extractMixinMappings(service: MixinMappingsService): Collection {