From cbd10ff2810a43e71d96a9b4fc15b2d344069423 Mon Sep 17 00:00:00 2001 From: LamGC Date: Thu, 7 May 2020 18:24:09 +0800 Subject: [PATCH] =?UTF-8?q?[Fix]=20Issue=20#4=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=9B=A0Mirai=20API=E5=8F=98=E5=8A=A8=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E6=97=A0=E6=B3=95=E4=BB=8E=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E8=8E=B7=E5=8F=96ImageId=E7=9A=84=E9=97=AE=E9=A2=98;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mirai/message/MiraiMessageEvent.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) 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 beae46c..2177eb5 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 @@ -16,7 +16,7 @@ public class MiraiMessageEvent extends MessageEvent { public MiraiMessageEvent(ContactMessage message) { super(message instanceof GroupMessage ? ((GroupMessage) message).getGroup().getId() : 0, - message.getSender().getId(), message.getMessage().contentToString()); + message.getSender().getId(), getMessageBodyWithoutSource(message.getMessage().toString())); this.messageObject = Objects.requireNonNull(message); if(message instanceof GroupMessage) { messageSender = new MiraiMessageSender(((GroupMessage) message).getGroup(), MessageSource.Group); @@ -26,6 +26,19 @@ public class MiraiMessageEvent extends MessageEvent { } + /** + * 将ContactMessage获得的消息内容删除 Mirai:source 并返回. + *

该做法比较保守, 防止Mirai:source位置出现变动.

+ * @param message ContactMessage的消息内容; + * @return 返回删除了Mirai:source的消息 + */ + private static String getMessageBodyWithoutSource(String message) { + StringBuilder builder = new StringBuilder(message); + int startIndex = builder.indexOf("[mirai:source:"); + int endIndex = builder.indexOf("]", startIndex) + 1; + return builder.delete(startIndex, endIndex).toString(); + } + @Override public int sendMessage(final String message) { return messageSender.sendMessage(message);