From c6c119da39efa3eeb88fc5276e474fa9eac6e923 Mon Sep 17 00:00:00 2001 From: Wzp-2008 Date: Tue, 4 Feb 2025 14:01:07 +0800 Subject: [PATCH] fix: fix cannot use escape char to be the command prefix --- .../java/cn/wzpmc/builtin/event/CommandEventHandler.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/cn/wzpmc/builtin/event/CommandEventHandler.java b/src/main/java/cn/wzpmc/builtin/event/CommandEventHandler.java index e18334e..0507ee8 100644 --- a/src/main/java/cn/wzpmc/builtin/event/CommandEventHandler.java +++ b/src/main/java/cn/wzpmc/builtin/event/CommandEventHandler.java @@ -29,10 +29,11 @@ public class CommandEventHandler { String commandPrefix = instance.getConfiguration().getCommandPrefix(); Long id = instance.getId(); String message = event.getRawMessage().getMessage(); - Pattern compile = Pattern.compile("\\[CQ:at,qq=" + id + ".*?]\\s*?" + commandPrefix + ".*"); + String quotedPrefix = Pattern.quote(commandPrefix); + Pattern compile = Pattern.compile("\\[CQ:at,qq=" + id + ".*?]\\s*?" + quotedPrefix + ".*"); if (compile.asMatchPredicate().test(message)) { CommandManager commandManager = (CommandManager) instance.getCommandManager(); - String commandRaw = message.replaceFirst("\\[CQ:at,qq=[0-9]{10}.*?]\\s*?" + commandPrefix, ""); + String commandRaw = message.replaceFirst("\\[CQ:at,qq=[0-9]{10}.*?]\\s*?" + quotedPrefix, ""); log.info("群{}中的用户{}使用了指令{}", groupCommandSender.getGroupId(), groupCommandSender.getId(), commandRaw); commandManager.execute(groupCommandSender, commandRaw); }