mirror of
https://e.coding.net/circlecloud/Yum.git
synced 2024-11-22 22:38:46 +00:00
feat: 能耗监控添加忽略列表 详见monitor.yml
Signed-off-by: 502647092 <admin@yumc.pw>
This commit is contained in:
parent
08fc991e85
commit
c282213d02
4
pom.xml
4
pom.xml
@ -3,7 +3,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>pw.yumc</groupId>
|
<groupId>pw.yumc</groupId>
|
||||||
<artifactId>Yum</artifactId>
|
<artifactId>Yum</artifactId>
|
||||||
<version>2.6.1</version>
|
<version>2.6.2</version>
|
||||||
<name>Yum</name>
|
<name>Yum</name>
|
||||||
<description>Minecraft 服务器插件管理系统</description>
|
<description>Minecraft 服务器插件管理系统</description>
|
||||||
<build>
|
<build>
|
||||||
@ -60,9 +60,9 @@
|
|||||||
<properties>
|
<properties>
|
||||||
<update.description>&a全新 2.X 版本 更多守护与优化</update.description>
|
<update.description>&a全新 2.X 版本 更多守护与优化</update.description>
|
||||||
<update.changes>
|
<update.changes>
|
||||||
|
&b2.6.2 &6- &d能耗监控添加忽略列表 &3详见monitor.yml...;
|
||||||
&b2.6.1 &6- &c优化能耗监控 命令别名修改为mi(防止与ESS冲突)...;
|
&b2.6.1 &6- &c优化能耗监控 命令别名修改为mi(防止与ESS冲突)...;
|
||||||
&b2.6 &6- &a添加能耗监控系统 事件错误监控...;
|
&b2.6 &6- &a添加能耗监控系统 事件错误监控...;
|
||||||
&b2.5 &6- &d修复主线程守护系统错误...;
|
|
||||||
</update.changes>
|
</update.changes>
|
||||||
<env.GIT_COMMIT>DEBUG</env.GIT_COMMIT>
|
<env.GIT_COMMIT>DEBUG</env.GIT_COMMIT>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
@ -59,9 +59,6 @@ public class Yum extends JavaPlugin {
|
|||||||
new VersionChecker(this);
|
new VersionChecker(this);
|
||||||
YumAPI.updateRepo(Bukkit.getConsoleSender());
|
YumAPI.updateRepo(Bukkit.getConsoleSender());
|
||||||
YumAPI.updateCheck(Bukkit.getConsoleSender());
|
YumAPI.updateCheck(Bukkit.getConsoleSender());
|
||||||
if (ConfigManager.i().isMonitorEnable()) {
|
|
||||||
YumAPI.updateInject();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -106,7 +106,7 @@ public class YumAPI {
|
|||||||
* 插件
|
* 插件
|
||||||
*/
|
*/
|
||||||
public static void inject(final Plugin plugin) {
|
public static void inject(final Plugin plugin) {
|
||||||
if (plugin.isEnabled()) {
|
if (plugin.isEnabled() && !ConfigManager.i().getMonitorIgnoreList().contains(plugin.getName())) {
|
||||||
CommandInjector.inject(plugin);
|
CommandInjector.inject(plugin);
|
||||||
ListenerInjector.inject(plugin);
|
ListenerInjector.inject(plugin);
|
||||||
TaskInjector.inject(plugin);
|
TaskInjector.inject(plugin);
|
||||||
|
@ -40,6 +40,7 @@ public class MonitorCommand implements HandlerCommands {
|
|||||||
private final String total = "§6总耗时: §a%.2f毫秒 ";
|
private final String total = "§6总耗时: §a%.2f毫秒 ";
|
||||||
private final String count = "§6执行次数: §b%s次 ";
|
private final String count = "§6执行次数: §b%s次 ";
|
||||||
private final String avg = "§6平均耗时: §d%.5f毫秒!";
|
private final String avg = "§6平均耗时: §d%.5f毫秒!";
|
||||||
|
private final String avg_warn = "§6平均耗时: §c%.5f毫秒!";
|
||||||
private final String p_n_f = prefix + "§c插件 §b%s §c不存在!";
|
private final String p_n_f = prefix + "§c插件 §b%s §c不存在!";
|
||||||
|
|
||||||
private final double um = 1000000.0;
|
private final double um = 1000000.0;
|
||||||
@ -127,7 +128,8 @@ public class MonitorCommand implements HandlerCommands {
|
|||||||
str.append(String.format(total, eventTotalTime.get(event) / um));
|
str.append(String.format(total, eventTotalTime.get(event) / um));
|
||||||
str.append(String.format(count, eventCount.get(event)));
|
str.append(String.format(count, eventCount.get(event)));
|
||||||
if (eventCount.get(event) != 0) {
|
if (eventCount.get(event) != 0) {
|
||||||
str.append(String.format(avg, eventTotalTime.get(event) / um / eventCount.get(event)));
|
final double avgTime = eventTotalTime.get(event) / um / eventCount.get(event);
|
||||||
|
str.append(String.format(avgTime < 10 ? avg : avg_warn, avgTime));
|
||||||
}
|
}
|
||||||
e.getSender().sendMessage(str.toString());
|
e.getSender().sendMessage(str.toString());
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ import org.bukkit.plugin.TimedRegisteredListener;
|
|||||||
|
|
||||||
import cn.citycraft.PluginHelper.ext.kit.Reflect;
|
import cn.citycraft.PluginHelper.ext.kit.Reflect;
|
||||||
import cn.citycraft.PluginHelper.kit.PluginKit;
|
import cn.citycraft.PluginHelper.kit.PluginKit;
|
||||||
|
import pw.yumc.Yum.managers.ConfigManager;
|
||||||
|
|
||||||
public class ListenerInjector implements EventExecutor {
|
public class ListenerInjector implements EventExecutor {
|
||||||
private final String prefix = "§6[§bYum §a事件监控§6] ";
|
private final String prefix = "§6[§bYum §a事件监控§6] ";
|
||||||
@ -70,7 +71,7 @@ public class ListenerInjector implements EventExecutor {
|
|||||||
final long end = System.nanoTime();
|
final long end = System.nanoTime();
|
||||||
final String en = event.getEventName();
|
final String en = event.getEventName();
|
||||||
final long lag = end - start;
|
final long lag = end - start;
|
||||||
if (lag / 1000000 > 10) {
|
if (lag / 1000000 > 10 && !ConfigManager.i().getMonitorIgnoreList().contains(plugin.getName())) {
|
||||||
PluginKit.sc("§6[§bYum §a能耗监控§6] §c注意! §6插件 §b" + plugin.getName() + " §6处理 §d" + event.getEventName() + " §6事件时§c耗时 §4" + lag / 1000000 + "ms!");
|
PluginKit.sc("§6[§bYum §a能耗监控§6] §c注意! §6插件 §b" + plugin.getName() + " §6处理 §d" + event.getEventName() + " §6事件时§c耗时 §4" + lag / 1000000 + "ms!");
|
||||||
}
|
}
|
||||||
if (eventTotalTime.containsKey(en)) {
|
if (eventTotalTime.containsKey(en)) {
|
||||||
|
@ -40,6 +40,10 @@ public class ConfigManager {
|
|||||||
return config.getStringList("ignorelist");
|
return config.getStringList("ignorelist");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<String> getMonitorIgnoreList() {
|
||||||
|
return monitor.getStringList(IGNORE);
|
||||||
|
}
|
||||||
|
|
||||||
public List<String> getNetworkBlackList() {
|
public List<String> getNetworkBlackList() {
|
||||||
return network.getStringList(BLACK);
|
return network.getStringList(BLACK);
|
||||||
}
|
}
|
||||||
@ -96,5 +100,6 @@ public class ConfigManager {
|
|||||||
setop.reload();
|
setop.reload();
|
||||||
network.reload();
|
network.reload();
|
||||||
thread.reload();
|
thread.reload();
|
||||||
|
monitor.reload();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,10 @@
|
|||||||
############################
|
############################
|
||||||
|
|
||||||
#配置版本号 请勿修改!!!
|
#配置版本号 请勿修改!!!
|
||||||
Version: 1.0
|
Version: 1.1
|
||||||
|
|
||||||
#是否开启
|
#是否开启
|
||||||
Enable: true
|
Enable: true
|
||||||
|
#忽略检测列表
|
||||||
|
Ignore:
|
||||||
|
- Essentials
|
Loading…
Reference in New Issue
Block a user