[Add] BotEventHandler 添加executeMessageEvent(MessageEvent)方法;

[Change] BotEventHandler 将BotEventHandler.executor设为private;
[Change] MiraiMain, CQPluginMain, RankingUpdateTimer 适配BotEventHandler的调整
This commit is contained in:
LamGC 2020-05-04 23:06:07 +08:00
parent cf08353ed9
commit cd1d2316ee
4 changed files with 13 additions and 6 deletions

View File

@ -65,8 +65,7 @@ public class RankingUpdateTimer {
log.debug("不支持的类型, 填空值跳过...(类型: {}.{})", rankingMode.name(), contentType.name()); log.debug("不支持的类型, 填空值跳过...(类型: {}.{})", rankingMode.name(), contentType.name());
} }
log.info("当前排行榜类型: {}.{}, 正在更新...", rankingMode.name(), contentType.name()); log.info("当前排行榜类型: {}.{}, 正在更新...", rankingMode.name(), contentType.name());
BotEventHandler.executor.executor( BotEventHandler.executeMessageEvent(new VirtualLoadMessageEvent(0,0,
new VirtualLoadMessageEvent(0,0,
".cgj ranking -type=" + contentType.name() + " -mode=" + rankingMode.name())); ".cgj ranking -type=" + contentType.name() + " -mode=" + rankingMode.name()));
log.info("排行榜 {}.{} 负载指令已投递.", rankingMode.name(), contentType.name()); log.info("排行榜 {}.{} 负载指令已投递.", rankingMode.name(), contentType.name());
} }

View File

@ -50,7 +50,7 @@ public class BotEventHandler implements EventHandler {
/** /**
* 消息事件执行器 * 消息事件执行器
*/ */
public final static EventExecutor executor = new EventExecutor(new TimeLimitThreadPoolExecutor( private final static EventExecutor executor = new EventExecutor(new TimeLimitThreadPoolExecutor(
60 * 1000, 60 * 1000,
Math.max(Runtime.getRuntime().availableProcessors(), 4), Math.max(Runtime.getRuntime().availableProcessors(), 4),
Math.max(Math.max(Runtime.getRuntime().availableProcessors() * 2, 4), 32), Math.max(Math.max(Runtime.getRuntime().availableProcessors() * 2, 4), 32),
@ -125,6 +125,14 @@ public class BotEventHandler implements EventHandler {
BotCommandProcess.initialize(); BotCommandProcess.initialize();
} }
/**
* 投递消息事件
* @param event 事件对象
*/
public static void executeMessageEvent(MessageEvent event) {
BotEventHandler.executor.executor(event);
}
/** /**
* 以事件形式处理消息事件 * 以事件形式处理消息事件
* @param event 消息事件对象 * @param event 消息事件对象

View File

@ -41,7 +41,7 @@ public class CQPluginMain extends CQPlugin implements EventHandler {
if(!BotEventHandler.match(event.getMessage())) { if(!BotEventHandler.match(event.getMessage())) {
return MESSAGE_IGNORE; return MESSAGE_IGNORE;
} }
BotEventHandler.executor.executor(new SpringCQMessageEvent(cq, event)); BotEventHandler.executeMessageEvent(new SpringCQMessageEvent(cq, event));
return MESSAGE_BLOCK; return MESSAGE_BLOCK;
} }

View File

@ -43,8 +43,8 @@ public class MiraiMain implements Closeable {
} }
bot = BotFactoryJvm.newBot(Long.parseLong(botProperties.getProperty("bot.qq", "0")), Base64.decodeBase64(botProperties.getProperty("bot.password", "")), new BotConfiguration()); bot = BotFactoryJvm.newBot(Long.parseLong(botProperties.getProperty("bot.qq", "0")), Base64.decodeBase64(botProperties.getProperty("bot.password", "")), new BotConfiguration());
Events.subscribeAlways(GroupMessage.class, (msg) -> BotEventHandler.executor.executor(new MiraiMessageEvent(msg))); Events.subscribeAlways(GroupMessage.class, (msg) -> BotEventHandler.executeMessageEvent(new MiraiMessageEvent(msg)));
Events.subscribeAlways(FriendMessage.class, (msg) -> BotEventHandler.executor.executor(new MiraiMessageEvent(msg))); Events.subscribeAlways(FriendMessage.class, (msg) -> BotEventHandler.executeMessageEvent(new MiraiMessageEvent(msg)));
bot.login(); bot.login();
MessageSenderBuilder.setCurrentMessageSenderFactory(new MiraiMessageSenderFactory(bot)); MessageSenderBuilder.setCurrentMessageSenderFactory(new MiraiMessageSenderFactory(bot));
BotEventHandler.preLoad(); BotEventHandler.preLoad();