Compare commits

..
11 Commits
Author SHA1 Message Date
Mensc 2a82d732e5 增加了机器人加解密功能,基于维吉尼亚算法 2024-09-26 22:46:58 +08:00
Mensc 6b55ac4da0 修复了只要发消息违禁次数就会增加的bug 2024-06-27 14:18:45 +08:00
Mensc ba1ee68a1c 开发第一阶段完毕 2024-06-26 20:50:25 +08:00
Mensc ae638dab22 开发第一阶段完毕 2024-06-26 09:04:47 +08:00
Mensc 48062bccc8 开发第一阶段完毕 2024-06-26 08:00:07 +08:00
Mensc 5b600fec81 开发第一阶段完毕 2024-06-25 23:55:46 +08:00
Mensc f1659ad67e 开发第一阶段完毕 2024-06-25 23:43:46 +08:00
Mensc 54a332a314 开发第一阶段完毕 2024-06-25 23:39:39 +08:00
Mensc 61aa8ec17a 开发第一阶段完毕 2024-06-25 16:38:10 +08:00
Mensc 6d20df478d 开发第一阶段完毕 2024-06-25 16:01:22 +08:00
Mensc f594a6e27d 开发第一阶段完毕 2024-06-25 16:00:58 +08:00
26 changed files with 643 additions and 421 deletions
+4
View File
@@ -0,0 +1,4 @@
FROM openjdk:17-jdk-alpine
ADD ./target/qq-bot-0.0.1-SNAPSHOT.jar /app/qq-bot.jar
CMD ["java", "-jar", "app/qq-bot.jar"]
EXPOSE 8080
+46 -13
View File
@@ -9,13 +9,14 @@
<relativePath/> <!-- lookup parent from repository --> <relativePath/> <!-- lookup parent from repository -->
</parent> </parent>
<groupId>com.mtz</groupId> <groupId>com.mtz</groupId>
<artifactId>QQ-Bot</artifactId> <artifactId>qq-bot</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<name>QQ-Bot</name> <name>qq-bot</name>
<description>QQ-Bot</description> <description>qq-bot</description>
<properties> <properties>
<java.version>17</java.version> <java.version>17</java.version>
<spring-boot.version>2.6.13</spring-boot.version> <spring-boot.version>2.6.13</spring-boot.version>
<docker.image.prefix>localhost:5000</docker.image.prefix>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
@@ -37,15 +38,19 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId> <artifactId>spring-boot-starter-actuator</artifactId>
</dependency> </dependency>
<!-- <dependency>-->
<!-- <groupId>org.mybatis.spring.boot</groupId>-->
<!-- <artifactId>mybatis-spring-boot-starter</artifactId>-->
<!-- <version>2.2.2</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>mysql</groupId>-->
<!-- <artifactId>mysql-connector-java</artifactId>-->
<!-- <version>8.0.31</version>-->
<!-- </dependency>-->
<dependency> <dependency>
<groupId>org.mybatis.spring.boot</groupId> <groupId>org.projectlombok</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId> <artifactId>lombok</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.31</version>
</dependency> </dependency>
</dependencies> </dependencies>
@@ -66,8 +71,8 @@
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version> <version>${spring-boot.version}</version>
<configuration> <configuration>
<mainClass>com.example.demo.Demo1Application</mainClass> <mainClass>com.mtz.qqbot.QqBotApplication</mainClass>
<skip>true</skip> <skip>false</skip>
</configuration> </configuration>
<executions> <executions>
<execution> <execution>
@@ -78,6 +83,34 @@
</execution> </execution>
</executions> </executions>
</plugin> </plugin>
<!--maven打包时跳过测试-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<!--自动构建镜像到Docker-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<configuration>
<repository>${docker.image.prefix}/${project.artifactId}</repository>
<tag>${project.version}</tag>
<useMavenSettingsForAuth>false</useMavenSettingsForAuth>
</configuration>
<executions>
<execution>
<id>default</id>
<phase>install</phase>
<goals>
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins> </plugins>
</build> </build>
Binary file not shown.
+8 -9
View File
@@ -11,13 +11,12 @@
"muteTimestamp": 1684289748, "muteTimestamp": 1684289748,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1601451568, "joinTimestamp": 1601451568,
"lastSpeakTimestamp": 1719295424, "lastSpeakTimestamp": 1719309817,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 4, "rank": 4,
"point": 584, "point": 591,
"honors": [ "honors": [
3, 3
1
], ],
"temperature": 100 "temperature": 100
}, },
@@ -51,7 +50,7 @@
"lastSpeakTimestamp": 1719297118, "lastSpeakTimestamp": 1719297118,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 2, "rank": 2,
"point": 446, "point": 458,
"honors": [ "honors": [
3 3
], ],
@@ -67,7 +66,7 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1695304770, "joinTimestamp": 1695304770,
"lastSpeakTimestamp": 1719279137, "lastSpeakTimestamp": 1719309801,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 1, "rank": 1,
"point": 0, "point": 0,
@@ -118,7 +117,7 @@
"muteTimestamp": 1639379023, "muteTimestamp": 1639379023,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1636539791, "joinTimestamp": 1636539791,
"lastSpeakTimestamp": 1719295474, "lastSpeakTimestamp": 1719313179,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 1, "rank": 1,
"point": 0, "point": 0,
@@ -137,10 +136,10 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1601451568, "joinTimestamp": 1601451568,
"lastSpeakTimestamp": 1719291222, "lastSpeakTimestamp": 1719313250,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 2, "rank": 2,
"point": 116, "point": 118,
"honors": [], "honors": [],
"temperature": 100 "temperature": 100
} }
+37 -37
View File
@@ -861,12 +861,14 @@
"muteTimestamp": 1657543011, "muteTimestamp": 1657543011,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1516716532, "joinTimestamp": 1516716532,
"lastSpeakTimestamp": 1719240726, "lastSpeakTimestamp": 1719318848,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 3, "rank": 3,
"point": 413, "point": 413,
"honors": [ "honors": [
3 3,
1,
6
], ],
"temperature": 100 "temperature": 100
}, },
@@ -1256,8 +1258,8 @@
"joinTimestamp": 1574716750, "joinTimestamp": 1574716750,
"lastSpeakTimestamp": 1718633229, "lastSpeakTimestamp": 1718633229,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 1, "rank": 2,
"point": 0, "point": 1,
"honors": [], "honors": [],
"temperature": 41 "temperature": 41
}, },
@@ -1444,7 +1446,7 @@
"lastSpeakTimestamp": 1670909525, "lastSpeakTimestamp": 1670909525,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 2, "rank": 2,
"point": 69, "point": 64,
"honors": [], "honors": [],
"temperature": 30 "temperature": 30
}, },
@@ -1733,7 +1735,7 @@
"lastSpeakTimestamp": 1621829707, "lastSpeakTimestamp": 1621829707,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 2, "rank": 2,
"point": 8, "point": 3,
"honors": [], "honors": [],
"temperature": 7 "temperature": 7
}, },
@@ -2413,7 +2415,7 @@
"lastSpeakTimestamp": 1718761322, "lastSpeakTimestamp": 1718761322,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 3, "rank": 3,
"point": 182, "point": 177,
"honors": [], "honors": [],
"temperature": 43 "temperature": 43
}, },
@@ -2682,7 +2684,7 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1516540636, "joinTimestamp": 1516540636,
"lastSpeakTimestamp": 1719113988, "lastSpeakTimestamp": 1719317628,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 1, "rank": 1,
"point": 0, "point": 0,
@@ -3348,7 +3350,7 @@
"lastSpeakTimestamp": 1713758754, "lastSpeakTimestamp": 1713758754,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 3, "rank": 3,
"point": 763, "point": 758,
"honors": [], "honors": [],
"temperature": 45 "temperature": 45
}, },
@@ -3875,7 +3877,7 @@
"lastSpeakTimestamp": 1631376429, "lastSpeakTimestamp": 1631376429,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 3, "rank": 3,
"point": 316, "point": 311,
"honors": [], "honors": [],
"temperature": 39 "temperature": 39
}, },
@@ -4093,10 +4095,10 @@
"muteTimestamp": 1710052096, "muteTimestamp": 1710052096,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1542464320, "joinTimestamp": 1542464320,
"lastSpeakTimestamp": 1719253268, "lastSpeakTimestamp": 1719316756,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 6, "rank": 6,
"point": 6365, "point": 6366,
"honors": [ "honors": [
3 3
], ],
@@ -4302,7 +4304,7 @@
"lastSpeakTimestamp": 1718251946, "lastSpeakTimestamp": 1718251946,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 4, "rank": 4,
"point": 2589, "point": 2595,
"honors": [], "honors": [],
"temperature": 100 "temperature": 100
}, },
@@ -4404,7 +4406,7 @@
"lastSpeakTimestamp": 1718984997, "lastSpeakTimestamp": 1718984997,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 4, "rank": 4,
"point": 1275, "point": 1277,
"honors": [], "honors": [],
"temperature": 98 "temperature": 98
}, },
@@ -4710,7 +4712,7 @@
"lastSpeakTimestamp": 1716618423, "lastSpeakTimestamp": 1716618423,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 3, "rank": 3,
"point": 734, "point": 738,
"honors": [], "honors": [],
"temperature": 55 "temperature": 55
}, },
@@ -4724,12 +4726,12 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1708405810, "joinTimestamp": 1708405810,
"lastSpeakTimestamp": 1710222382, "lastSpeakTimestamp": 1719310430,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 1, "rank": 1,
"point": 0, "point": 0,
"honors": [], "honors": [],
"temperature": 2 "temperature": 3
}, },
{ {
"uin": 1498111908, "uin": 1498111908,
@@ -4860,7 +4862,7 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1510393439, "joinTimestamp": 1510393439,
"lastSpeakTimestamp": 1719220531, "lastSpeakTimestamp": 1719317665,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 5, "rank": 5,
"point": 5071, "point": 5071,
@@ -4911,12 +4913,12 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1566795665, "joinTimestamp": 1566795665,
"lastSpeakTimestamp": 1716297068, "lastSpeakTimestamp": 1719314042,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 3, "rank": 3,
"point": 342, "point": 342,
"honors": [], "honors": [],
"temperature": 68 "temperature": 69
}, },
{ {
"uin": 1577471709, "uin": 1577471709,
@@ -5141,21 +5143,19 @@
}, },
{ {
"uin": 1744790495, "uin": 1744790495,
"nick": "李平安!", "nick": "李平安!(闭关)",
"permission": "MEMBER", "permission": "MEMBER",
"remark": "李平安!", "remark": "李平安!(闭关)",
"nameCard": "", "nameCard": "",
"specialTitle": "", "specialTitle": "",
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1716826482, "joinTimestamp": 1716826482,
"lastSpeakTimestamp": 1719148476, "lastSpeakTimestamp": 1719314992,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 1, "rank": 1,
"point": 0, "point": 0,
"honors": [ "honors": [],
1
],
"temperature": 22 "temperature": 22
}, },
{ {
@@ -5168,7 +5168,7 @@
"muteTimestamp": 1716476389, "muteTimestamp": 1716476389,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1670166779, "joinTimestamp": 1670166779,
"lastSpeakTimestamp": 1719296346, "lastSpeakTimestamp": 1719313698,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 1, "rank": 1,
"point": 0, "point": 0,
@@ -5377,7 +5377,7 @@
"lastSpeakTimestamp": 1719032154, "lastSpeakTimestamp": 1719032154,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 5, "rank": 5,
"point": 3980, "point": 3982,
"honors": [], "honors": [],
"temperature": 100 "temperature": 100
}, },
@@ -5394,7 +5394,7 @@
"lastSpeakTimestamp": 1719235413, "lastSpeakTimestamp": 1719235413,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 4, "rank": 4,
"point": 2728, "point": 2732,
"honors": [], "honors": [],
"temperature": 100 "temperature": 100
}, },
@@ -5887,7 +5887,7 @@
"lastSpeakTimestamp": 1636557632, "lastSpeakTimestamp": 1636557632,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 2, "rank": 2,
"point": 53, "point": 48,
"honors": [], "honors": [],
"temperature": 23 "temperature": 23
}, },
@@ -6414,7 +6414,7 @@
"lastSpeakTimestamp": 1719140327, "lastSpeakTimestamp": 1719140327,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 4, "rank": 4,
"point": 1151, "point": 1146,
"honors": [], "honors": [],
"temperature": 66 "temperature": 66
}, },
@@ -6547,7 +6547,7 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1705648819, "joinTimestamp": 1705648819,
"lastSpeakTimestamp": 1719240737, "lastSpeakTimestamp": 1719317944,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 1, "rank": 1,
"point": 0, "point": 0,
@@ -6686,7 +6686,7 @@
"lastSpeakTimestamp": 1616648138, "lastSpeakTimestamp": 1616648138,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 3, "rank": 3,
"point": 836, "point": 831,
"honors": [], "honors": [],
"temperature": 43 "temperature": 43
}, },
@@ -6822,7 +6822,7 @@
"lastSpeakTimestamp": 1682847104, "lastSpeakTimestamp": 1682847104,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 2, "rank": 2,
"point": 35, "point": 20,
"honors": [], "honors": [],
"temperature": 38 "temperature": 38
}, },
@@ -6836,7 +6836,7 @@
"muteTimestamp": 1709638075, "muteTimestamp": 1709638075,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1558779352, "joinTimestamp": 1558779352,
"lastSpeakTimestamp": 1719205827, "lastSpeakTimestamp": 1719311100,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 5, "rank": 5,
"point": 5779, "point": 5779,
@@ -6940,7 +6940,7 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1653323510, "joinTimestamp": 1653323510,
"lastSpeakTimestamp": 1719206215, "lastSpeakTimestamp": 1719315695,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 1, "rank": 1,
"point": 0, "point": 0,
@@ -7061,7 +7061,7 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1714398064, "joinTimestamp": 1714398064,
"lastSpeakTimestamp": 1719148194, "lastSpeakTimestamp": 1719319184,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 1, "rank": 1,
"point": 0, "point": 0,
+5 -5
View File
@@ -1,5 +1,5 @@
{ {
"troopMemberNumSeq": 123, "troopMemberNumSeq": 125,
"list": [ "list": [
{ {
"uin": 524592968, "uin": 524592968,
@@ -25,10 +25,10 @@
"remark": "神明啊把我变成小萝莉吧お願い", "remark": "神明啊把我变成小萝莉吧お願い",
"nameCard": "", "nameCard": "",
"specialTitle": "", "specialTitle": "",
"muteTimestamp": 1719297368, "muteTimestamp": 1719319720,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1505138309, "joinTimestamp": 1505138309,
"lastSpeakTimestamp": 1719297308, "lastSpeakTimestamp": 1719319660,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 2, "rank": 2,
"point": 5, "point": 5,
@@ -64,7 +64,7 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1524301027, "joinTimestamp": 1524301027,
"lastSpeakTimestamp": 1719297146, "lastSpeakTimestamp": 1719319552,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 1, "rank": 1,
"point": 0, "point": 0,
@@ -81,7 +81,7 @@
"muteTimestamp": 1719215547, "muteTimestamp": 1719215547,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1718900409, "joinTimestamp": 1718900409,
"lastSpeakTimestamp": 1719246821, "lastSpeakTimestamp": 1719304669,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 1, "rank": 1,
"point": 0, "point": 0,
+25 -25
View File
@@ -45,7 +45,7 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1490652159, "joinTimestamp": 1490652159,
"lastSpeakTimestamp": 1719138577, "lastSpeakTimestamp": 1719309698,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 2, "rank": 2,
"point": 1409, "point": 1409,
@@ -198,10 +198,10 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1490923635, "joinTimestamp": 1490923635,
"lastSpeakTimestamp": 1719210688, "lastSpeakTimestamp": 1719313089,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 4, "rank": 4,
"point": 9034, "point": 9048,
"honors": [ "honors": [
2 2
], ],
@@ -356,7 +356,7 @@
"lastSpeakTimestamp": 1718085691, "lastSpeakTimestamp": 1718085691,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 3, "rank": 3,
"point": 5439, "point": 5434,
"honors": [], "honors": [],
"temperature": 66 "temperature": 66
}, },
@@ -438,10 +438,10 @@
"muteTimestamp": 1518845533, "muteTimestamp": 1518845533,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1490880389, "joinTimestamp": 1490880389,
"lastSpeakTimestamp": 1719258150, "lastSpeakTimestamp": 1719312104,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 5, "rank": 5,
"point": 9274, "point": 9288,
"honors": [ "honors": [
3, 3,
6 6
@@ -478,7 +478,7 @@
"lastSpeakTimestamp": 1709525568, "lastSpeakTimestamp": 1709525568,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 3, "rank": 3,
"point": 3208, "point": 3209,
"honors": [], "honors": [],
"temperature": 100 "temperature": 100
}, },
@@ -835,7 +835,7 @@
"lastSpeakTimestamp": 1615284524, "lastSpeakTimestamp": 1615284524,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 2, "rank": 2,
"point": 597, "point": 592,
"honors": [], "honors": [],
"temperature": 27 "temperature": 27
}, },
@@ -900,13 +900,14 @@
"muteTimestamp": 1615199862, "muteTimestamp": 1615199862,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1490966393, "joinTimestamp": 1490966393,
"lastSpeakTimestamp": 1719287634, "lastSpeakTimestamp": 1719317513,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 4, "rank": 4,
"point": 6947, "point": 6960,
"honors": [ "honors": [
6, 6,
3 3,
1
], ],
"temperature": 100 "temperature": 100
}, },
@@ -974,7 +975,7 @@
"lastSpeakTimestamp": 1624514430, "lastSpeakTimestamp": 1624514430,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 2, "rank": 2,
"point": 2879, "point": 2884,
"honors": [], "honors": [],
"temperature": 36 "temperature": 36
}, },
@@ -1192,10 +1193,10 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1490973282, "joinTimestamp": 1490973282,
"lastSpeakTimestamp": 1719295128, "lastSpeakTimestamp": 1719318739,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 2, "rank": 2,
"point": 184, "point": 189,
"honors": [ "honors": [
3 3
], ],
@@ -1214,7 +1215,7 @@
"lastSpeakTimestamp": 1719254279, "lastSpeakTimestamp": 1719254279,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 4, "rank": 4,
"point": 7018, "point": 7025,
"honors": [ "honors": [
3 3
], ],
@@ -1233,7 +1234,7 @@
"lastSpeakTimestamp": 1718713261, "lastSpeakTimestamp": 1718713261,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 3, "rank": 3,
"point": 6814, "point": 6817,
"honors": [], "honors": [],
"temperature": 100 "temperature": 100
}, },
@@ -1247,10 +1248,10 @@
"muteTimestamp": 1608442575, "muteTimestamp": 1608442575,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1490667181, "joinTimestamp": 1490667181,
"lastSpeakTimestamp": 1719281475, "lastSpeakTimestamp": 1719319338,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 4, "rank": 4,
"point": 9117, "point": 9131,
"honors": [ "honors": [
2 2
], ],
@@ -1388,7 +1389,7 @@
"lastSpeakTimestamp": 1719255338, "lastSpeakTimestamp": 1719255338,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 3, "rank": 3,
"point": 6711, "point": 6723,
"honors": [ "honors": [
2 2
], ],
@@ -1492,7 +1493,7 @@
"lastSpeakTimestamp": 1613057120, "lastSpeakTimestamp": 1613057120,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 2, "rank": 2,
"point": 2335, "point": 2330,
"honors": [], "honors": [],
"temperature": 21 "temperature": 21
}, },
@@ -1710,13 +1711,12 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1532449729, "joinTimestamp": 1532449729,
"lastSpeakTimestamp": 1719290680, "lastSpeakTimestamp": 1719318814,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 3, "rank": 3,
"point": 4942, "point": 4954,
"honors": [ "honors": [
3, 3
1
], ],
"temperature": 100 "temperature": 100
}, },
@@ -1733,7 +1733,7 @@
"lastSpeakTimestamp": 1625332345, "lastSpeakTimestamp": 1625332345,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 2, "rank": 2,
"point": 102, "point": 97,
"honors": [], "honors": [],
"temperature": 14 "temperature": 14
}, },
+11 -10
View File
@@ -82,7 +82,7 @@
"lastSpeakTimestamp": 1719279564, "lastSpeakTimestamp": 1719279564,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 2, "rank": 2,
"point": 859, "point": 862,
"honors": [], "honors": [],
"temperature": 100 "temperature": 100
}, },
@@ -130,7 +130,7 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1674212792, "joinTimestamp": 1674212792,
"lastSpeakTimestamp": 1719224986, "lastSpeakTimestamp": 1719316232,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 1, "rank": 1,
"point": 0, "point": 0,
@@ -164,7 +164,7 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1693914719, "joinTimestamp": 1693914719,
"lastSpeakTimestamp": 1719296318, "lastSpeakTimestamp": 1719316080,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 1, "rank": 1,
"point": 0, "point": 0,
@@ -184,7 +184,7 @@
"lastSpeakTimestamp": 1719290838, "lastSpeakTimestamp": 1719290838,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 3, "rank": 3,
"point": 1415, "point": 1419,
"honors": [], "honors": [],
"temperature": 100 "temperature": 100
}, },
@@ -215,13 +215,12 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1575788885, "joinTimestamp": 1575788885,
"lastSpeakTimestamp": 1719293471, "lastSpeakTimestamp": 1719315776,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 2, "rank": 2,
"point": 1275, "point": 1275,
"honors": [ "honors": [
3, 3
1
], ],
"temperature": 100 "temperature": 100
}, },
@@ -235,7 +234,7 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1659707634, "joinTimestamp": 1659707634,
"lastSpeakTimestamp": 1719233680, "lastSpeakTimestamp": 1719315974,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 1, "rank": 1,
"point": 0, "point": 0,
@@ -254,11 +253,13 @@
"muteTimestamp": 0, "muteTimestamp": 0,
"anonymousId": null, "anonymousId": null,
"joinTimestamp": 1654620022, "joinTimestamp": 1654620022,
"lastSpeakTimestamp": 1719293624, "lastSpeakTimestamp": 1719315908,
"isOfficialBot": false, "isOfficialBot": false,
"rank": 1, "rank": 1,
"point": 0, "point": 0,
"honors": [], "honors": [
1
],
"temperature": 100 "temperature": 100
}, },
{ {
+29 -33
View File
@@ -1,42 +1,38 @@
[ [
{
"host": "39.156.126.247",
"port": 443
},
{
"host": "39.156.140.102",
"port": 443
},
{
"host": "111.31.206.48",
"port": 14000
},
{
"host": "120.232.65.165",
"port": 14000
},
{
"host": "39.156.125.20",
"port": 80
},
{
"host": "120.232.31.250",
"port": 8080
},
{
"host": "36.155.163.25",
"port": 80
},
{
"host": "36.155.166.28",
"port": 8080
},
{ {
"host": "msfwifi.3g.qq.com", "host": "msfwifi.3g.qq.com",
"port": 8080 "port": 8080
}, },
{ {
"host": "36.155.207.230", "host": "116.130.229.191",
"port": 80
},
{
"host": "182.50.15.44",
"port": 80
},
{
"host": "123.125.0.195",
"port": 80
},
{
"host": "220.194.118.236",
"port": 80
},
{
"host": "182.50.8.188",
"port": 8080 "port": 8080
},
{
"host": "157.148.55.96",
"port": 443
},
{
"host": "157.255.5.104",
"port": 8080
},
{
"host": "153.3.244.48",
"port": 14000
} }
] ]
+2
View File
@@ -0,0 +1,2 @@
h'”ºLíe¯ˆíÍ"qj½Ä‹€¡Ë�x§å$/žËVà9zQ6ÚZ¯ÌÓ³Jë>�2ïÖ�*90;å©Ùƒ¼Õ±DC#Ðj␍ÐÙ2„À[eO¶&␍)ÉQŒ‡øš§)ë² dmtWkf9fgTW67wH4 Ú™„Ã�?ô„’Ïúÿÿÿÿ�?␍ð¬™ßþÿÿÿÿP �©’™»" ýΠ“»" ™‡¼Ù»"Ü…Û“ýÿÿÿÿ»" ™Ë”û»
+1 -1
View File
@@ -1 +1 @@
Df��[%��� �;���Օ ø)Ë4LÙ±>¬o5†œÆ0@©Ð�j
+7 -7
View File
@@ -1,16 +1,16 @@
{ {
"deviceInfoVersion": 3, "deviceInfoVersion": 3,
"data": { "data": {
"display": "MIRAI.074628.001", "display": "MIRAI.392537.001",
"product": "mirai", "product": "mirai",
"device": "mirai", "device": "mirai",
"board": "mirai", "board": "mirai",
"brand": "mamoe", "brand": "mamoe",
"model": "mirai", "model": "mirai",
"bootloader": "unknown", "bootloader": "unknown",
"fingerprint": "mamoe/mirai/mirai:10/MIRAI.200122.001/2819673:user/release-keys", "fingerprint": "mamoe/mirai/mirai:10/MIRAI.200122.001/5356319:user/release-keys",
"bootId": "76B9D71B-4A8F-97CD-6FC4-F62EBE5B8659", "bootId": "C16ED143-ED2F-19D7-E471-613A1016DC57",
"procVersion": "Linux version 3.0.31-3brWF0I4 (android-build@xxx.xxx.xxx.xxx.com)", "procVersion": "Linux version 3.0.31-9ucOo77W (android-build@xxx.xxx.xxx.xxx.com)",
"baseBand": "", "baseBand": "",
"version": { "version": {
"incremental": "5891938", "incremental": "5891938",
@@ -22,9 +22,9 @@
"macAddress": "02:00:00:00:00:00", "macAddress": "02:00:00:00:00:00",
"wifiBSSID": "02:00:00:00:00:00", "wifiBSSID": "02:00:00:00:00:00",
"wifiSSID": "<unknown ssid>", "wifiSSID": "<unknown ssid>",
"imsiMd5": "5fbedd6fc0a2fd3a618bdbfadc07e45a", "imsiMd5": "1e993634b646cf697263ded647a6d7f5",
"imei": "866610075074640", "imei": "864839791425396",
"apn": "wifi", "apn": "wifi",
"androidId": "369f72816c9da06b" "androidId": "3f252824bf2e97d9"
} }
} }
@@ -15,11 +15,12 @@ public class listController {
return "今日好友消息:[" + HandleMessageListener.friendMessageCount + "]条<br>" + return "今日好友消息:[" + HandleMessageListener.friendMessageCount + "]条<br>" +
"今日群聊1消息:[" + HandleMessageListener.group1MessageCount + "]条<br>" + "今日群聊1消息:[" + HandleMessageListener.group1MessageCount + "]条<br>" +
"今日群聊2消息:[" + HandleMessageListener.group2MessageCount + "]条<br>" + "今日群聊2消息:[" + HandleMessageListener.group2MessageCount + "]条<br>" +
"牢豆年糕汤消息:[" + HandleMessageListener.group3MessageCount + "]条<br>" +
"今日收到的群聊临时会话消息:[" + HandleMessageListener.groupTempMessageCount + "]条<br><br>" + "今日收到的群聊临时会话消息:[" + HandleMessageListener.groupTempMessageCount + "]条<br><br>" +
"今日群聊1违禁消息:[" + RecallMessageListener.group1InvalidCount + "]条<br>" + "今日群聊1违禁消息:[" + RecallMessageListener.group1InvalidCount + "]条<br>" +
"今日群聊2违禁消息:[" + RecallMessageListener.group2InvalidCount + "]条<br>" + "今日群聊2违禁消息:[" + RecallMessageListener.group2InvalidCount + "]条<br>" +
"今日群聊1违禁超过5次名单:" + RecallMessageListener.group1InvalidMember + "<br>" + "今日群聊1违禁超过5次的QQ号名单:" + RecallMessageListener.group1InvalidMember + "<br>" +
"今日群聊2违禁超过5次名单:" + RecallMessageListener.group2InvalidMember + "<br><br>" + "今日群聊2违禁超过5次的QQ号名单:" + RecallMessageListener.group2InvalidMember + "<br><br>" +
"今日机器人被骚扰次数:[" + ReceiveGroupListener.receiveCount + "]<br>" + "今日机器人被骚扰次数:[" + ReceiveGroupListener.receiveCount + "]<br>" +
"今日钓鱼次数:[" + fishListener.fishCount + "]<br><br>" + "今日钓鱼次数:[" + fishListener.fishCount + "]<br><br>" +
"<a href='index.html'>返回标题页面</a>"; "<a href='index.html'>返回标题页面</a>";
@@ -11,6 +11,7 @@ public class HandleMessageListener {
public static int friendMessageCount = 0; public static int friendMessageCount = 0;
public static int group1MessageCount = 0; public static int group1MessageCount = 0;
public static int group2MessageCount = 0; public static int group2MessageCount = 0;
public static int group3MessageCount = 0;
public static int groupTempMessageCount = 0; public static int groupTempMessageCount = 0;
@@ -38,6 +39,12 @@ public class HandleMessageListener {
group2MessageCount++; group2MessageCount++;
} }
@RobotListenerHandler(contactId = 850111709)
public void handleGroupLAODOUMessage(GroupMessageEvent event) {
handleGroupMessage(event);
group3MessageCount++;
}
@RobotListenerHandler @RobotListenerHandler
public void handleGroupTempMessage(GroupTempMessageEvent event) { public void handleGroupTempMessage(GroupTempMessageEvent event) {
String message = event.getMessage().contentToString(); String message = event.getMessage().contentToString();
@@ -17,36 +17,35 @@ public class RecallMessageListener extends MessageListener {
public static int group2InvalidCount = 0; public static int group2InvalidCount = 0;
public Map<Long, Integer> group1MemberInvalidedCountList = new HashMap<Long, Integer>(); public Map<Long, Integer> group1MemberInvalidedCountList = new HashMap<Long, Integer>();
public static List<String> group1InvalidMember = new ArrayList<String>(); public static List<Long> group1InvalidMember = new ArrayList<Long>();
public Map<Long, Integer> group2MemberInvalidedCountList = new HashMap<Long, Integer>(); public Map<Long, Integer> group2MemberInvalidedCountList = new HashMap<Long, Integer>();
public static List<String> group2InvalidMember = new ArrayList<String>(); public static List<Long> group2InvalidMember = new ArrayList<Long>();
public RecallMessageListener() { public RecallMessageListener() {
super(List.of("原神", "OP"), true);//自定义违禁词 super(List.of("原神"), true);//自定义违禁词
} }
public void recall(GroupMessageEvent event) throws InterruptedException {//当有人发违禁词自动撤回并禁言一分钟 public int recall(GroupMessageEvent event, int groupInvalidCount, Map<Long, Integer> groupMemberInvalidedCountList, List<Long> groupInvalidMember) throws InterruptedException {//当有人发违禁词自动撤回并禁言一分钟
String message = event.getMessage().contentToString(); String message = event.getMessage().contentToString();
if (this.invalidText(message)) { if (this.invalidText(message)) {
event.getSender().mute(60);//禁言60秒 event.getSender().mute(60);//禁言60秒
Thread.sleep(500);//半秒后撤回方便演示 Thread.sleep(500);//半秒后撤回方便演示
this.recallMessage(event.getMessage()); this.recallMessage(event.getMessage());
groupInvalidCount++;
invalidMember.invalidCountList(groupMemberInvalidedCountList, event);
invalidMember.invalidMemberList(groupInvalidMember, groupMemberInvalidedCountList, event);
return groupInvalidCount;
} }
return groupInvalidCount;
} }
@RobotListenerHandler(contactId = 518909220)//监控增加群聊1 @RobotListenerHandler(contactId = 518909220)//监控增加群聊1
public void recallGroup1Message(GroupMessageEvent event) throws InterruptedException { public void recallGroup1Message(GroupMessageEvent event) throws InterruptedException {
recall(event); group1InvalidCount = recall(event, group1InvalidCount, group1MemberInvalidedCountList, group1InvalidMember);
group1InvalidCount++;
invalidMember.invalidCountList(group1MemberInvalidedCountList, event);
invalidMember.invalidMemberList(group1InvalidMember, group1MemberInvalidedCountList, event);
} }
@RobotListenerHandler(contactId = 1033597003)//监控增加群聊2 @RobotListenerHandler(contactId = 1033597003)//监控增加群聊2
public void recallGroup2Message(GroupMessageEvent event) throws InterruptedException { public void recallGroup2Message(GroupMessageEvent event) throws InterruptedException {
recall(event); group2InvalidCount = recall(event, group2InvalidCount, group2MemberInvalidedCountList, group2InvalidMember);
group2InvalidCount++;
invalidMember.invalidCountList(group2MemberInvalidedCountList, event);
invalidMember.invalidMemberList(group2InvalidMember, group2MemberInvalidedCountList, event);
} }
} }
@@ -15,7 +15,7 @@ import java.util.Random;
@RobotListener @RobotListener
public class fishListener extends MessageListener { public class fishListener extends MessageListener {
public static int fishCount = 0; public static int fishCount = 0;
String[] fishes = {"鲨鱼", "金龙鱼", "鲤鱼", "鲫鱼", "鲅鱼", "罗非鱼", "鲸鱼", "闲鱼", ""}; String[] fishes = {"鲨鱼", "金龙鱼", "鲤鱼", "鲫鱼", "鲅鱼", "罗非鱼", "鲸鱼", "闲鱼", "萨卡班甲鱼", ""};
public fishListener() { public fishListener() {
super(List.of("钓鱼"), true); super(List.of("钓鱼"), true);
@@ -34,6 +34,7 @@ public class fishListener extends MessageListener {
event.getGroup().sendMessage(chain);//发送消息到群聊 event.getGroup().sendMessage(chain);//发送消息到群聊
System.out.println(chain); System.out.println(chain);
Thread.sleep(10000); Thread.sleep(10000);
int whichFish = random.nextInt(fishes.length); int whichFish = random.nextInt(fishes.length);
if (whichFish == fishes.length - 1) { if (whichFish == fishes.length - 1) {
chain = new MessageChainBuilder() chain = new MessageChainBuilder()
@@ -27,7 +27,7 @@ public class sendByConsoleListener extends MessageListener {
System.out.println("机器人发送:" + str); System.out.println("机器人发送:" + str);
} }
@RobotListenerHandler(contactId = {518909220, 1033597003}, concurrency = true)//当有人消息中带有“呼叫bot”时,可以从控制台输入一条消息发送 @RobotListenerHandler(concurrency = true)//当有人消息中带有“呼叫管理”时,可以从控制台输入一条消息发送
public void sendMessageToGroup(GroupMessageEvent event) { public void sendMessageToGroup(GroupMessageEvent event) {
String message = event.getMessage().contentToString(); String message = event.getMessage().contentToString();
if (this.invalidText(message)) { if (this.invalidText(message)) {
@@ -35,7 +35,8 @@ public class sendByConsoleListener extends MessageListener {
String str = input.nextLine(); String str = input.nextLine();
MessageChain chain = new MessageChainBuilder() MessageChain chain = new MessageChainBuilder()
.append(new At(event.getSender().getId())) .append(new At(event.getSender().getId()))
.append(" " + str) .append(" ")
.append(str)
.build(); .build();
event.getGroup().sendMessage(chain); event.getGroup().sendMessage(chain);
System.out.println("机器人发送:" + chain); System.out.println("机器人发送:" + chain);
@@ -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);
}
}
}
@@ -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);
}
}
}
@@ -6,8 +6,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication @SpringBootApplication
public class QqBotApplication { public class QqBotApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(QqBotApplication.class, args); SpringApplication.run(QqBotApplication.class, args);
} }
} }
@@ -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<Integer> passwdList = vTools.Transform(passwd1);
//System.out.println("密钥转换为密钥数字串为:" + passwdList);
String plaintext = originMessage[1];
char[] plaintext1 = plaintext.toCharArray();
ArrayList<Integer> 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<Integer> passwdList = vTools.Transform(passwd1);
String ciphertext = originMessage[1];
char[] ciphertext1 = ciphertext.toCharArray();
ArrayList<Integer> 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;
}
}
@@ -15,9 +15,9 @@ public class invalidMember {
} }
} }
public static void invalidMemberList(List<String> groupInvalidMember, Map<Long, Integer> groupMemberInvalidedCountList, GroupMessageEvent event) { public static void invalidMemberList(List<Long> groupInvalidMember, Map<Long, Integer> groupMemberInvalidedCountList, GroupMessageEvent event) {
if (groupMemberInvalidedCountList.get(event.getSender().getId()).equals(5)) { if (groupMemberInvalidedCountList.get(event.getSender().getId()).equals(5)) {
groupInvalidMember.add(event.getSenderName()); groupInvalidMember.add(event.getSender().getId());
} }
} }
} }
@@ -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<Integer> Transform(char[] text) {
ArrayList<Integer> 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<Integer> passwdList, ArrayList<Integer> 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();
}
}
}
+8 -8
View File
@@ -6,22 +6,22 @@ itbaima:
password: mtzmtq2002 password: mtzmtq2002
signer: signer:
version: 9.0.30 version: 8.9.63
url: http://localhost:8888 url: http://localhost:8888
type: fuqiuluo type: fuqiuluo
authorization-key: 114514 authorization-key: 114514
data: data:
contact-cache: true contact-cache: false
work-dir: robot-data work-dir: robot-data
cache-dir: cache cache-dir: cache
spring: #spring:
datasource: # datasource:
driverClassName: com.mysql.cj.jdbc.Driver # driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/database # url: jdbc:mysql://localhost:3306/database
username: root # username: root
password: 123456 # password: 123456
server: server:
port: 8080 port: 8080
+4 -251
View File
@@ -1,255 +1,7 @@
<html> <html>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<style> <link rel="stylesheet" href="qq-bot.css">
body {
padding: 1rem 2rem 2rem;
width: 880px;
border-radius: 0.7em;
margin: 0 auto;
background-color: rgba(255, 255, 255, 0.9);
font-size: 14px;
color: #2c3e50;
}
.集数按钮 {
font-weight: 600;
color: #000;
background-color: #FFF000;
width: 43px;
border-radius: 10px;
text-align: center;
padding: 4px 6px;
display: inline-block;
cursor: pointer;
transition: 0.2s linear;
}
.集数按钮:hover {
opacity: 0.5;
}
.各集内容 {
padding: 14px;
display: none;
}
.各集内容 span {
font-size: 24px;
font-weight: bolder;
color: #000;
}
.各集内容 .内容 {
border-radius: 15px;
border: 2px solid #000;
padding: 6px 15px;
background-color: #FFF;
max-width: 580px;
}
.各集内容 img {
width: 100%;
height: auto;
}
.各集内容 p {
font-size: 16.8px;
line-height: 1.6;
}
.各集内容 .黑幕 {
background-color: #252525;
color: #252525;
transition: 0.13s linear;
font-size: 16.8px;
}
.各集内容 .黑幕:hover {
color: white;
}
#艺术字 {
margin-left: 105px;
}
#艺术字 .艺术字 {
width: 50%;
color: #36c0b9;
font-size: 30px;
font-weight: bolder;
text-align: center;
padding: 1em;
vertical-align: middle;
}
#艺术字 .艺术字 span {
font-size: 35px;
}
#bg {
background: url(image/background_picture.jpg) no-repeat;
background-attachment: fixed;
}
#mybody {
padding: 1rem 2rem 2rem;
width: 880px;
border-radius: 0.7em;
margin: 0 auto;
background-color: rgba(255, 255, 255, 0.9);
font-size: 14px;
color: #2c3e50;
}
article {
display: block;
unicode-bidi: isolate;
}
#事先声明 {
color: rgb(70, 70, 70);
font-size: small;
border: 1px solid rgba(128, 128, 128, 0.466);
border-left: 10px #1e90ff solid;
height: 50px;
}
div {
display: block;
unicode-bidi: isolate;
}
h2 {
display: block;
font-size: 1.5em;
margin-block-start: 0.83em;
margin-block-end: 0.83em;
margin-inline-start: 0px;
margin-inline-end: 0px;
font-weight: bold;
unicode-bidi: isolate;
}
p {
display: block;
margin-block-start: 1em;
margin-block-end: 1em;
margin-inline-start: 0px;
margin-inline-end: 0px;
unicode-bidi: isolate;
}
a {
text-decoration: none;
color: #3f51b5;
}
a:active, a:visited:active {
color: orange;
}
a:visited {
color: #0b0080;
}
#事先声明 {
color: rgb(70, 70, 70);
font-size: small;
border: 1px solid rgba(128, 128, 128, 0.466);
border-left: 10px #1e90ff solid;
height: 50px;
}
#事先声明 p {
position: relative;
top: -50px;
left: 70px;
}
#事先声明 img {
position: relative;
top: 4px;
left: 4px;
}
.大圆角标签1 {
width: 5px;
height: 30px;
background: #f62020;
border-radius: 1em;
float: left;
position: relative;
top: 0px;
}
.大圆角标签2 {
width: 5px;
height: 30px;
background: #f8c708;
border-radius: 1em;
float: left;
position: relative;
top: 0px;
}
.大圆角标签3 {
width: 5px;
height: 30px;
background: #3f4fd9;
border-radius: 1em;
float: left;
position: relative;
top: 0px;
}
.大圆角标签4 {
width: 5px;
height: 30px;
background: #8ed495;
border-radius: 1em;
float: left;
position: relative;
top: 0px;
}
.大圆角标签5 {
width: 5px;
height: 30px;
background: #be8eb0;
border-radius: 1em;
float: left;
position: relative;
top: 0px;
}
.大圆角标签6 {
width: 5px;
height: 30px;
background: #44c7e8;
border-radius: 1em;
float: left;
position: relative;
top: 0px;
}
.imgBox {
display: inline-block;
width: 113px;
height: 122px;
text-align: center;
transition: 0.25s;
}
.imgBox:hover {
opacity: 0.70;
}
.imgBox img {
width: 100px;
height: 100px;
}
</style>
</head> </head>
<body id="bg"> <body id="bg">
@@ -290,9 +42,9 @@
</div> </div>
<div id="作品简介3"> <div id="作品简介3">
<div class="大圆角标签3"></div> <div class="大圆角标签3"></div>
<h2>&nbspQ3:mirai框架的QQ机器人,区别于其他QQ机器人的亮点有哪些?</h2> <h2>&nbspQ3:Mirai框架的QQ机器人,区别于其他QQ机器人的亮点有哪些?</h2>
<p> <p>
mirai框架发展时间长,技术更成熟,现有的更好的QQ机器人框架都是在mirai基础上进行迭代升级的,所以对QQ机器人的框架学习更有帮助</P> Mirai框架发展时间长,技术更成熟,现有的更好的QQ机器人框架都是在Mirai基础上进行迭代升级的,所以对QQ机器人的框架学习更有帮助</P>
</div> </div>
<div id="作品简介4"> <div id="作品简介4">
@@ -413,6 +165,7 @@
<h2>&nbsp后记:</h2> <h2>&nbsp后记:</h2>
<p>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp我们项目组由衷的感谢Mirai框架与将Mirai框架集成到SpringBoot中的各位前辈,正是他们的开源精神推动了整个社区的良性发展,</p> <p>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp我们项目组由衷的感谢Mirai框架与将Mirai框架集成到SpringBoot中的各位前辈,正是他们的开源精神推动了整个社区的良性发展,</p>
<p>得以让我们能够站在巨人的肩膀头上实现我们自己的想法</p> <p>得以让我们能够站在巨人的肩膀头上实现我们自己的想法</p>
<p>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp同时感谢我的SpringBoot课的老师:陈闯闯老师。如果没有老师带着我们入门,就不会有如今的这个项目</p>
<p>&nbsp</p> <p>&nbsp</p>
<p>Mirai项目地址:<a href="https://github.com/mamoe/mirai">https://github.com/mamoe/mirai</a></p> <p>Mirai项目地址:<a href="https://github.com/mamoe/mirai">https://github.com/mamoe/mirai</a></p>
<p>基于Mirai核心封装的SpringBoot Starter:<a href="https://github.com/itbaima-study/itbaima-robot-starter">https://github.com/itbaima-study/itbaima-robot-starter</a></p> <p>基于Mirai核心封装的SpringBoot Starter:<a href="https://github.com/itbaima-study/itbaima-robot-starter">https://github.com/itbaima-study/itbaima-robot-starter</a></p>
+247
View File
@@ -0,0 +1,247 @@
body {
padding: 1rem 2rem 2rem;
width: 880px;
border-radius: 0.7em;
margin: 0 auto;
background-color: rgba(255, 255, 255, 0.9);
font-size: 14px;
color: #2c3e50;
}
.集数按钮 {
font-weight: 600;
color: #000;
background-color: #FFF000;
width: 43px;
border-radius: 10px;
text-align: center;
padding: 4px 6px;
display: inline-block;
cursor: pointer;
transition: 0.2s linear;
}
.集数按钮:hover {
opacity: 0.5;
}
.各集内容 {
padding: 14px;
display: none;
}
.各集内容 span {
font-size: 24px;
font-weight: bolder;
color: #000;
}
.各集内容 .内容 {
border-radius: 15px;
border: 2px solid #000;
padding: 6px 15px;
background-color: #FFF;
max-width: 580px;
}
.各集内容 img {
width: 100%;
height: auto;
}
.各集内容 p {
font-size: 16.8px;
line-height: 1.6;
}
.各集内容 .黑幕 {
background-color: #252525;
color: #252525;
transition: 0.13s linear;
font-size: 16.8px;
}
.各集内容 .黑幕:hover {
color: white;
}
#艺术字 {
margin-left: 105px;
}
#艺术字 .艺术字 {
width: 50%;
color: #36c0b9;
font-size: 30px;
font-weight: bolder;
text-align: center;
padding: 1em;
vertical-align: middle;
}
#艺术字 .艺术字 span {
font-size: 35px;
}
#bg {
background: url(image/background_picture.jpg) no-repeat;
background-attachment: fixed;
}
#mybody {
padding: 1rem 2rem 2rem;
width: 880px;
border-radius: 0.7em;
margin: 0 auto;
background-color: rgba(255, 255, 255, 0.9);
font-size: 14px;
color: #2c3e50;
}
article {
display: block;
unicode-bidi: isolate;
}
#事先声明 {
color: rgb(70, 70, 70);
font-size: small;
border: 1px solid rgba(128, 128, 128, 0.466);
border-left: 10px #1e90ff solid;
height: 50px;
}
div {
display: block;
unicode-bidi: isolate;
}
h2 {
display: block;
font-size: 1.5em;
margin-block-start: 0.83em;
margin-block-end: 0.83em;
margin-inline-start: 0px;
margin-inline-end: 0px;
font-weight: bold;
unicode-bidi: isolate;
}
p {
display: block;
margin-block-start: 1em;
margin-block-end: 1em;
margin-inline-start: 0px;
margin-inline-end: 0px;
unicode-bidi: isolate;
}
a {
text-decoration: none;
color: #3f51b5;
}
a:active, a:visited:active {
color: orange;
}
a:visited {
color: #0b0080;
}
#事先声明 {
color: rgb(70, 70, 70);
font-size: small;
border: 1px solid rgba(128, 128, 128, 0.466);
border-left: 10px #1e90ff solid;
height: 50px;
}
#事先声明 p {
position: relative;
top: -50px;
left: 70px;
}
#事先声明 img {
position: relative;
top: 4px;
left: 4px;
}
.大圆角标签1 {
width: 5px;
height: 30px;
background: #f62020;
border-radius: 1em;
float: left;
position: relative;
top: 0px;
}
.大圆角标签2 {
width: 5px;
height: 30px;
background: #f8c708;
border-radius: 1em;
float: left;
position: relative;
top: 0px;
}
.大圆角标签3 {
width: 5px;
height: 30px;
background: #3f4fd9;
border-radius: 1em;
float: left;
position: relative;
top: 0px;
}
.大圆角标签4 {
width: 5px;
height: 30px;
background: #8ed495;
border-radius: 1em;
float: left;
position: relative;
top: 0px;
}
.大圆角标签5 {
width: 5px;
height: 30px;
background: #be8eb0;
border-radius: 1em;
float: left;
position: relative;
top: 0px;
}
.大圆角标签6 {
width: 5px;
height: 30px;
background: #44c7e8;
border-radius: 1em;
float: left;
position: relative;
top: 0px;
}
.imgBox {
display: inline-block;
width: 113px;
height: 122px;
text-align: center;
transition: 0.25s;
}
.imgBox:hover {
opacity: 0.70;
}
.imgBox img {
width: 100px;
height: 100px;
}