From 2a82d732e52bde3deda1b596e51e283e39c30252 Mon Sep 17 00:00:00 2001 From: 95478 <954787484@qq.com> Date: Thu, 26 Sep 2024 22:46:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E6=9C=BA=E5=99=A8?= =?UTF-8?q?=E4=BA=BA=E5=8A=A0=E8=A7=A3=E5=AF=86=E5=8A=9F=E8=83=BD=EF=BC=8C?= =?UTF-8?q?=E5=9F=BA=E4=BA=8E=E7=BB=B4=E5=90=89=E5=B0=BC=E4=BA=9A=E7=AE=97?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- robot-data/cache/account.secrets | Bin 3568 -> 3624 bytes robot-data/cache/servers.json | 44 ++++++------ robot-data/cache/session.bin | 2 +- .../mtz/qqbot/Controller/listController.java | 1 + .../qqbot/Listener/HandleMessageListener.java | 7 ++ .../qqbot/Listener/RecallMessageListener.java | 2 +- .../qqbot/Listener/sendByConsoleListener.java | 5 +- .../mtz/qqbot/Listener/vDecryptListener.java | 34 +++++++++ .../mtz/qqbot/Listener/vEncryptListener.java | 35 +++++++++ .../java/com/mtz/qqbot/Service/vService.java | 68 ++++++++++++++++++ src/main/java/com/mtz/qqbot/Tool/vTools.java | 41 +++++++++++ src/main/resources/application.yml | 4 +- 12 files changed, 215 insertions(+), 28 deletions(-) create mode 100644 src/main/java/com/mtz/qqbot/Listener/vDecryptListener.java create mode 100644 src/main/java/com/mtz/qqbot/Listener/vEncryptListener.java create mode 100644 src/main/java/com/mtz/qqbot/Service/vService.java create mode 100644 src/main/java/com/mtz/qqbot/Tool/vTools.java diff --git a/robot-data/cache/account.secrets b/robot-data/cache/account.secrets index 30e38cc4990c1d3648265833fb66be8b6da316bf..7ae11eb9b3a05f8e54cdfe3fa0c03e2c7578484b 100644 GIT binary patch literal 3624 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֐*90;كձDC#j 2[eO& )Q)dmtWkf9fgTW67wH4 ڙ?? P " Π" "܅ۓ" ˔ \ No newline at end of file diff --git a/src/main/java/com/mtz/qqbot/Controller/listController.java b/src/main/java/com/mtz/qqbot/Controller/listController.java index 0727f50..2b89563 100644 --- a/src/main/java/com/mtz/qqbot/Controller/listController.java +++ b/src/main/java/com/mtz/qqbot/Controller/listController.java @@ -15,6 +15,7 @@ public class listController { return "今日好友消息:[" + HandleMessageListener.friendMessageCount + "]条
" + "今日群聊1消息:[" + HandleMessageListener.group1MessageCount + "]条
" + "今日群聊2消息:[" + HandleMessageListener.group2MessageCount + "]条
" + + "牢豆年糕汤消息:[" + HandleMessageListener.group3MessageCount + "]条
" + "今日收到的群聊临时会话消息:[" + HandleMessageListener.groupTempMessageCount + "]条

" + "今日群聊1违禁消息:[" + RecallMessageListener.group1InvalidCount + "]条
" + "今日群聊2违禁消息:[" + RecallMessageListener.group2InvalidCount + "]条
" + diff --git a/src/main/java/com/mtz/qqbot/Listener/HandleMessageListener.java b/src/main/java/com/mtz/qqbot/Listener/HandleMessageListener.java index 9cd965e..9499ee1 100644 --- a/src/main/java/com/mtz/qqbot/Listener/HandleMessageListener.java +++ b/src/main/java/com/mtz/qqbot/Listener/HandleMessageListener.java @@ -11,6 +11,7 @@ public class HandleMessageListener { public static int friendMessageCount = 0; public static int group1MessageCount = 0; public static int group2MessageCount = 0; + public static int group3MessageCount = 0; public static int groupTempMessageCount = 0; @@ -38,6 +39,12 @@ public class HandleMessageListener { group2MessageCount++; } + @RobotListenerHandler(contactId = 850111709) + public void handleGroupLAODOUMessage(GroupMessageEvent event) { + handleGroupMessage(event); + group3MessageCount++; + } + @RobotListenerHandler public void handleGroupTempMessage(GroupTempMessageEvent event) { String message = event.getMessage().contentToString(); diff --git a/src/main/java/com/mtz/qqbot/Listener/RecallMessageListener.java b/src/main/java/com/mtz/qqbot/Listener/RecallMessageListener.java index 91a6548..9d1215a 100644 --- a/src/main/java/com/mtz/qqbot/Listener/RecallMessageListener.java +++ b/src/main/java/com/mtz/qqbot/Listener/RecallMessageListener.java @@ -22,7 +22,7 @@ public class RecallMessageListener extends MessageListener { public static List group2InvalidMember = new ArrayList(); public RecallMessageListener() { - super(List.of("原神", "OP"), true);//自定义违禁词 + super(List.of("原神"), true);//自定义违禁词 } public int recall(GroupMessageEvent event, int groupInvalidCount, Map groupMemberInvalidedCountList, List groupInvalidMember) throws InterruptedException {//当有人发违禁词自动撤回并禁言一分钟 diff --git a/src/main/java/com/mtz/qqbot/Listener/sendByConsoleListener.java b/src/main/java/com/mtz/qqbot/Listener/sendByConsoleListener.java index d692710..390d8be 100644 --- a/src/main/java/com/mtz/qqbot/Listener/sendByConsoleListener.java +++ b/src/main/java/com/mtz/qqbot/Listener/sendByConsoleListener.java @@ -27,7 +27,7 @@ public class sendByConsoleListener extends MessageListener { System.out.println("机器人发送:" + str); } - @RobotListenerHandler(contactId = {518909220, 1033597003}, concurrency = true)//当有人消息中带有“呼叫bot”时,可以从控制台输入一条消息发送 + @RobotListenerHandler(concurrency = true)//当有人消息中带有“呼叫管理”时,可以从控制台输入一条消息发送 public void sendMessageToGroup(GroupMessageEvent event) { String message = event.getMessage().contentToString(); if (this.invalidText(message)) { @@ -35,7 +35,8 @@ public class sendByConsoleListener extends MessageListener { String str = input.nextLine(); MessageChain chain = new MessageChainBuilder() .append(new At(event.getSender().getId())) - .append(" " + str) + .append(" ") + .append(str) .build(); event.getGroup().sendMessage(chain); System.out.println("机器人发送:" + chain); diff --git a/src/main/java/com/mtz/qqbot/Listener/vDecryptListener.java b/src/main/java/com/mtz/qqbot/Listener/vDecryptListener.java new file mode 100644 index 0000000..78dda18 --- /dev/null +++ b/src/main/java/com/mtz/qqbot/Listener/vDecryptListener.java @@ -0,0 +1,34 @@ +package com.mtz.qqbot.Listener; + +import com.mtz.qqbot.Service.vService; +import net.itbaima.robot.event.RobotListener; +import net.itbaima.robot.event.RobotListenerHandler; +import net.itbaima.robot.listener.MessageListener; +import net.mamoe.mirai.event.events.GroupMessageEvent; +import net.mamoe.mirai.message.data.At; +import net.mamoe.mirai.message.data.MessageChain; +import net.mamoe.mirai.message.data.MessageChainBuilder; + +import java.util.List; + +@RobotListener +public class vDecryptListener extends MessageListener { + public vDecryptListener() { + super(List.of("解密"), true); + } + + @RobotListenerHandler + public void decrypt(GroupMessageEvent event) { + String message = event.getMessage().contentToString(); + if (this.invalidText(message)) { + String[] originMessage = message.split(" "); + String plaintext = String.valueOf(vService.Decrypt(originMessage)); + MessageChain chain = new MessageChainBuilder() + .append(new At(event.getSender().getId())) + .append(" ") + .append(plaintext) + .build(); + event.getGroup().sendMessage(chain); + } + } +} diff --git a/src/main/java/com/mtz/qqbot/Listener/vEncryptListener.java b/src/main/java/com/mtz/qqbot/Listener/vEncryptListener.java new file mode 100644 index 0000000..cc9ebc9 --- /dev/null +++ b/src/main/java/com/mtz/qqbot/Listener/vEncryptListener.java @@ -0,0 +1,35 @@ +package com.mtz.qqbot.Listener; + +import com.mtz.qqbot.Service.vService; +import net.itbaima.robot.event.RobotListener; +import net.itbaima.robot.event.RobotListenerHandler; +import net.itbaima.robot.listener.MessageListener; +import net.mamoe.mirai.event.events.GroupMessageEvent; +import net.mamoe.mirai.message.data.At; +import net.mamoe.mirai.message.data.MessageChain; +import net.mamoe.mirai.message.data.MessageChainBuilder; + +import java.io.IOException; +import java.util.List; + +@RobotListener +public class vEncryptListener extends MessageListener { + public vEncryptListener() { + super(List.of("加密"), true); + } + + @RobotListenerHandler + public void encrypt(GroupMessageEvent event) throws IOException { + String message = event.getMessage().contentToString(); + if (this.invalidText(message)) { + String[] originMessage = message.split(" "); + String ciphertext = String.valueOf(vService.Encrypt(originMessage)); + MessageChain chain = new MessageChainBuilder() + .append(new At(event.getSender().getId())) + .append(" ") + .append(ciphertext) + .build(); + event.getGroup().sendMessage(chain); + } + } +} diff --git a/src/main/java/com/mtz/qqbot/Service/vService.java b/src/main/java/com/mtz/qqbot/Service/vService.java new file mode 100644 index 0000000..4e5837d --- /dev/null +++ b/src/main/java/com/mtz/qqbot/Service/vService.java @@ -0,0 +1,68 @@ +package com.mtz.qqbot.Service; + +import com.mtz.qqbot.Tool.vTools; + +import java.io.IOException; +import java.util.ArrayList; + +import static com.mtz.qqbot.Tool.vTools.alphabet; + +public class vService { + public static StringBuilder Encrypt(String[] originMessage) throws IOException { + //加密 + String passwd = originMessage[2]; + char[] passwd1 = passwd.toCharArray(); + ArrayList passwdList = vTools.Transform(passwd1); + //System.out.println("密钥转换为密钥数字串为:" + passwdList); + + String plaintext = originMessage[1]; + char[] plaintext1 = plaintext.toCharArray(); + ArrayList plaintextList = vTools.Transform(plaintext1); + //System.out.println("明文转换为明文数字串为" + plaintextList); + + vTools.Longer(passwdList, plaintextList); + //System.out.println("增加后的密钥数字串:" + passwdList); + + //输出密文 + StringBuilder ciphertext = new StringBuilder(); + for (int i = 0; i < plaintextList.size(); i++) { + if ((plaintextList.get(i) + passwdList.get(i)) >= alphabet.length) { + plaintextList.set(i, (passwdList.get(i) + plaintextList.get(i) - alphabet.length)); + } else { + plaintextList.set(i, (passwdList.get(i) + plaintextList.get(i))); + } + ciphertext.append(alphabet[plaintextList.get(i)]); + } + return ciphertext; + } + + public static StringBuilder Decrypt(String[] originMessage) { + //解密 + String passwd = originMessage[2]; + char[] passwd1 = passwd.toCharArray(); + ArrayList passwdList = vTools.Transform(passwd1); + + String ciphertext = originMessage[1]; + char[] ciphertext1 = ciphertext.toCharArray(); + ArrayList ciphertextList = vTools.Transform(ciphertext1); + //System.out.println("密文转换为密文数字串为" + ciphertextList); + + vTools.Longer(passwdList, ciphertextList); + //System.out.println("增加后的密钥数字串:" + passwdList); + + //输出明文 + StringBuilder plaintext = new StringBuilder(); + for (int i = 0; i < ciphertextList.size(); i++) { + if ((ciphertextList.get(i) - passwdList.get(i)) < 0) { + ciphertextList.set(i, ciphertextList.get(i) - passwdList.get(i) + alphabet.length); + } else { + ciphertextList.set(i, ciphertextList.get(i) - passwdList.get(i)); + } + plaintext.append(alphabet[ciphertextList.get(i)]); + } + return plaintext; + } + + +} + diff --git a/src/main/java/com/mtz/qqbot/Tool/vTools.java b/src/main/java/com/mtz/qqbot/Tool/vTools.java new file mode 100644 index 0000000..7c47d18 --- /dev/null +++ b/src/main/java/com/mtz/qqbot/Tool/vTools.java @@ -0,0 +1,41 @@ +package com.mtz.qqbot.Tool; + +import java.util.ArrayList; +import java.util.Scanner; + +public class vTools { + //字符表 + public static char[] alphabet = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', '/', '.', '-', '_', '?', '=', '&', '%'}; + + public static ArrayList Transform(char[] text) { + ArrayList list = new ArrayList<>(); + for (char c : text) { + for (int j = 0; j < alphabet.length; j++) { + if (c == alphabet[j]) { + list.add(j); + } + } + } + return list; + } + + public static void Longer(ArrayList passwdList, ArrayList list) { + int i = 0; + while (passwdList.size() < list.size()) { + passwdList.add(passwdList.get(i)); + i++; + } + } + + public static int Input() { + //防止玩家输入其他字符的输入数字方法 + Scanner scanner = new Scanner(System.in); + if (scanner.hasNextInt()) { + return scanner.nextInt(); + } else { + System.out.println("请输入数字!"); + System.out.print("请输入:"); + return Input(); + } + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index e14d39f..6fd71ab 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -6,13 +6,13 @@ itbaima: password: mtzmtq2002 signer: - version: 8.9.71 + version: 8.9.63 url: http://localhost:8888 type: fuqiuluo authorization-key: 114514 data: - contact-cache: true + contact-cache: false work-dir: robot-data cache-dir: cache