mirror of
https://e.coding.net/circlecloud/Yum.git
synced 2024-11-22 14:28:46 +00:00
update(NetworkManager.java): 调整拦截提示...
This commit is contained in:
parent
d46dfdf13d
commit
934c4c4be3
@ -74,14 +74,15 @@ public class NetworkManager {
|
|||||||
final Plugin plugin = this.getRequestingPlugin();
|
final Plugin plugin = this.getRequestingPlugin();
|
||||||
final String urlinfo = uri.toString();
|
final String urlinfo = uri.toString();
|
||||||
if (!urlinfo.startsWith("socket") && !urlinfo.toLowerCase().contains("yumc") && !urlinfo.toLowerCase().contains("pom.xml")) {
|
if (!urlinfo.startsWith("socket") && !urlinfo.toLowerCase().contains("yumc") && !urlinfo.toLowerCase().contains("pom.xml")) {
|
||||||
final String str = debug ? "[NetDebug] 插件 %s 尝试访问 %s 请注意服务器网络安全!" : "[NetManager] 插件 %s 尝试在主线程访问 %s 可能会导致服务器卡顿或无响应!";
|
final String str = debug ? "§6[§bNetDebug§6] §c插件 §6%s §c尝试访问 §e%s §c请注意服务器网络安全!" : "§6[§bNetManager§6] §c插件 §6%s §c尝试在主线程访问 §e%s §4可能会导致服务器卡顿或无响应!";
|
||||||
if (plugin == null) {
|
if (plugin == null) {
|
||||||
main.getLogger().warning(String.format(str, "未知(请查看堆栈)", urlinfo));
|
Bukkit.getConsoleSender().sendMessage(String.format(str, "未知(请查看堆栈)", urlinfo));
|
||||||
Thread.dumpStack();
|
Thread.dumpStack();
|
||||||
} else if (!plugin.getName().equalsIgnoreCase("Yum")) {
|
} else if (!plugin.getName().equalsIgnoreCase("Yum")) {
|
||||||
main.getLogger().warning(String.format(str, plugin.getName(), urlinfo));
|
Bukkit.getConsoleSender().sendMessage(String.format(str, plugin.getName(), urlinfo));
|
||||||
if (!allowPrimaryThread) {
|
if (!allowPrimaryThread) {
|
||||||
throwException(new IOException("[NetManager] 已阻止插件 " + plugin.getName() + " 在主线程访问网络!"));
|
Bukkit.getConsoleSender().sendMessage("§6[§bNetManager§6] §4已阻止插件 §b" + plugin.getName() + " §4在主线程访问网络!");
|
||||||
|
throwException(new IOException("Yum 已开启网络防护 不允许在主线程访问网络!"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,14 +46,14 @@ public class PluginsManager {
|
|||||||
private final Set<String> ignoreList = new HashSet<>();
|
private final Set<String> ignoreList = new HashSet<>();
|
||||||
private final Plugin main;
|
private final Plugin main;
|
||||||
|
|
||||||
public PluginsManager(final Plugin plugin) {
|
|
||||||
this.main = plugin;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String getVersion(final Plugin plugin) {
|
public static String getVersion(final Plugin plugin) {
|
||||||
return StringUtils.substring(plugin.getDescription().getVersion(), 0, 15);
|
return StringUtils.substring(plugin.getDescription().getVersion(), 0, 15);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PluginsManager(final Plugin plugin) {
|
||||||
|
this.main = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加到忽略列表
|
* 添加到忽略列表
|
||||||
*
|
*
|
||||||
@ -582,35 +582,22 @@ public class PluginsManager {
|
|||||||
sender.sendMessage("§6卸载: §a从插件查找列表删除 §b" + name + " §a的实例!");
|
sender.sendMessage("§6卸载: §a从插件查找列表删除 §b" + name + " §a的实例!");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (commandMap != null) {
|
for (final Iterator<Map.Entry<String, Command>> it = knownCommands.entrySet().iterator(); it.hasNext();) {
|
||||||
for (final Iterator<Map.Entry<String, Command>> it = knownCommands.entrySet().iterator(); it.hasNext();) {
|
final Map.Entry<String, Command> entry = it.next();
|
||||||
final Map.Entry<String, Command> entry = it.next();
|
if ((entry.getValue() instanceof PluginCommand)) {
|
||||||
if ((entry.getValue() instanceof PluginCommand)) {
|
final PluginCommand command = (PluginCommand) entry.getValue();
|
||||||
final PluginCommand command = (PluginCommand) entry.getValue();
|
if (command.getPlugin() == next) {
|
||||||
if (command.getPlugin() == next) {
|
command.unregister(commandMap);
|
||||||
command.unregister(commandMap);
|
it.remove();
|
||||||
it.remove();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sender.sendMessage("§6卸载: §a注销插件 §b" + name + " §a的所有命令!");
|
|
||||||
}
|
}
|
||||||
|
sender.sendMessage("§6卸载: §a注销插件 §b" + name + " §a的所有命令!");
|
||||||
final ClassLoader cl = next.getClass().getClassLoader();
|
final ClassLoader cl = next.getClass().getClassLoader();
|
||||||
try {
|
try {
|
||||||
((URLClassLoader) cl).close();
|
((URLClassLoader) cl).close();
|
||||||
} catch (final IOException ex) {
|
} catch (final IOException ex) {
|
||||||
}
|
}
|
||||||
// ###移除类加载器后会导致插件无法载入###
|
|
||||||
// if (fileAssociations != null) {
|
|
||||||
// for (final Iterator<Entry<Pattern, PluginLoader>> filter = fileAssociations.entrySet().iterator(); filter.hasNext();) {
|
|
||||||
// final Entry<Pattern, PluginLoader> entry = filter.next();
|
|
||||||
// final Matcher match = entry.getKey().matcher(getPluginFile(next).getName());
|
|
||||||
// if (match.find()) {
|
|
||||||
// filter.remove();
|
|
||||||
// sender.sendMessage("§6卸载: §a移除插件 §b" + name + " §a的类加载器!");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
System.gc();
|
System.gc();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user