mirror of
				https://e.coding.net/circlecloud/Yum.git
				synced 2025-11-04 13:16:02 +00:00 
			
		
		
		
	
							
								
								
									
										18
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								pom.xml
									
									
									
									
									
								
							@@ -3,7 +3,7 @@
 | 
				
			|||||||
    <modelVersion>4.0.0</modelVersion>
 | 
					    <modelVersion>4.0.0</modelVersion>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <artifactId>Yum</artifactId>
 | 
					    <artifactId>Yum</artifactId>
 | 
				
			||||||
    <version>2.9.1</version>
 | 
					    <version>2.9.5</version>
 | 
				
			||||||
    <packaging>jar</packaging>
 | 
					    <packaging>jar</packaging>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <description>Minecraft 服务器插件管理系统</description>
 | 
					    <description>Minecraft 服务器插件管理系统</description>
 | 
				
			||||||
@@ -16,16 +16,18 @@
 | 
				
			|||||||
    </parent>
 | 
					    </parent>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <properties>
 | 
					    <properties>
 | 
				
			||||||
        <update.description>§a补丁包 2.9.1 版本</update.description>
 | 
					        <update.description>§a补丁包 2.9.5 版本</update.description>
 | 
				
			||||||
        <update.changes>
 | 
					        <update.changes>
 | 
				
			||||||
            §620-03-25 §cfix: paper HikariPool error;
 | 
					            §621-10-28 §afeat: 新增屏蔽插件报错功能;
 | 
				
			||||||
            §619-09-30 §cfix: tabComplete error;
 | 
					            §620-03-25 §afeat: 优化 当前插件获取逻辑;
 | 
				
			||||||
            §619-08-28 §cfix: knownCommands not compatible;
 | 
					            §620-03-25 §c修复: Paper HikariPool 不兼容问题;
 | 
				
			||||||
                   §cfix: async event on primary thread;
 | 
					            §619-09-30 §c修复: 自动补全报错的问题;
 | 
				
			||||||
            §619-08-26 §cfix: 修复不兼容 1.14.4 的问题;
 | 
					            §619-08-28 §c修复: knownCommands 不兼容;
 | 
				
			||||||
            §619-02-23 §cfix: 修复不兼容 1.13 的问题;
 | 
					                  §c修复: async event on primary thread;
 | 
				
			||||||
        </update.changes>
 | 
					        </update.changes>
 | 
				
			||||||
        <update.changelog>
 | 
					        <update.changelog>
 | 
				
			||||||
 | 
					            §619-08-26 §c修复: 修复不兼容 1.14.4 的问题;
 | 
				
			||||||
 | 
					            §619-02-23 §c修复: 修复不兼容 1.13 的问题;
 | 
				
			||||||
            §617-07-29 §cfix: 修复不兼容 1.12 的问题;
 | 
					            §617-07-29 §cfix: 修复不兼容 1.12 的问题;
 | 
				
			||||||
            §6- §cfix: §7修复仓库数据读取错误的问题;
 | 
					            §6- §cfix: §7修复仓库数据读取错误的问题;
 | 
				
			||||||
            §6- §cfix: §7修复一个tab补全产生的错误
 | 
					            §6- §cfix: §7修复一个tab补全产生的错误
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,25 +1,18 @@
 | 
				
			|||||||
package pw.yumc.Yum.inject;
 | 
					package pw.yumc.Yum.inject;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.Collections;
 | 
					 | 
				
			||||||
import java.util.List;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import org.apache.commons.lang.Validate;
 | 
					import org.apache.commons.lang.Validate;
 | 
				
			||||||
import org.bukkit.Bukkit;
 | 
					import org.bukkit.Bukkit;
 | 
				
			||||||
import org.bukkit.command.Command;
 | 
					import org.bukkit.command.*;
 | 
				
			||||||
import org.bukkit.command.CommandExecutor;
 | 
					 | 
				
			||||||
import org.bukkit.command.CommandSender;
 | 
					 | 
				
			||||||
import org.bukkit.command.PluginCommand;
 | 
					 | 
				
			||||||
import org.bukkit.command.SimpleCommandMap;
 | 
					 | 
				
			||||||
import org.bukkit.command.TabCompleter;
 | 
					 | 
				
			||||||
import org.bukkit.command.TabExecutor;
 | 
					 | 
				
			||||||
import org.bukkit.plugin.Plugin;
 | 
					import org.bukkit.plugin.Plugin;
 | 
				
			||||||
import org.bukkit.plugin.PluginManager;
 | 
					import org.bukkit.plugin.PluginManager;
 | 
				
			||||||
 | 
					 | 
				
			||||||
import pw.yumc.Yum.commands.MonitorCommand;
 | 
					import pw.yumc.Yum.commands.MonitorCommand;
 | 
				
			||||||
import pw.yumc.Yum.managers.MonitorManager;
 | 
					import pw.yumc.Yum.managers.MonitorManager;
 | 
				
			||||||
import pw.yumc.YumCore.kit.StrKit;
 | 
					import pw.yumc.YumCore.kit.StrKit;
 | 
				
			||||||
import pw.yumc.YumCore.reflect.Reflect;
 | 
					import pw.yumc.YumCore.reflect.Reflect;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Collections;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class CommandInjector implements TabExecutor {
 | 
					public class CommandInjector implements TabExecutor {
 | 
				
			||||||
    private static String prefix = "§6[§bYum §a命令监控§6] ";
 | 
					    private static String prefix = "§6[§bYum §a命令监控§6] ";
 | 
				
			||||||
    private static String warn = "§c注意! §6玩家 §a%s §6执行 §b%s §6插件 §d%s %s §6命令 §c耗时 §4%sms §c平均耗时 §4%sms!";
 | 
					    private static String warn = "§c注意! §6玩家 §a%s §6执行 §b%s §6插件 §d%s %s §6命令 §c耗时 §4%sms §c平均耗时 §4%sms!";
 | 
				
			||||||
@@ -121,7 +114,7 @@ public class CommandInjector implements TabExecutor {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
            MonitorCommand.lastError = e;
 | 
					            MonitorCommand.lastError = e;
 | 
				
			||||||
            MonitorManager.sendError(sender, plugin, e);
 | 
					            MonitorManager.sendError(sender, plugin, e);
 | 
				
			||||||
            MonitorManager.printThrowable(String.format(err, sender.getName(), plugin.getName(), label, StrKit.join(args, " ")), e);
 | 
					            MonitorManager.printThrowable(plugin, String.format(err, sender.getName(), plugin.getName(), label, StrKit.join(args, " ")), e);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return false;
 | 
					        return false;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,5 @@
 | 
				
			|||||||
package pw.yumc.Yum.inject;
 | 
					package pw.yumc.Yum.inject;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.lang.reflect.Field;
 | 
					 | 
				
			||||||
import java.util.List;
 | 
					 | 
				
			||||||
import java.util.Map;
 | 
					 | 
				
			||||||
import java.util.concurrent.ConcurrentHashMap;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import org.apache.commons.lang.Validate;
 | 
					import org.apache.commons.lang.Validate;
 | 
				
			||||||
import org.bukkit.event.Event;
 | 
					import org.bukkit.event.Event;
 | 
				
			||||||
import org.bukkit.event.EventException;
 | 
					import org.bukkit.event.EventException;
 | 
				
			||||||
@@ -14,12 +9,16 @@ import org.bukkit.plugin.EventExecutor;
 | 
				
			|||||||
import org.bukkit.plugin.Plugin;
 | 
					import org.bukkit.plugin.Plugin;
 | 
				
			||||||
import org.bukkit.plugin.RegisteredListener;
 | 
					import org.bukkit.plugin.RegisteredListener;
 | 
				
			||||||
import org.bukkit.plugin.TimedRegisteredListener;
 | 
					import org.bukkit.plugin.TimedRegisteredListener;
 | 
				
			||||||
 | 
					 | 
				
			||||||
import pw.yumc.Yum.commands.MonitorCommand;
 | 
					import pw.yumc.Yum.commands.MonitorCommand;
 | 
				
			||||||
import pw.yumc.Yum.managers.ConfigManager;
 | 
					import pw.yumc.Yum.managers.ConfigManager;
 | 
				
			||||||
import pw.yumc.Yum.managers.MonitorManager;
 | 
					import pw.yumc.Yum.managers.MonitorManager;
 | 
				
			||||||
import pw.yumc.YumCore.reflect.Reflect;
 | 
					import pw.yumc.YumCore.reflect.Reflect;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.lang.reflect.Field;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					import java.util.concurrent.ConcurrentHashMap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class ListenerInjector implements EventExecutor {
 | 
					public class ListenerInjector implements EventExecutor {
 | 
				
			||||||
    private static String prefix = "§6[§bYum §a事件监控§6] ";
 | 
					    private static String prefix = "§6[§bYum §a事件监控§6] ";
 | 
				
			||||||
    private static String warn = "§c注意! §6插件 §b%s §6处理 §d%s §6事件 §c耗时 §4%sms §c平均耗时 §4%sms!";
 | 
					    private static String warn = "§c注意! §6插件 §b%s §6处理 §d%s §6事件 §c耗时 §4%sms §c平均耗时 §4%sms!";
 | 
				
			||||||
@@ -110,7 +109,7 @@ public class ListenerInjector implements EventExecutor {
 | 
				
			|||||||
                e = e.getCause();
 | 
					                e = e.getCause();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            MonitorCommand.lastError = e;
 | 
					            MonitorCommand.lastError = e;
 | 
				
			||||||
            MonitorManager.printThrowable(String.format(err, plugin.getName(), event.getEventName()), e);
 | 
					            MonitorManager.printThrowable(plugin, String.format(err, plugin.getName(), event.getEventName()), e);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,19 +1,18 @@
 | 
				
			|||||||
package pw.yumc.Yum.inject;
 | 
					package pw.yumc.Yum.inject;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.List;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import org.apache.commons.lang.Validate;
 | 
					import org.apache.commons.lang.Validate;
 | 
				
			||||||
import org.bukkit.Bukkit;
 | 
					import org.bukkit.Bukkit;
 | 
				
			||||||
import org.bukkit.plugin.Plugin;
 | 
					import org.bukkit.plugin.Plugin;
 | 
				
			||||||
import org.bukkit.scheduler.BukkitScheduler;
 | 
					import org.bukkit.scheduler.BukkitScheduler;
 | 
				
			||||||
import org.bukkit.scheduler.BukkitTask;
 | 
					import org.bukkit.scheduler.BukkitTask;
 | 
				
			||||||
 | 
					 | 
				
			||||||
import pw.yumc.Yum.commands.MonitorCommand;
 | 
					import pw.yumc.Yum.commands.MonitorCommand;
 | 
				
			||||||
import pw.yumc.Yum.managers.MonitorManager;
 | 
					import pw.yumc.Yum.managers.MonitorManager;
 | 
				
			||||||
import pw.yumc.YumCore.bukkit.P;
 | 
					import pw.yumc.YumCore.bukkit.P;
 | 
				
			||||||
import pw.yumc.YumCore.kit.StrKit;
 | 
					import pw.yumc.YumCore.kit.StrKit;
 | 
				
			||||||
import pw.yumc.YumCore.reflect.Reflect;
 | 
					import pw.yumc.YumCore.reflect.Reflect;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class TaskInjector implements Runnable {
 | 
					public class TaskInjector implements Runnable {
 | 
				
			||||||
    private static String prefix = "§6[§bYum §a任务监控§6] ";
 | 
					    private static String prefix = "§6[§bYum §a任务监控§6] ";
 | 
				
			||||||
    private static String warn = "§c注意! §6插件 §b%s §6处理 §d%s §6任务 §c耗时 §4%sms §c平均耗时 §4%sms!";
 | 
					    private static String warn = "§c注意! §6插件 §b%s §6处理 §d%s §6任务 §c耗时 §4%sms §c平均耗时 §4%sms!";
 | 
				
			||||||
@@ -114,7 +113,7 @@ public class TaskInjector implements Runnable {
 | 
				
			|||||||
                e = e.getCause();
 | 
					                e = e.getCause();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            MonitorCommand.lastError = e;
 | 
					            MonitorCommand.lastError = e;
 | 
				
			||||||
            MonitorManager.printThrowable(String.format(err, plugin.getName(), taskName), e);
 | 
					            MonitorManager.printThrowable(plugin, String.format(err, plugin.getName(), taskName), e);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,13 +1,12 @@
 | 
				
			|||||||
package pw.yumc.Yum.managers;
 | 
					package pw.yumc.Yum.managers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.List;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import org.bukkit.plugin.java.JavaPlugin;
 | 
					import org.bukkit.plugin.java.JavaPlugin;
 | 
				
			||||||
 | 
					 | 
				
			||||||
import pw.yumc.YumCore.bukkit.P;
 | 
					import pw.yumc.YumCore.bukkit.P;
 | 
				
			||||||
import pw.yumc.YumCore.config.FileConfig;
 | 
					import pw.yumc.YumCore.config.FileConfig;
 | 
				
			||||||
import pw.yumc.YumCore.sql.DataBase;
 | 
					import pw.yumc.YumCore.sql.DataBase;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class ConfigManager {
 | 
					public class ConfigManager {
 | 
				
			||||||
    public static String ENABLE = "Enable";
 | 
					    public static String ENABLE = "Enable";
 | 
				
			||||||
    public static String BLACK = "Black";
 | 
					    public static String BLACK = "Black";
 | 
				
			||||||
@@ -49,6 +48,10 @@ public class ConfigManager {
 | 
				
			|||||||
        return monitor.getStringList(IGNORE);
 | 
					        return monitor.getStringList(IGNORE);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public List<String> getMonitorIgnoreErrorList() {
 | 
				
			||||||
 | 
					        return monitor.getStringList("IgnoreError");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public List<String> getNetworkBlackList() {
 | 
					    public List<String> getNetworkBlackList() {
 | 
				
			||||||
        return network.getStringList(BLACK);
 | 
					        return network.getStringList(BLACK);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,28 +1,20 @@
 | 
				
			|||||||
package pw.yumc.Yum.managers;
 | 
					package pw.yumc.Yum.managers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					 | 
				
			||||||
import java.util.Collection;
 | 
					 | 
				
			||||||
import java.util.Collections;
 | 
					 | 
				
			||||||
import java.util.Comparator;
 | 
					 | 
				
			||||||
import java.util.Iterator;
 | 
					 | 
				
			||||||
import java.util.LinkedHashMap;
 | 
					 | 
				
			||||||
import java.util.List;
 | 
					 | 
				
			||||||
import java.util.Map;
 | 
					 | 
				
			||||||
import java.util.Map.Entry;
 | 
					 | 
				
			||||||
import java.util.concurrent.ConcurrentHashMap;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import org.bukkit.Bukkit;
 | 
					import org.bukkit.Bukkit;
 | 
				
			||||||
import org.bukkit.command.CommandSender;
 | 
					import org.bukkit.command.CommandSender;
 | 
				
			||||||
import org.bukkit.plugin.Plugin;
 | 
					import org.bukkit.plugin.Plugin;
 | 
				
			||||||
 | 
					 | 
				
			||||||
import pw.yumc.YumCore.bukkit.Log;
 | 
					import pw.yumc.YumCore.bukkit.Log;
 | 
				
			||||||
import pw.yumc.YumCore.kit.LogKit;
 | 
					import pw.yumc.YumCore.kit.LogKit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.*;
 | 
				
			||||||
 | 
					import java.util.Map.Entry;
 | 
				
			||||||
 | 
					import java.util.concurrent.ConcurrentHashMap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 能耗监控管理
 | 
					 * 能耗监控管理
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * @since 2016年7月19日 下午3:55:54
 | 
					 | 
				
			||||||
 * @author 喵♂呜
 | 
					 * @author 喵♂呜
 | 
				
			||||||
 | 
					 * @since 2016年7月19日 下午3:55:54
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
public class MonitorManager {
 | 
					public class MonitorManager {
 | 
				
			||||||
    public static String prefix = "§6[§bYum §a能耗监控§6] ";
 | 
					    public static String prefix = "§6[§bYum §a能耗监控§6] ";
 | 
				
			||||||
@@ -96,12 +88,15 @@ public class MonitorManager {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static void printThrowable(String title, Throwable e) {
 | 
					    public static void printThrowable(Plugin plugin, String title, Throwable e) {
 | 
				
			||||||
 | 
					        if (ConfigManager.i().getMonitorIgnoreErrorList().contains(plugin.getName())) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        elog(title);
 | 
					        elog(title);
 | 
				
			||||||
        elog(String.format(errN, e.getClass().getName()));
 | 
					        elog(String.format(errN, e.getClass().getName()));
 | 
				
			||||||
        elog(String.format(errM, e.getMessage()));
 | 
					        elog(String.format(errM, e.getMessage()));
 | 
				
			||||||
        elog(errInfo);
 | 
					        elog(errInfo);
 | 
				
			||||||
        int l = e.getStackTrace().length > 5 ? 5 : e.getStackTrace().length;
 | 
					        int l = Math.min(e.getStackTrace().length, 5);
 | 
				
			||||||
        for (int i = 0; i < l; i++) {
 | 
					        for (int i = 0; i < l; i++) {
 | 
				
			||||||
            StackTraceElement ste = e.getStackTrace()[i];
 | 
					            StackTraceElement ste = e.getStackTrace()[i];
 | 
				
			||||||
            elog(String.format(errStackTrace, ste.getClassName(), ste.getMethodName(), ste.getFileName() == null ? "未知" : ste.getFileName(), ste.getLineNumber()));
 | 
					            elog(String.format(errStackTrace, ste.getClassName(), ste.getMethodName(), ste.getFileName() == null ? "未知" : ste.getFileName(), ste.getLineNumber()));
 | 
				
			||||||
@@ -136,7 +131,7 @@ public class MonitorManager {
 | 
				
			|||||||
        if (oriMap == null || oriMap.isEmpty()) { return oriMap; }
 | 
					        if (oriMap == null || oriMap.isEmpty()) { return oriMap; }
 | 
				
			||||||
        Map<String, Long> sortedMap = new LinkedHashMap<>();
 | 
					        Map<String, Long> sortedMap = new LinkedHashMap<>();
 | 
				
			||||||
        List<Map.Entry<String, Long>> entryList = new ArrayList<>(oriMap.entrySet());
 | 
					        List<Map.Entry<String, Long>> entryList = new ArrayList<>(oriMap.entrySet());
 | 
				
			||||||
        Collections.sort(entryList, new MonitorComparator());
 | 
					        entryList.sort(new MonitorComparator());
 | 
				
			||||||
        Iterator<Map.Entry<String, Long>> iter = entryList.iterator();
 | 
					        Iterator<Map.Entry<String, Long>> iter = entryList.iterator();
 | 
				
			||||||
        Entry<String, Long> tmpEntry;
 | 
					        Entry<String, Long> tmpEntry;
 | 
				
			||||||
        while (iter.hasNext()) {
 | 
					        while (iter.hasNext()) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,7 @@
 | 
				
			|||||||
############################
 | 
					############################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#配置版本号 请勿修改!!!
 | 
					#配置版本号 请勿修改!!!
 | 
				
			||||||
Version: 1.3
 | 
					Version: 1.4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#是否开启
 | 
					#是否开启
 | 
				
			||||||
Enable: true
 | 
					Enable: true
 | 
				
			||||||
@@ -14,3 +14,6 @@ LogToFile: true
 | 
				
			|||||||
#忽略检测列表
 | 
					#忽略检测列表
 | 
				
			||||||
Ignore:
 | 
					Ignore:
 | 
				
			||||||
  - PluginHelper
 | 
					  - PluginHelper
 | 
				
			||||||
 | 
					#忽略报错的插件列表
 | 
				
			||||||
 | 
					IgnoreError:
 | 
				
			||||||
 | 
					  - PluginHelper
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user