From cd1d2316eecb834fbdc10306760d9ee96cac958d Mon Sep 17 00:00:00 2001 From: LamGC Date: Mon, 4 May 2020 23:06:07 +0800 Subject: [PATCH] =?UTF-8?q?[Add]=20BotEventHandler=20=E6=B7=BB=E5=8A=A0exe?= =?UTF-8?q?cuteMessageEvent(MessageEvent)=E6=96=B9=E6=B3=95;=20[Change]=20?= =?UTF-8?q?BotEventHandler=20=E5=B0=86BotEventHandler.executor=E8=AE=BE?= =?UTF-8?q?=E4=B8=BAprivate;=20[Change]=20MiraiMain,=20CQPluginMain,=20Ran?= =?UTF-8?q?kingUpdateTimer=20=E9=80=82=E9=85=8DBotEventHandler=E7=9A=84?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/net/lamgc/cgj/bot/RankingUpdateTimer.java | 3 +-- .../java/net/lamgc/cgj/bot/event/BotEventHandler.java | 10 +++++++++- .../lamgc/cgj/bot/framework/coolq/CQPluginMain.java | 2 +- .../net/lamgc/cgj/bot/framework/mirai/MiraiMain.java | 4 ++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/lamgc/cgj/bot/RankingUpdateTimer.java b/src/main/java/net/lamgc/cgj/bot/RankingUpdateTimer.java index 7c7e0ec..be25202 100644 --- a/src/main/java/net/lamgc/cgj/bot/RankingUpdateTimer.java +++ b/src/main/java/net/lamgc/cgj/bot/RankingUpdateTimer.java @@ -65,8 +65,7 @@ public class RankingUpdateTimer { log.debug("不支持的类型, 填空值跳过...(类型: {}.{})", rankingMode.name(), contentType.name()); } log.info("当前排行榜类型: {}.{}, 正在更新...", rankingMode.name(), contentType.name()); - BotEventHandler.executor.executor( - new VirtualLoadMessageEvent(0,0, + BotEventHandler.executeMessageEvent(new VirtualLoadMessageEvent(0,0, ".cgj ranking -type=" + contentType.name() + " -mode=" + rankingMode.name())); log.info("排行榜 {}.{} 负载指令已投递.", rankingMode.name(), contentType.name()); } diff --git a/src/main/java/net/lamgc/cgj/bot/event/BotEventHandler.java b/src/main/java/net/lamgc/cgj/bot/event/BotEventHandler.java index ec04791..d1ace35 100644 --- a/src/main/java/net/lamgc/cgj/bot/event/BotEventHandler.java +++ b/src/main/java/net/lamgc/cgj/bot/event/BotEventHandler.java @@ -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, Math.max(Runtime.getRuntime().availableProcessors(), 4), Math.max(Math.max(Runtime.getRuntime().availableProcessors() * 2, 4), 32), @@ -125,6 +125,14 @@ public class BotEventHandler implements EventHandler { BotCommandProcess.initialize(); } + /** + * 投递消息事件 + * @param event 事件对象 + */ + public static void executeMessageEvent(MessageEvent event) { + BotEventHandler.executor.executor(event); + } + /** * 以事件形式处理消息事件 * @param event 消息事件对象 diff --git a/src/main/java/net/lamgc/cgj/bot/framework/coolq/CQPluginMain.java b/src/main/java/net/lamgc/cgj/bot/framework/coolq/CQPluginMain.java index 34c34d1..f77a253 100644 --- a/src/main/java/net/lamgc/cgj/bot/framework/coolq/CQPluginMain.java +++ b/src/main/java/net/lamgc/cgj/bot/framework/coolq/CQPluginMain.java @@ -41,7 +41,7 @@ public class CQPluginMain extends CQPlugin implements EventHandler { if(!BotEventHandler.match(event.getMessage())) { return MESSAGE_IGNORE; } - BotEventHandler.executor.executor(new SpringCQMessageEvent(cq, event)); + BotEventHandler.executeMessageEvent(new SpringCQMessageEvent(cq, event)); return MESSAGE_BLOCK; } diff --git a/src/main/java/net/lamgc/cgj/bot/framework/mirai/MiraiMain.java b/src/main/java/net/lamgc/cgj/bot/framework/mirai/MiraiMain.java index c79119c..b43f833 100644 --- a/src/main/java/net/lamgc/cgj/bot/framework/mirai/MiraiMain.java +++ b/src/main/java/net/lamgc/cgj/bot/framework/mirai/MiraiMain.java @@ -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()); - Events.subscribeAlways(GroupMessage.class, (msg) -> BotEventHandler.executor.executor(new MiraiMessageEvent(msg))); - Events.subscribeAlways(FriendMessage.class, (msg) -> BotEventHandler.executor.executor(new MiraiMessageEvent(msg))); + Events.subscribeAlways(GroupMessage.class, (msg) -> BotEventHandler.executeMessageEvent(new MiraiMessageEvent(msg))); + Events.subscribeAlways(FriendMessage.class, (msg) -> BotEventHandler.executeMessageEvent(new MiraiMessageEvent(msg))); bot.login(); MessageSenderBuilder.setCurrentMessageSenderFactory(new MiraiMessageSenderFactory(bot)); BotEventHandler.preLoad();