فهرست منبع

Console Update

jiahua.liu 5 سال پیش
والد
کامیت
d8feefcc57

+ 9 - 3
mirai-console/src/main/kotlin/net/mamoe/mirai/plugin/Command.kt

@@ -22,9 +22,15 @@ object CommandManager {
         if (!registeredCommand.containsKey(commandHead)) {
             return false
         }
-        registeredCommand[commandHead]?.onCommand(
-            blocks.subList(1, blocks.size)
-        )
+        val args = blocks.subList(1, blocks.size)
+        registeredCommand[commandHead]?.run {
+            if (onCommand(
+                    blocks.subList(1, blocks.size)
+                )
+            ) {
+                PluginManager.onCommand(this, args)
+            }
+        }
         return true
     }
 

+ 6 - 1
mirai-console/src/main/kotlin/net/mamoe/mirai/plugin/PluginBase.kt

@@ -48,7 +48,7 @@ abstract class PluginBase(coroutineContext: CoroutineContext) : CoroutineScope {
     /**
      * 当任意指令被使用
      */
-    open fun onCommand(command: Command) {
+    open fun onCommand(command: Command, args: List<String>) {
 
     }
 
@@ -176,6 +176,11 @@ object PluginManager {
     //已完成加载的
     private val nameToPluginBaseMap: MutableMap<String, PluginBase> = mutableMapOf()
 
+    fun onCommand(command: Command, args: List<String>) {
+        this.nameToPluginBaseMap.values.forEach {
+            it.onCommand(command, args)
+        }
+    }
 
     /**
      * 尝试加载全部插件