From 3d814547f045a3abf0c8e26752d483c3fd403edc Mon Sep 17 00:00:00 2001 From: slhaf <2998813882@qq.com> Date: Sun, 27 Oct 2024 12:49:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86clear=E6=8C=87?= =?UTF-8?q?=E4=BB=A4=E4=B8=8D=E8=83=BD=E6=AD=A3=E7=A1=AE=E6=B8=85=E9=99=A4?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E8=AE=B0=E5=BD=95=E7=9A=84bug=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E4=BA=86=E6=88=AA=E5=8F=96=E6=B6=88=E6=81=AF=E6=97=B6?= =?UTF-8?q?=E5=87=BA=E7=8E=B0=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle.kts | 2 +- settings.gradle.kts | 2 +- src/main/java/plugin/App.java | 8 ++++---- .../java/plugin/listener/FriendMessageListener.java | 2 +- .../java/plugin/listener/GroupMessageListener.java | 2 +- src/main/java/plugin/utils/AIUtil.java | 13 ++++++++----- src/main/java/plugin/utils/ConfigUtil.java | 5 ++--- src/test/java/MyTest.java | 9 +++++---- 8 files changed, 23 insertions(+), 20 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 89e07b2..0300dd2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -19,7 +19,7 @@ dependencies{ implementation ("org.apache.logging.log4j:log4j-core:2.23.1") implementation ("org.apache.logging.log4j:log4j-api:2.23.1") implementation("top.mrxiaom.mirai:overflow-core:0.9.9.515-f8d867b-SNAPSHOT") - + implementation ("com.alibaba:fastjson:1.2.73") } diff --git a/settings.gradle.kts b/settings.gradle.kts index a8b1124..755277f 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -4,4 +4,4 @@ pluginManagement { gradlePluginPortal() } } -rootProject.name = "ChatAI-InGroup-v2" \ No newline at end of file +rootProject.name = "ChatAI-InGroup" \ No newline at end of file diff --git a/src/main/java/plugin/App.java b/src/main/java/plugin/App.java index 1290808..aba3359 100644 --- a/src/main/java/plugin/App.java +++ b/src/main/java/plugin/App.java @@ -25,8 +25,8 @@ public final class App extends JavaPlugin { public static final App INSTANCE = new App(); private App() { - super(new JvmPluginDescriptionBuilder("com.plugin.chatAI-InGroup-v2", "0.1.0") - .name("ChatAI-InGroup-v2") + super(new JvmPluginDescriptionBuilder("com.plugin.chatAI-InGroup", "0.1.0") + .name("ChatAI-InGroup") .author("SLHAF") .build()); } @@ -49,7 +49,7 @@ public final class App extends JavaPlugin { } catch (IOException | ClassNotFoundException | InterruptedException e) { throw new RuntimeException(e); } - getLogger().info("ChatAI-InGroup-v2 loaded!"); + getLogger().info("ChatAI-InGroup loaded!"); //群聊监听器 GlobalEventChannel.INSTANCE.filterIsInstance(GroupMessageEvent.class) @@ -115,6 +115,6 @@ public final class App extends JavaPlugin { @Override public void onDisable() { - getLogger().info("ChatAI-InGroup-v2 disabled!"); + getLogger().info("ChatAI-InGroup disabled!"); } } \ No newline at end of file diff --git a/src/main/java/plugin/listener/FriendMessageListener.java b/src/main/java/plugin/listener/FriendMessageListener.java index 2eca99c..55bb592 100644 --- a/src/main/java/plugin/listener/FriendMessageListener.java +++ b/src/main/java/plugin/listener/FriendMessageListener.java @@ -43,7 +43,7 @@ public class FriendMessageListener extends SimpleListenerHost { String[] split = content.split(ChatConstant.BLANK); chatCommand = split[0] + ChatConstant.BLANK; method = MethodsConstant.CUSTOM; - content = split[1]; + content = content.substring((content.split(ChatConstant.BLANK)[0]+ChatConstant.BLANK).length()); } else if (content.startsWith(ChatConstant.ONCE_MESSAGE_START)) { content = content.substring(1); method = MethodsConstant.ONCE; diff --git a/src/main/java/plugin/listener/GroupMessageListener.java b/src/main/java/plugin/listener/GroupMessageListener.java index 0231182..e4a87a7 100644 --- a/src/main/java/plugin/listener/GroupMessageListener.java +++ b/src/main/java/plugin/listener/GroupMessageListener.java @@ -71,7 +71,7 @@ public class GroupMessageListener extends SimpleListenerHost { String[] split = content.split(ChatConstant.BLANK); chatCommand = split[0] + ChatConstant.BLANK; method = MethodsConstant.CUSTOM; - content = split[1]; + content = content.substring(chatCommand.length()); } //消息内容处理 if (content.isBlank()) { diff --git a/src/main/java/plugin/utils/AIUtil.java b/src/main/java/plugin/utils/AIUtil.java index b62dc05..c4833d1 100644 --- a/src/main/java/plugin/utils/AIUtil.java +++ b/src/main/java/plugin/utils/AIUtil.java @@ -107,11 +107,14 @@ public class AIUtil { if (!userCustomMessages.containsKey(id)) { return "不存在消息记录"; } - for (UserCustomMessage userCustomMessage : userCustomMessages.get(id)) { - if (userCustomMessage.getCommand().equals(chatCommand)) { - userCustomMessage.getMessages().clear(); + ArrayList indexToRemove = new ArrayList<>(); + List userCustomMessageList = userCustomMessages.get(id); + for (int i = 0; i < userCustomMessageList.size(); i++) { + if (userCustomMessageList.get(i).getCommand().equals(chatCommand)) { + indexToRemove.add(i); } } + indexToRemove.forEach(i -> userCustomMessageList.remove(i.intValue())); return "消息记录已清空"; } else if (AIConstant.CURRENT_MODEL.equals(content.replace(ChatConstant.BLANK, ""))) { String modelName = customCommands.get(chatCommand).split(ConfigConstant.CUSTOM_SPLIT)[0]; @@ -173,8 +176,8 @@ public class AIUtil { if (!userDefaultMessages.containsKey(id)) { //创建消息list List chatMessages = new ArrayList<>(); - if (customCommands.containsKey(ConfigConstant.DEFAULT) && !ConfigConstant.NULL.equals(customCommands.get(ConfigConstant.DEFAULT))) { - ChatMessage customMessage = new ChatMessage(ChatMessageRole.SYSTEM.value(), customCommands.get(ConfigConstant.DEFAULT)); + if (customCommands.containsKey(ConfigConstant.DEFAULT+ChatConstant.BLANK) && !ConfigConstant.NULL.equals(customCommands.get(ConfigConstant.DEFAULT+ChatConstant.BLANK))) { + ChatMessage customMessage = new ChatMessage(ChatMessageRole.SYSTEM.value(), customCommands.get(ConfigConstant.DEFAULT+ChatConstant.BLANK)); chatMessages.add(customMessage); } userDefaultMessages.put(id, chatMessages); diff --git a/src/main/java/plugin/utils/ConfigUtil.java b/src/main/java/plugin/utils/ConfigUtil.java index 784f3ef..a683853 100644 --- a/src/main/java/plugin/utils/ConfigUtil.java +++ b/src/main/java/plugin/utils/ConfigUtil.java @@ -6,7 +6,6 @@ import net.mamoe.mirai.utils.MiraiLogger; import org.slf4j.Logger; import org.yaml.snakeyaml.DumperOptions; import org.yaml.snakeyaml.Yaml; -import plugin.constant.AIConstant; import plugin.constant.ChatConstant; import plugin.constant.ConfigConstant; import plugin.pojo.Config; @@ -98,7 +97,7 @@ public class ConfigUtil { if (!customCommands.containsKey(instruction)) { return "该预设不存在!"; } - if (ConfigConstant.DEFAULT.equals(instruction)){ + if ((ConfigConstant.DEFAULT+ChatConstant.BLANK).equals(instruction)){ config.setDefaultModel(customModel); dump(); return "模型切换成功: [defaultModel -> "+config.getDefaultModel()+"]"; @@ -171,7 +170,7 @@ public class ConfigUtil { if (!customCommands.containsKey(instruction)) { return "该指令不存在!"; } - if (ConfigConstant.DEFAULT.equals(instruction)) { + if ((ConfigConstant.DEFAULT+ChatConstant.BLANK).equals(instruction)) { customCommands.put(instruction, customContent); }else { String modelName = customCommands.get(instruction).split(ConfigConstant.CUSTOM_SPLIT)[0]; diff --git a/src/test/java/MyTest.java b/src/test/java/MyTest.java index e74a383..d2bc1b6 100644 --- a/src/test/java/MyTest.java +++ b/src/test/java/MyTest.java @@ -23,6 +23,7 @@ import plugin.utils.ConfigUtil; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.util.Scanner; import static kotlin.io.ConsoleKt.readln; @@ -55,7 +56,7 @@ public class MyTest { HttpPost httpPost = new HttpPost("https://open.bigmodel.cn/api/paas/v4/assistant"); httpPost.setHeaders(new Header[]{ new BasicHeader("content-type", "application/json"), - new BasicHeader("authorization", "") + new BasicHeader("authorization", "f638f59b6b5961bbcd685c85caa0e7e7.Uz5nTEQS2X8LXcxF") }); JSONObject jsonObject = new JSONObject(); @@ -181,10 +182,10 @@ public class MyTest { @Test public void terminalTest() throws InterruptedException { - MiraiConsoleTerminalLoader.INSTANCE.startAsDaemon(new MiraiConsoleImplementationTerminal()); + MiraiConsoleImplementationTerminal terminal = new MiraiConsoleImplementationTerminal(); + MiraiConsoleTerminalLoader.INSTANCE.startAsDaemon(terminal); PluginManager.INSTANCE.loadPlugin(App.INSTANCE); PluginManager.INSTANCE.enablePlugin(App.INSTANCE); - while (true); + new Scanner(System.in).nextLine(); } - }