From 8f5d39ead03f26487070199749fca6e9f4fe7b24 Mon Sep 17 00:00:00 2001 From: 502647092 Date: Tue, 29 Dec 2015 22:51:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0fdel=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E5=90=8C=E6=97=B6=E5=88=A0=E9=99=A4=E6=8F=92=E4=BB=B6=E5=92=8C?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=96=87=E4=BB=B6...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 502647092 --- pom.xml | 4 +- .../Yum/commands/CommandFullDelete.java | 47 +++++++++++++++++++ .../cn/citycraft/Yum/commands/YumCommand.java | 1 + .../citycraft/Yum/manager/PluginsManager.java | 17 ++++++- 4 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 src/main/java/cn/citycraft/Yum/commands/CommandFullDelete.java diff --git a/pom.xml b/pom.xml index 3095361..64786c9 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 cn.citycraft Yum - 1.9.5 + 1.9.5.1 Yum Minecraft 服务器插件管理系统 @@ -55,7 +55,7 @@ http://ci.citycraft.cn:8080 - &e添加yum info指令查看插件权限和注册命令... + &e添加fdel命令删除插件和数据文件... Debug UTF-8 diff --git a/src/main/java/cn/citycraft/Yum/commands/CommandFullDelete.java b/src/main/java/cn/citycraft/Yum/commands/CommandFullDelete.java new file mode 100644 index 0000000..786e16d --- /dev/null +++ b/src/main/java/cn/citycraft/Yum/commands/CommandFullDelete.java @@ -0,0 +1,47 @@ +/** + * + */ +package cn.citycraft.Yum.commands; + +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandException; +import org.bukkit.command.CommandSender; +import org.bukkit.plugin.Plugin; + +import cn.citycraft.PluginHelper.commands.BaseCommand; +import cn.citycraft.Yum.Yum; +import cn.citycraft.Yum.api.YumAPI; + +/** + * 插件删除命令类 + * + * @author 蒋天蓓 2015年8月12日下午2:04:05 + */ +public class CommandFullDelete extends BaseCommand { + Yum main; + + public CommandFullDelete(final Yum main) { + super("fdel"); + this.main = main; + setMinimumArguments(1); + setDescription("删除插件以及数据文件夹"); + setPossibleArguments("<插件名称>"); + } + + @Override + public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException { + final String pluginname = args[0]; + final Plugin plugin = Bukkit.getServer().getPluginManager().getPlugin(pluginname); + if (plugin != null) { + final String version = plugin.getDescription().getVersion(); + if (YumAPI.getPlugman().fullDeletePlugin(sender, plugin)) { + sender.sendMessage("§c删除: §a插件 §6" + pluginname + " §a版本 §d" + version + " §a已从服务器卸载并删除!"); + } else { + sender.sendMessage("§c删除: §c插件 " + pluginname + " 卸载或删除时发生错误 删除失败!"); + } + } else { + sender.sendMessage("§c插件 " + pluginname + " 不存在或已卸载!"); + } + } +} diff --git a/src/main/java/cn/citycraft/Yum/commands/YumCommand.java b/src/main/java/cn/citycraft/Yum/commands/YumCommand.java index 398eef9..f539655 100644 --- a/src/main/java/cn/citycraft/Yum/commands/YumCommand.java +++ b/src/main/java/cn/citycraft/Yum/commands/YumCommand.java @@ -12,6 +12,7 @@ public class YumCommand { cmdhandler.registerCommand(new CommandUpdate(yum)); cmdhandler.registerCommand(new CommandUpdateAll(yum)); cmdhandler.registerCommand(new CommandDelete(yum)); + cmdhandler.registerCommand(new CommandFullDelete(yum)); cmdhandler.registerCommand(new CommandInfo(yum)); cmdhandler.registerCommand(new CommandRepo(yum)); cmdhandler.registerCommand(new CommandReload(yum)); diff --git a/src/main/java/cn/citycraft/Yum/manager/PluginsManager.java b/src/main/java/cn/citycraft/Yum/manager/PluginsManager.java index 0066671..443c104 100644 --- a/src/main/java/cn/citycraft/Yum/manager/PluginsManager.java +++ b/src/main/java/cn/citycraft/Yum/manager/PluginsManager.java @@ -28,10 +28,10 @@ import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.PluginLoader; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.UnknownDependencyException; -import org.bukkit.util.FileUtil; import com.google.common.base.Joiner; +import cn.citycraft.PluginHelper.utils.FileUtil; import cn.citycraft.PluginHelper.utils.StringUtil; /** @@ -128,6 +128,19 @@ public class PluginsManager { } } + /** + * 删除插件(包括数据) + * + * @param sender + * - 命令发送者 + * @param plugin + * - 插件 + * @return 是否成功 + */ + public boolean fullDeletePlugin(final CommandSender sender, final Plugin plugin) { + return unload(sender, plugin) && getPluginFile(plugin).delete() && FileUtil.deleteDir(sender, plugin.getDataFolder()); + } + /** * 获得格式化的插件名称 * @@ -617,7 +630,7 @@ public class PluginsManager { result = true; if (!unload(sender, name)) { sender.sendMessage("§6升级: §d开始安装 §b" + name + " §d插件!"); - FileUtil.copy(file, new File(Bukkit.getUpdateFolderFile().getParentFile(), File.separatorChar + file.getName())); + FileUtil.copyFile(file, new File(Bukkit.getUpdateFolderFile().getParentFile(), File.separatorChar + file.getName())); } else { sender.sendMessage("§6升级: §a开始升级 §b" + name + " §a插件!"); }