From 0bf5cd6a8b91bc2ac9cac8b7808ddd0db93c695c Mon Sep 17 00:00:00 2001 From: 502647092 Date: Fri, 27 Nov 2015 16:43:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=83=A8=E5=88=86API...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 502647092 --- .../java/cn/citycraft/Yum/api/YumAPI.java | 41 +++++++--- .../citycraft/Yum/manager/PluginsManager.java | 74 ++++++++++++------- 2 files changed, 78 insertions(+), 37 deletions(-) diff --git a/src/main/java/cn/citycraft/Yum/api/YumAPI.java b/src/main/java/cn/citycraft/Yum/api/YumAPI.java index 68db8d7..b13b389 100644 --- a/src/main/java/cn/citycraft/Yum/api/YumAPI.java +++ b/src/main/java/cn/citycraft/Yum/api/YumAPI.java @@ -24,12 +24,18 @@ import cn.citycraft.Yum.manager.RepositoryManager; public class YumAPI { private static DownloadManager download; + private static Plugin main; + private static PluginsManager plugman; private static RepositoryManager repo; - protected static Plugin main; - + /** + * 初始化Yum管理中心 + * + * @param plugin + * - 插件实体 + */ public YumAPI(final Plugin plugin) { YumAPI.main = plugin; plugman = new PluginsManager(main); @@ -86,8 +92,9 @@ public class YumAPI { * @return 是否安装成功 */ public static boolean install(final CommandSender sender, final String pluginname, final String url) { - if (download.run(sender, url, new File(Bukkit.getUpdateFolderFile().getParentFile(), pluginname + ".jar"))) { - return plugman.load(sender, pluginname); + final File pluginFile = new File(Bukkit.getUpdateFolderFile().getParentFile(), pluginname + ".jar"); + if (download.run(sender, url, pluginFile)) { + return plugman.load(sender, pluginFile); } return false; } @@ -143,18 +150,18 @@ public class YumAPI { * @param pluginname * - 插件名称 */ - public static void load(final String pluginname) { - plugman.load(pluginname); + public static void load(final File pluginFile) { + plugman.load(pluginFile); } /** - * 卸载插件 + * 载入插件 * - * @param plugin - * - 插件实体 + * @param pluginname + * - 插件名称 */ - public static void reload(final Plugin plugin) { - plugman.unload(plugin); + public static void load(final String pluginname) { + plugman.load(pluginname); } /** @@ -163,10 +170,20 @@ public class YumAPI { * @param plugin * - 插件实体 */ - public static void unload(final Plugin plugin) { + public static void reload(final Plugin plugin) { plugman.reload(plugin); } + /** + * 卸载插件 + * + * @param plugin + * - 插件实体 + */ + public static void unload(final Plugin plugin) { + plugman.unload(plugin); + } + /** * 更新插件 * diff --git a/src/main/java/cn/citycraft/Yum/manager/PluginsManager.java b/src/main/java/cn/citycraft/Yum/manager/PluginsManager.java index bbe6cf8..275512e 100644 --- a/src/main/java/cn/citycraft/Yum/manager/PluginsManager.java +++ b/src/main/java/cn/citycraft/Yum/manager/PluginsManager.java @@ -258,6 +258,44 @@ public class PluginsManager { return false; } + /** + * 载入插件 + * + * @param sender + * - 命令发送者 + * @param pluginFile + * - 插件文件 + * @return 是否成功 + */ + public boolean load(final CommandSender sender, final File pluginFile) { + Plugin target = null; + final String name = pluginFile.getName(); + try { + target = Bukkit.getPluginManager().loadPlugin(pluginFile); + } catch (final InvalidDescriptionException e) { + sender.sendMessage("§4异常: §c" + e.getMessage()); + sender.sendMessage("§c插件: " + name + " 的 plugin.yml 文件存在错误!"); + return false; + } catch (final UnsupportedClassVersionError e) { + sender.sendMessage("§4异常: §c" + e.getMessage()); + sender.sendMessage("§c服务器或JAVA的版本低于插件: " + name + " 所需要的版本!!"); + return false; + } catch (final InvalidPluginException e) { + sender.sendMessage("§4异常: §c" + e.getMessage()); + sender.sendMessage("§c文件: " + name + " 不是一个可载入的插件!"); + return false; + } catch (final UnknownDependencyException e) { + sender.sendMessage("§4异常: §c服务器未安装必须依赖: " + e.getMessage()); + sender.sendMessage("§c插件: " + name + " 载入失败 缺少部分依赖项目!"); + return false; + } + + target.onLoad(); + Bukkit.getPluginManager().enablePlugin(target); + sender.sendMessage("§6载入: §a插件 " + name + " 已成功载入到服务器!"); + return true; + } + /** * 载入插件 * @@ -268,7 +306,6 @@ public class PluginsManager { * @return 是否成功 */ public boolean load(CommandSender sender, final String name) { - Plugin target = null; String filename = null; if (sender == null) { sender = Bukkit.getConsoleSender(); @@ -304,31 +341,18 @@ public class PluginsManager { return false; } } + return load(sender, pluginFile); + } - try { - target = Bukkit.getPluginManager().loadPlugin(pluginFile); - } catch (final InvalidDescriptionException e) { - sender.sendMessage("§4异常: §c" + e.getMessage()); - sender.sendMessage("§c插件: " + name + " 的 plugin.yml 文件存在错误!"); - return false; - } catch (final UnsupportedClassVersionError e) { - sender.sendMessage("§4异常: §c" + e.getMessage()); - sender.sendMessage("§c服务器或JAVA的版本低于插件: " + name + " 所需要的版本!!"); - return false; - } catch (final InvalidPluginException e) { - sender.sendMessage("§4异常: §c" + e.getMessage()); - sender.sendMessage("§c文件: " + name + " 不是一个可载入的插件!"); - return false; - } catch (final UnknownDependencyException e) { - sender.sendMessage("§4异常: §c服务器未安装必须依赖: " + e.getMessage()); - sender.sendMessage("§c插件: " + name + " 载入失败 缺少部分依赖项目!"); - return false; - } - - target.onLoad(); - Bukkit.getPluginManager().enablePlugin(target); - sender.sendMessage("§6载入: §a插件 " + name + " 已成功载入到服务器!"); - return true; + /** + * 载入插件 + * + * @param pluginFile + * - 插件名称 + * @return 是否成功 + */ + public boolean load(final File pluginFile) { + return load(Bukkit.getConsoleSender(), pluginFile); } /**