From ebb3dea99e8407c8be760b1ebf802aa4708186df Mon Sep 17 00:00:00 2001 From: LamGC Date: Fri, 12 Jun 2020 20:13:36 +0800 Subject: [PATCH] =?UTF-8?q?[Change]=20ConsoleMessageEvent,=20ConsoleMessag?= =?UTF-8?q?eSender=20=E5=B0=86=E6=B6=88=E6=81=AF=E4=BC=A0=E9=80=92?= =?UTF-8?q?=E7=BB=99Sender=E5=8F=91=E9=80=81,=20=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=89=8D=E7=BC=80=E6=A0=BC=E5=BC=8F;=20[Chan?= =?UTF-8?q?ge]=20ConsoleMain=20=E8=B0=83=E6=95=B4=E7=A7=81=E8=81=8A?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E4=B8=8B=E7=9A=84=E5=89=8D=E7=BC=80;=20[Chan?= =?UTF-8?q?ge]=20MessageSource=20=E8=A7=84=E8=8C=83=E5=8C=96=E5=91=BD?= =?UTF-8?q?=E5=90=8D;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lamgc/cgj/bot/BotAdminCommandProcess.java | 2 +- .../lamgc/cgj/bot/framework/cli/ConsoleMain.java | 2 +- .../cli/message/ConsoleMessageEvent.java | 16 +++++++++++----- .../cli/message/ConsoleMessageSender.java | 15 ++++++++++++++- .../cli/message/ConsoleMessageSenderFactory.java | 4 +--- .../coolq/message/SpringCQMessageEvent.java | 8 ++++---- .../coolq/message/SpringCQMessageSender.java | 6 +++--- .../mirai/message/MiraiMessageEvent.java | 8 ++++---- .../mirai/message/MiraiMessageSender.java | 2 +- .../net/lamgc/cgj/bot/message/MessageSource.java | 8 ++++---- 10 files changed, 44 insertions(+), 27 deletions(-) diff --git a/src/main/java/net/lamgc/cgj/bot/BotAdminCommandProcess.java b/src/main/java/net/lamgc/cgj/bot/BotAdminCommandProcess.java index 034e855..68b95e3 100644 --- a/src/main/java/net/lamgc/cgj/bot/BotAdminCommandProcess.java +++ b/src/main/java/net/lamgc/cgj/bot/BotAdminCommandProcess.java @@ -270,7 +270,7 @@ public class BotAdminCommandProcess { } AutoSender sender = new RandomRankingArtworksSender( - MessageSenderBuilder.getMessageSender(MessageSource.Group, id), + MessageSenderBuilder.getMessageSender(MessageSource.GROUP, id), id, rankingStart, rankingEnd, diff --git a/src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMain.java b/src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMain.java index d76d39a..d68f4e7 100644 --- a/src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMain.java +++ b/src/main/java/net/lamgc/cgj/bot/framework/cli/ConsoleMain.java @@ -31,7 +31,7 @@ public class ConsoleMain { long groupId = Long.parseLong(lineReader.readLine("会话群组号:")); boolean isGroup = false; do { - String input = lineReader.readLine("App " + qqId + (isGroup ? "@" + groupId : "$private") + " >"); + String input = lineReader.readLine("App " + qqId + (isGroup ? "@" + groupId : "#private") + " >"); if(input.equalsIgnoreCase("#exit")) { System.out.println("退出应用..."); break; diff --git a/src/main/java/net/lamgc/cgj/bot/framework/cli/message/ConsoleMessageEvent.java b/src/main/java/net/lamgc/cgj/bot/framework/cli/message/ConsoleMessageEvent.java index 2ce30db..08698b0 100644 --- a/src/main/java/net/lamgc/cgj/bot/framework/cli/message/ConsoleMessageEvent.java +++ b/src/main/java/net/lamgc/cgj/bot/framework/cli/message/ConsoleMessageEvent.java @@ -1,8 +1,8 @@ package net.lamgc.cgj.bot.framework.cli.message; import net.lamgc.cgj.bot.event.MessageEvent; - -import java.util.Date; +import net.lamgc.cgj.bot.message.MessageSenderBuilder; +import net.lamgc.cgj.bot.message.MessageSource; public class ConsoleMessageEvent extends MessageEvent { @@ -11,9 +11,15 @@ public class ConsoleMessageEvent extends MessageEvent { } @Override - public int sendMessage(String message) { - System.out.println(new Date() + " Bot: " + message); - return 0; + public int sendMessage(String message) throws Exception { + if(getFromGroup() <= 0) { + return MessageSenderBuilder + .getMessageSender(MessageSource.PRIVATE, getFromQQ()).sendMessage(message); + } else { + return MessageSenderBuilder + .getMessageSender(MessageSource.GROUP, getFromQQ()).sendMessage(message); + } + } @Override diff --git a/src/main/java/net/lamgc/cgj/bot/framework/cli/message/ConsoleMessageSender.java b/src/main/java/net/lamgc/cgj/bot/framework/cli/message/ConsoleMessageSender.java index 05a1ed3..e5bcaa1 100644 --- a/src/main/java/net/lamgc/cgj/bot/framework/cli/message/ConsoleMessageSender.java +++ b/src/main/java/net/lamgc/cgj/bot/framework/cli/message/ConsoleMessageSender.java @@ -1,13 +1,26 @@ package net.lamgc.cgj.bot.framework.cli.message; import net.lamgc.cgj.bot.message.MessageSender; +import net.lamgc.cgj.bot.message.MessageSource; +import java.text.SimpleDateFormat; import java.util.Date; public class ConsoleMessageSender implements MessageSender { + + private final static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); + private final MessageSource source; + private final long id; + + ConsoleMessageSender(MessageSource source, long id) { + this.source = source; + this.id = id; + } + @Override public synchronized int sendMessage(String message) { - System.out.println(new Date() + " Bot: " + message); + System.out.println(dateFormat.format(new Date()) + " Bot -> " + + (source == MessageSource.PRIVATE ? "#" : "@") + id + ": " + message); return 0; } } diff --git a/src/main/java/net/lamgc/cgj/bot/framework/cli/message/ConsoleMessageSenderFactory.java b/src/main/java/net/lamgc/cgj/bot/framework/cli/message/ConsoleMessageSenderFactory.java index b88e8c4..c5b8c98 100644 --- a/src/main/java/net/lamgc/cgj/bot/framework/cli/message/ConsoleMessageSenderFactory.java +++ b/src/main/java/net/lamgc/cgj/bot/framework/cli/message/ConsoleMessageSenderFactory.java @@ -6,10 +6,8 @@ import net.lamgc.cgj.bot.message.MessageSource; public class ConsoleMessageSenderFactory implements MessageSenderFactory { - private final static ConsoleMessageSender sender = new ConsoleMessageSender(); - @Override public MessageSender createMessageSender(MessageSource source, long id) { - return sender; + return new ConsoleMessageSender(source, id); } } diff --git a/src/main/java/net/lamgc/cgj/bot/framework/coolq/message/SpringCQMessageEvent.java b/src/main/java/net/lamgc/cgj/bot/framework/coolq/message/SpringCQMessageEvent.java index 6a4b056..d2b1f11 100644 --- a/src/main/java/net/lamgc/cgj/bot/framework/coolq/message/SpringCQMessageEvent.java +++ b/src/main/java/net/lamgc/cgj/bot/framework/coolq/message/SpringCQMessageEvent.java @@ -26,13 +26,13 @@ public class SpringCQMessageEvent extends MessageEvent { this.cq = Objects.requireNonNull(cq); MessageSource source; if(messageEvent instanceof CQGroupMessageEvent) { - source = MessageSource.Group; + source = MessageSource.GROUP; } else if (messageEvent instanceof CQDiscussMessageEvent) { - source = MessageSource.Discuss; + source = MessageSource.DISCUSS; } else { - source = MessageSource.Private; + source = MessageSource.PRIVATE; } - messageSender = new SpringCQMessageSender(cq, source, source == MessageSource.Private ? getFromQQ() : getFromGroup()); + messageSender = new SpringCQMessageSender(cq, source, source == MessageSource.PRIVATE ? getFromQQ() : getFromGroup()); } @Override diff --git a/src/main/java/net/lamgc/cgj/bot/framework/coolq/message/SpringCQMessageSender.java b/src/main/java/net/lamgc/cgj/bot/framework/coolq/message/SpringCQMessageSender.java index abe9214..0ebff9f 100644 --- a/src/main/java/net/lamgc/cgj/bot/framework/coolq/message/SpringCQMessageSender.java +++ b/src/main/java/net/lamgc/cgj/bot/framework/coolq/message/SpringCQMessageSender.java @@ -19,11 +19,11 @@ public class SpringCQMessageSender implements MessageSender { @Override public int sendMessage(String message) { switch (source) { - case Private: + case PRIVATE: return coolQ.sendPrivateMsg(target, message, false).getData().getMessageId(); - case Group: + case GROUP: return coolQ.sendGroupMsg(target, message, false).getData().getMessageId(); - case Discuss: + case DISCUSS: return coolQ.sendDiscussMsg(target, message, false).getData().getMessageId(); default: return -1; diff --git a/src/main/java/net/lamgc/cgj/bot/framework/mirai/message/MiraiMessageEvent.java b/src/main/java/net/lamgc/cgj/bot/framework/mirai/message/MiraiMessageEvent.java index 3ff4c1c..8067edf 100644 --- a/src/main/java/net/lamgc/cgj/bot/framework/mirai/message/MiraiMessageEvent.java +++ b/src/main/java/net/lamgc/cgj/bot/framework/mirai/message/MiraiMessageEvent.java @@ -28,9 +28,9 @@ public class MiraiMessageEvent extends net.lamgc.cgj.bot.event.MessageEvent { message.getSender().getId(), getMessageBodyWithoutSource(message.getMessage().toString())); this.messageObject = Objects.requireNonNull(message); if(message instanceof GroupMessageEvent) { - messageSender = new MiraiMessageSender(((GroupMessageEvent) message).getGroup(), MessageSource.Group); + messageSender = new MiraiMessageSender(((GroupMessageEvent) message).getGroup(), MessageSource.GROUP); } else { - messageSender = new MiraiMessageSender(message.getSender(), MessageSource.Private); + messageSender = new MiraiMessageSender(message.getSender(), MessageSource.PRIVATE); } } @@ -45,9 +45,9 @@ public class MiraiMessageEvent extends net.lamgc.cgj.bot.event.MessageEvent { super(groupId, qqId, getMessageBodyWithoutSource(message.toString())); this.messageObject = Objects.requireNonNull(messageObject, "messageObject is null"); if(groupId != 0) { - this.messageSender = new MiraiMessageSender(((GroupMessageEvent) messageObject).getGroup(), MessageSource.Group); + this.messageSender = new MiraiMessageSender(((GroupMessageEvent) messageObject).getGroup(), MessageSource.GROUP); } else { - this.messageSender = new MiraiMessageSender(messageObject.getSender(), MessageSource.Group); + this.messageSender = new MiraiMessageSender(messageObject.getSender(), MessageSource.GROUP); } } diff --git a/src/main/java/net/lamgc/cgj/bot/framework/mirai/message/MiraiMessageSender.java b/src/main/java/net/lamgc/cgj/bot/framework/mirai/message/MiraiMessageSender.java index f53884b..35537d5 100644 --- a/src/main/java/net/lamgc/cgj/bot/framework/mirai/message/MiraiMessageSender.java +++ b/src/main/java/net/lamgc/cgj/bot/framework/mirai/message/MiraiMessageSender.java @@ -40,7 +40,7 @@ public class MiraiMessageSender implements MessageSender { * @throws NoSuchElementException 当在机器人好友列表或群列表里没有这个好友或群的时候抛出 */ public MiraiMessageSender(Bot bot, MessageSource source, long id) { - this(source == MessageSource.Private ? bot.getFriend(id) : bot.getGroup(id), source); + this(source == MessageSource.PRIVATE ? bot.getFriend(id) : bot.getGroup(id), source); } /** diff --git a/src/main/java/net/lamgc/cgj/bot/message/MessageSource.java b/src/main/java/net/lamgc/cgj/bot/message/MessageSource.java index 4beb53f..d491d70 100644 --- a/src/main/java/net/lamgc/cgj/bot/message/MessageSource.java +++ b/src/main/java/net/lamgc/cgj/bot/message/MessageSource.java @@ -7,17 +7,17 @@ public enum MessageSource { /** * 私聊消息 */ - Private, + PRIVATE, /** * 群组消息 */ - Group, + GROUP, /** * 讨论组消息 */ - Discuss, + DISCUSS, /** * 未知来源 */ - Unknown + UNKNOWN } \ No newline at end of file