plugin supporting

This commit is contained in:
jiahua.liu 2020-01-19 00:02:47 +08:00
parent aa427c20de
commit 9e0251e668
3 changed files with 20 additions and 5 deletions

View File

@ -21,6 +21,10 @@ fun main() {
thread { processNextCommandLine() }
PluginManager.loadPlugins()
Runtime.getRuntime().addShutdownHook(thread {
PluginManager.disableAllPlugins()
})
}
tailrec fun processNextCommandLine() {

View File

@ -1,6 +1,5 @@
package net.mamoe.mirai.plugin
import net.mamoe.mirai.Bot
import net.mamoe.mirai.utils.DefaultLogger
import net.mamoe.mirai.utils.io.encodeToString
import java.io.File
@ -14,22 +13,27 @@ abstract class PluginBase constructor() {
File(PluginManager.pluginsPath + pluginDescription.name).also { it.mkdir() }
}
/**
* 当一个插件被加载时调用
*/
open fun onLoad() {
}
/**
* 当所有插件全部被加载后被调用
*/
open fun onEnable() {
}
/**
* 当插件关闭前被调用
*/
open fun onDisable() {
}
open fun onBotAdd(bot: Bot) {
}
private lateinit var pluginDescription: PluginDescription
@ -235,6 +239,12 @@ object PluginManager {
}
fun disableAllPlugins() {
nameToPluginBaseMap.values.forEach {
it.onDisable()
}
}
}

View File

@ -15,5 +15,6 @@ public class ImagePluginMain extends PluginBase {
@Override
public void onEnable() {
System.out.println("Enabled");
}
}