[Change] CQPluginMain 将两个ArgumentsRunner设计为多次使用以提高性能;

This commit is contained in:
LamGC 2020-04-01 09:48:32 +08:00
parent 2174fb96ef
commit 3e4874b67c

View File

@ -35,6 +35,8 @@ public class CQPluginMain extends CQPlugin {
private final static String COMMAND_PREFIX = ".cgj"; private final static String COMMAND_PREFIX = ".cgj";
private final Logger log = LoggerFactory.getLogger("CQPluginMain@" + Integer.toHexString(this.hashCode())); private final Logger log = LoggerFactory.getLogger("CQPluginMain@" + Integer.toHexString(this.hashCode()));
private final ArgumentsRunnerConfig runnerConfig = new ArgumentsRunnerConfig(); private final ArgumentsRunnerConfig runnerConfig = new ArgumentsRunnerConfig();
private final ArgumentsRunner adminRunner;
private final ArgumentsRunner processRunner;
public final static Properties globalProp = new Properties(); public final static Properties globalProp = new Properties();
public CQPluginMain() { public CQPluginMain() {
@ -43,6 +45,9 @@ public class CQPluginMain extends CQPlugin {
runnerConfig.addStringParameterParser(new DateParser(new SimpleDateFormat("yyyy-MM-dd"))); runnerConfig.addStringParameterParser(new DateParser(new SimpleDateFormat("yyyy-MM-dd")));
runnerConfig.addStringParameterParser(new PagesQualityParser()); runnerConfig.addStringParameterParser(new PagesQualityParser());
processRunner = new ArgumentsRunner(CQProcess.class, runnerConfig);
adminRunner = new ArgumentsRunner(CQBotAdminProcess.class, runnerConfig);
File globalPropFile = new File("./global.properties"); File globalPropFile = new File("./global.properties");
if(globalPropFile.exists() && globalPropFile.isFile()) { if(globalPropFile.exists() && globalPropFile.isFile()) {
log.info("正在加载全局配置文件..."); log.info("正在加载全局配置文件...");
@ -115,11 +120,10 @@ public class CQPluginMain extends CQPlugin {
sendMessage(cq, event, "你没有执行该命令的权限!", false); sendMessage(cq, event, "你没有执行该命令的权限!", false);
return MESSAGE_BLOCK; return MESSAGE_BLOCK;
} else { } else {
result = new ArgumentsRunner(CQBotAdminProcess.class, runnerConfig) result = adminRunner.run(new CQBotAdminProcess(), args.length <= 1 ? new String[0] : Arrays.copyOfRange(args, 1, args.length));
.run(new CQBotAdminProcess(), args.length <= 1 ? new String[0] : Arrays.copyOfRange(args, 1, args.length));
} }
} else { } else {
result = new ArgumentsRunner(CQProcess.class, runnerConfig).run(args.length <= 1 ? new String[0] : Arrays.copyOfRange(args, 1, args.length)); result = processRunner.run(args.length <= 1 ? new String[0] : Arrays.copyOfRange(args, 1, args.length));
} }
} catch(NoSuchCommandException e) { } catch(NoSuchCommandException e) {
result = "没有这个命令!请使用“.cgj”查看帮助说明"; result = "没有这个命令!请使用“.cgj”查看帮助说明";