From f5140a7a1ea1d1661f4f260b5879132d5cab34e9 Mon Sep 17 00:00:00 2001 From: LamGC Date: Mon, 1 Jun 2020 20:15:59 +0800 Subject: [PATCH] =?UTF-8?q?[Change]=20SpringCQMessageSenderFactory=20?= =?UTF-8?q?=E5=B0=9D=E8=AF=95=E9=80=9A=E8=BF=87ThreadLocal=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=BD=93=E5=89=8D=E5=A4=84=E7=90=86=E7=9A=84CoolQ?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1,=20=E7=9B=AE=E5=89=8DEventExecutor=E6=9A=82?= =?UTF-8?q?=E4=B8=8D=E6=94=AF=E6=8C=81,=20=E4=BB=85=E9=A2=84=E7=95=99;=20[?= =?UTF-8?q?Change]=20CQPluginMain=20=E8=B0=83=E6=95=B4'processMessage'?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E4=BF=AE=E9=A5=B0=E7=AC=A6,=20=E8=A1=A5?= =?UTF-8?q?=E5=85=85Javadoc;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lamgc/cgj/bot/framework/coolq/CQPluginMain.java | 9 ++++++++- .../coolq/message/SpringCQMessageSenderFactory.java | 12 +++++------- 2 files changed, 13 insertions(+), 8 deletions(-) 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 fe5449d..c35ff64 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 @@ -17,6 +17,7 @@ public class CQPluginMain extends CQPlugin implements EventHandler { public CQPluginMain() { // TODO(LamGC, 2020.04.21): SpringCQ无法适配MessageSenderBuilder + // MessageSenderBuilder.setCurrentMessageSenderFactory(new SpringCQMessageSenderFactory()); BotEventHandler.preLoad(); LoggerFactory.getLogger(CQPluginMain.class.getName()) .info("BotEventHandler.COMMAND_PREFIX = {}", BotEventHandler.COMMAND_PREFIX); @@ -37,7 +38,13 @@ public class CQPluginMain extends CQPlugin implements EventHandler { return processMessage(cq, event); } - public int processMessage(CoolQ cq, CQMessageEvent event) { + /** + * 处理消息 + * @param cq CoolQ机器人对象 + * @param event 消息事件 + * @return 是否拦截消息 + */ + private static int processMessage(CoolQ cq, CQMessageEvent event) { if(!BotEventHandler.match(event.getMessage())) { return MESSAGE_IGNORE; } diff --git a/src/main/java/net/lamgc/cgj/bot/framework/coolq/message/SpringCQMessageSenderFactory.java b/src/main/java/net/lamgc/cgj/bot/framework/coolq/message/SpringCQMessageSenderFactory.java index af02139..ac8ee1e 100644 --- a/src/main/java/net/lamgc/cgj/bot/framework/coolq/message/SpringCQMessageSenderFactory.java +++ b/src/main/java/net/lamgc/cgj/bot/framework/coolq/message/SpringCQMessageSenderFactory.java @@ -5,16 +5,14 @@ import net.lamgc.cgj.bot.message.MessageSenderFactory; import net.lamgc.cgj.bot.message.MessageSource; import net.lz1998.cq.robot.CoolQ; +import java.util.Objects; + public class SpringCQMessageSenderFactory implements MessageSenderFactory { - private final CoolQ coolQ; - - public SpringCQMessageSenderFactory(CoolQ coolQ) { - this.coolQ = coolQ; - } - + private final static ThreadLocal threadCoolQ = new ThreadLocal<>(); @Override public MessageSender createMessageSender(MessageSource source, long id) { - return new SpringCQMessageSender(coolQ, source, id); + return new SpringCQMessageSender( + Objects.requireNonNull(threadCoolQ.get(), "CoolQ object is not included in ThreadLocal"), source, id); } }