更新插件管理类...

Signed-off-by: 502647092 <jtb1@163.com>
This commit is contained in:
502647092 2015-11-30 16:23:16 +08:00
parent ab11be65b5
commit 67894d8449

View File

@ -8,10 +8,12 @@ import java.net.URL;
import java.net.URLClassLoader; import java.net.URLClassLoader;
import java.net.URLDecoder; import java.net.URLDecoder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Set;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
@ -38,12 +40,24 @@ import cn.citycraft.PluginHelper.utils.StringUtil;
* @author 蒋天蓓 2015年8月21日下午7:03:26 * @author 蒋天蓓 2015年8月21日下午7:03:26
*/ */
public class PluginsManager { public class PluginsManager {
Plugin main; private final Set<String> ignoreList = new HashSet<>();
private final Plugin main;
public PluginsManager(final Plugin plugin) { public PluginsManager(final Plugin plugin) {
this.main = plugin; this.main = plugin;
} }
/**
* 添加到忽略列表
*
* @param name
* - 插件名称
* @return 是否成功
*/
public boolean addIgnore(final String name) {
return ignoreList.add(name);
}
/** /**
* 删除插件 * 删除插件
* *
@ -256,7 +270,7 @@ public class PluginsManager {
* @return 是否 * @return 是否
*/ */
public boolean isIgnored(final String plugin) { public boolean isIgnored(final String plugin) {
for (final String name : new ArrayList<String>()) { for (final String name : ignoreList) {
if (name.equalsIgnoreCase(plugin)) { if (name.equalsIgnoreCase(plugin)) {
return true; return true;
} }
@ -289,13 +303,13 @@ public class PluginsManager {
} catch (final InvalidPluginException e) { } catch (final InvalidPluginException e) {
sender.sendMessage("§4异常: §c" + e.getMessage()); sender.sendMessage("§4异常: §c" + e.getMessage());
sender.sendMessage("§4文件: §c" + name + " 不是一个可载入的插件!"); sender.sendMessage("§4文件: §c" + name + " 不是一个可载入的插件!");
sender.sendMessage("§4注意: §cMOD服重载插件3次以上需重启服务器");
return false; return false;
} catch (final UnknownDependencyException e) { } catch (final UnknownDependencyException e) {
sender.sendMessage("§4异常: §c服务器未安装必须依赖: " + e.getMessage()); sender.sendMessage("§4异常: §c服务器未安装必须依赖: " + e.getMessage());
sender.sendMessage("§4插件: §c" + name + " 载入失败 缺少部分依赖项目!"); sender.sendMessage("§4插件: §c" + name + " 载入失败 缺少部分依赖项目!");
return false; return false;
} }
target.onLoad(); target.onLoad();
Bukkit.getPluginManager().enablePlugin(target); Bukkit.getPluginManager().enablePlugin(target);
sender.sendMessage("§6载入: §a插件 §b" + target.getName() + " §a版本 §d" + target.getDescription().getVersion() + " §a已成功载入到服务器!"); sender.sendMessage("§6载入: §a插件 §b" + target.getName() + " §a版本 §d" + target.getDescription().getVersion() + " §a已成功载入到服务器!");
@ -437,6 +451,17 @@ public class PluginsManager {
} }
} }
/**
* 从忽略列表移除
*
* @param name
* - 插件名称
* @return 是否成功
*/
public boolean removeIgnore(final String name) {
return ignoreList.remove(name);
}
/** /**
* 卸载插件 * 卸载插件
* *