From aa26462abc093bf6886740b1cdde88320b1e5a7b Mon Sep 17 00:00:00 2001 From: Yummy-Cookie-S Date: Tue, 21 Jun 2022 09:14:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=93=E5=B1=95=E8=84=9A=E6=9C=AC=E6=9C=BA?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jythonengine/script/ScriptCommands.kt | 2 +- .../jythonengine/script/ScriptManager.kt | 25 +++++++++---------- .../script/trigger/SchedulerTrigger.kt | 3 +++ .../script/trigger/StatusTrigger.kt | 1 - 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/main/kotlin/tech/cookiepower/jythonengine/script/ScriptCommands.kt b/src/main/kotlin/tech/cookiepower/jythonengine/script/ScriptCommands.kt index aeb546f..89ffb4b 100644 --- a/src/main/kotlin/tech/cookiepower/jythonengine/script/ScriptCommands.kt +++ b/src/main/kotlin/tech/cookiepower/jythonengine/script/ScriptCommands.kt @@ -27,7 +27,7 @@ object ScriptCommands { val reload = subCommand { execute { sender, _, _ -> sender.sendLang("script-reloading") - ScriptManager.reloadAllScripts() + ScriptManager.reloadAll() sender.sendLang("script-reloaded") } } diff --git a/src/main/kotlin/tech/cookiepower/jythonengine/script/ScriptManager.kt b/src/main/kotlin/tech/cookiepower/jythonengine/script/ScriptManager.kt index 50750f2..90db5d6 100644 --- a/src/main/kotlin/tech/cookiepower/jythonengine/script/ScriptManager.kt +++ b/src/main/kotlin/tech/cookiepower/jythonengine/script/ScriptManager.kt @@ -2,7 +2,6 @@ package tech.cookiepower.jythonengine.script import taboolib.common.LifeCycle import taboolib.common.platform.Awake -import taboolib.common.platform.function.info import tech.cookiepower.jythonengine.event.ScriptLoadEvent import tech.cookiepower.jythonengine.event.ScriptUnloadEvent import java.io.File @@ -32,26 +31,26 @@ object ScriptManager { scripts.remove(script) } - private fun unRemoveUnload(script: Script){ - ScriptUnloadEvent(script).call() - namespacedKeys.remove(script.namespacedKey) - } - - fun loadScripts(){ - rootDir.walk().filter { + fun loadByDir(dir: File = rootDir){ + dir.walk().filter { it.isFile && it.extension == "jy" }.forEach { load(Script(it)) } } - fun unloadScripts(){ - scripts + fun unloadAll(){ + scripts.forEach { + namespacedKeys.remove(it.namespacedKey) + ScriptUnloadEvent(it).call() + unload(it) + } + scripts.clear() } @Awake(LifeCycle.ENABLE) - fun reloadAllScripts(){ - unloadScripts() - loadScripts() + fun reloadAll(){ + unloadAll() + loadByDir() } } \ No newline at end of file diff --git a/src/main/kotlin/tech/cookiepower/jythonengine/script/trigger/SchedulerTrigger.kt b/src/main/kotlin/tech/cookiepower/jythonengine/script/trigger/SchedulerTrigger.kt index 27abfae..27c94b1 100644 --- a/src/main/kotlin/tech/cookiepower/jythonengine/script/trigger/SchedulerTrigger.kt +++ b/src/main/kotlin/tech/cookiepower/jythonengine/script/trigger/SchedulerTrigger.kt @@ -24,6 +24,9 @@ object SchedulerTrigger : Trigger>(){ @SubscribeEvent(ignoreCancelled = true) fun onScriptUnload(event: ScriptUnloadEvent){ + info("####################################################################################") + info("event subscriber: ScriptUnloadEvent") + info("####################################################################################") if(event.script.isSchedulerScript){ onUnsubscribe(event.script) } diff --git a/src/main/kotlin/tech/cookiepower/jythonengine/script/trigger/StatusTrigger.kt b/src/main/kotlin/tech/cookiepower/jythonengine/script/trigger/StatusTrigger.kt index 89a5df6..8ba5b7e 100644 --- a/src/main/kotlin/tech/cookiepower/jythonengine/script/trigger/StatusTrigger.kt +++ b/src/main/kotlin/tech/cookiepower/jythonengine/script/trigger/StatusTrigger.kt @@ -1,6 +1,5 @@ package tech.cookiepower.jythonengine.script.trigger -import taboolib.common.platform.event.EventPriority import taboolib.common.platform.event.SubscribeEvent import tech.cookiepower.jythonengine.event.ScriptExecuteEvent import tech.cookiepower.jythonengine.event.ScriptLoadEvent