feat: 插件重载时卸载MiaoScript所有事件和任务

This commit is contained in:
coding 2017-10-17 02:57:05 +00:00
parent 2788a9a8aa
commit e7a362d827

View File

@ -1,16 +1,18 @@
package pw.yumc.MiaoScript;
import java.io.File;
import java.io.FileReader;
import java.io.InputStreamReader;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.event.HandlerList;
import org.bukkit.plugin.java.JavaPlugin;
import lombok.SneakyThrows;
import lombok.val;
import pw.yumc.YumCore.bukkit.Log;
import pw.yumc.YumCore.bukkit.P;
import pw.yumc.YumCore.commands.CommandSub;
@ -53,6 +55,16 @@ public class MiaoScript extends JavaPlugin implements Executor {
@Help("重启脚本引擎")
public void reload(CommandSender sender) {
disableEngine();
val server = Bukkit.getServer();
try {
server.getScheduler().cancelTasks(this);
server.getServicesManager().unregisterAll(this);
HandlerList.unregisterAll(this);
server.getMessenger().unregisterIncomingPluginChannel(this);
server.getMessenger().unregisterOutgoingPluginChannel(this);
} catch (Exception ex) {
Log.d("Error reload", ex);
}
enableEngine();
Log.sender(sender, "§bMiaoScript §eEngine §a重启完成!");
}