From 3c1ee33ee0cf615114c78a5bf44a433b98912929 Mon Sep 17 00:00:00 2001
From: Him188 <Him188@mamoe.net>
Date: Fri, 22 May 2020 13:20:59 +0800
Subject: [PATCH] Fix Java function resolving

---
 .../kotlin/net/mamoe/mirai/event/JvmMethodListeners.kt      | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/JvmMethodListeners.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/JvmMethodListeners.kt
index 2b5350c3b..895a2cf20 100644
--- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/JvmMethodListeners.kt
+++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/event/JvmMethodListeners.kt
@@ -212,7 +212,7 @@ private fun Method.registerEvent(
     coroutineContext: CoroutineContext
 ): Listener<Event> {
     this.isAccessible = true
-    val kotlinFunction = this.kotlinFunction
+    val kotlinFunction = kotlin.runCatching { this.kotlinFunction }.getOrNull()
     return if (kotlinFunction != null) {
         // kotlin functions
 
@@ -232,7 +232,9 @@ private fun Method.registerEvent(
             else -> error("function ${kotlinFunction.name} must have one Event param")
         }
         lateinit var listener: Listener<*>
-        kotlinFunction.isAccessible = true
+        kotlin.runCatching {
+            kotlinFunction.isAccessible = true
+        }
         suspend fun callFunction(event: Event): Any? {
             try {
                 return when (param.size) {