From e4e7771d4d2f4db36ded785e05a6fdaf028bd135 Mon Sep 17 00:00:00 2001 From: LamGC Date: Tue, 31 Mar 2020 10:56:08 +0800 Subject: [PATCH] =?UTF-8?q?[Fix]=20=E4=BF=AE=E5=A4=8D=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E5=8F=8C=E5=BC=95=E5=8F=B7=E5=BC=95=E7=94=A8=E7=9A=84=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E5=80=BC=E6=B2=A1=E6=9C=89=E8=BF=87=E6=BB=A4=E5=8F=8C?= =?UTF-8?q?=E5=BC=95=E5=8F=B7=E7=9A=84bug;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/net/lamgc/cgj/CQPluginMain.java | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/lamgc/cgj/CQPluginMain.java b/src/main/java/net/lamgc/cgj/CQPluginMain.java index e85afd0..2851e7b 100644 --- a/src/main/java/net/lamgc/cgj/CQPluginMain.java +++ b/src/main/java/net/lamgc/cgj/CQPluginMain.java @@ -85,10 +85,26 @@ public class CQPluginMain extends CQPlugin { Matcher matcher = pattern.matcher(Strings.nullToEmpty(msg)); ArrayList argsList = new ArrayList<>(); while (matcher.find()) { - argsList.add(matcher.group()); + String arg = matcher.group(); + int startIndex = 0; + int endIndex = arg.length(); + if(arg.startsWith("\"")) { + while(arg.indexOf("\"") == startIndex) { + startIndex++; + } + } + + if(arg.endsWith("\"")) { + while(arg.lastIndexOf("\"") == endIndex - 1) { + endIndex--; + } + } + + argsList.add(arg.substring(startIndex, endIndex)); } String[] args = new String[argsList.size()]; argsList.toArray(args); + log.debug("传入参数: {}", Arrays.toString(args)); log.warn("正在处理命令..."); long time = System.currentTimeMillis(); @@ -115,7 +131,11 @@ public class CQPluginMain extends CQPlugin { } log.warn("命令处理完成(耗时: {}ms)", System.currentTimeMillis() - time); if(Objects.requireNonNull(result) instanceof String) { - sendMessage(cq, event, (String) result, false); + try { + sendMessage(cq, event, (String) result, false); + } catch (Throwable e) { + log.error("发送消息时发生异常", e); + } } return MESSAGE_BLOCK; }