Compare commits

...

10 Commits

Author SHA1 Message Date
6b55ac4da0 修复了只要发消息违禁次数就会增加的bug 2024-06-27 14:18:45 +08:00
ba1ee68a1c 开发第一阶段完毕 2024-06-26 20:50:25 +08:00
ae638dab22 开发第一阶段完毕 2024-06-26 09:04:47 +08:00
48062bccc8 开发第一阶段完毕 2024-06-26 08:00:07 +08:00
5b600fec81 开发第一阶段完毕 2024-06-25 23:55:46 +08:00
f1659ad67e 开发第一阶段完毕 2024-06-25 23:43:46 +08:00
54a332a314 开发第一阶段完毕 2024-06-25 23:39:39 +08:00
61aa8ec17a 开发第一阶段完毕 2024-06-25 16:38:10 +08:00
6d20df478d 开发第一阶段完毕 2024-06-25 16:01:22 +08:00
f594a6e27d 开发第一阶段完毕 2024-06-25 16:00:58 +08:00
20 changed files with 448 additions and 413 deletions

4
Dockerfile Normal file
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

59
pom.xml
View File

@ -9,13 +9,14 @@
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.mtz</groupId>
<artifactId>QQ-Bot</artifactId>
<artifactId>qq-bot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>QQ-Bot</name>
<description>QQ-Bot</description>
<name>qq-bot</name>
<description>qq-bot</description>
<properties>
<java.version>17</java.version>
<spring-boot.version>2.6.13</spring-boot.version>
<docker.image.prefix>localhost:5000</docker.image.prefix>
</properties>
<dependencies>
<dependency>
@ -37,15 +38,19 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</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>
<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>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
@ -66,8 +71,8 @@
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<mainClass>com.example.demo.Demo1Application</mainClass>
<skip>true</skip>
<mainClass>com.mtz.qqbot.QqBotApplication</mainClass>
<skip>false</skip>
</configuration>
<executions>
<execution>
@ -78,6 +83,34 @@
</execution>
</executions>
</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>
</build>

Binary file not shown.

View File

@ -11,13 +11,12 @@
"muteTimestamp": 1684289748,
"anonymousId": null,
"joinTimestamp": 1601451568,
"lastSpeakTimestamp": 1719295424,
"lastSpeakTimestamp": 1719309817,
"isOfficialBot": false,
"rank": 4,
"point": 584,
"point": 591,
"honors": [
3,
1
3
],
"temperature": 100
},
@ -51,7 +50,7 @@
"lastSpeakTimestamp": 1719297118,
"isOfficialBot": false,
"rank": 2,
"point": 446,
"point": 458,
"honors": [
3
],
@ -67,7 +66,7 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1695304770,
"lastSpeakTimestamp": 1719279137,
"lastSpeakTimestamp": 1719309801,
"isOfficialBot": false,
"rank": 1,
"point": 0,
@ -118,7 +117,7 @@
"muteTimestamp": 1639379023,
"anonymousId": null,
"joinTimestamp": 1636539791,
"lastSpeakTimestamp": 1719295474,
"lastSpeakTimestamp": 1719313179,
"isOfficialBot": false,
"rank": 1,
"point": 0,
@ -137,10 +136,10 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1601451568,
"lastSpeakTimestamp": 1719291222,
"lastSpeakTimestamp": 1719313250,
"isOfficialBot": false,
"rank": 2,
"point": 116,
"point": 118,
"honors": [],
"temperature": 100
}

View File

@ -861,12 +861,14 @@
"muteTimestamp": 1657543011,
"anonymousId": null,
"joinTimestamp": 1516716532,
"lastSpeakTimestamp": 1719240726,
"lastSpeakTimestamp": 1719318848,
"isOfficialBot": false,
"rank": 3,
"point": 413,
"honors": [
3
3,
1,
6
],
"temperature": 100
},
@ -1256,8 +1258,8 @@
"joinTimestamp": 1574716750,
"lastSpeakTimestamp": 1718633229,
"isOfficialBot": false,
"rank": 1,
"point": 0,
"rank": 2,
"point": 1,
"honors": [],
"temperature": 41
},
@ -1444,7 +1446,7 @@
"lastSpeakTimestamp": 1670909525,
"isOfficialBot": false,
"rank": 2,
"point": 69,
"point": 64,
"honors": [],
"temperature": 30
},
@ -1733,7 +1735,7 @@
"lastSpeakTimestamp": 1621829707,
"isOfficialBot": false,
"rank": 2,
"point": 8,
"point": 3,
"honors": [],
"temperature": 7
},
@ -2413,7 +2415,7 @@
"lastSpeakTimestamp": 1718761322,
"isOfficialBot": false,
"rank": 3,
"point": 182,
"point": 177,
"honors": [],
"temperature": 43
},
@ -2682,7 +2684,7 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1516540636,
"lastSpeakTimestamp": 1719113988,
"lastSpeakTimestamp": 1719317628,
"isOfficialBot": false,
"rank": 1,
"point": 0,
@ -3348,7 +3350,7 @@
"lastSpeakTimestamp": 1713758754,
"isOfficialBot": false,
"rank": 3,
"point": 763,
"point": 758,
"honors": [],
"temperature": 45
},
@ -3875,7 +3877,7 @@
"lastSpeakTimestamp": 1631376429,
"isOfficialBot": false,
"rank": 3,
"point": 316,
"point": 311,
"honors": [],
"temperature": 39
},
@ -4093,10 +4095,10 @@
"muteTimestamp": 1710052096,
"anonymousId": null,
"joinTimestamp": 1542464320,
"lastSpeakTimestamp": 1719253268,
"lastSpeakTimestamp": 1719316756,
"isOfficialBot": false,
"rank": 6,
"point": 6365,
"point": 6366,
"honors": [
3
],
@ -4302,7 +4304,7 @@
"lastSpeakTimestamp": 1718251946,
"isOfficialBot": false,
"rank": 4,
"point": 2589,
"point": 2595,
"honors": [],
"temperature": 100
},
@ -4404,7 +4406,7 @@
"lastSpeakTimestamp": 1718984997,
"isOfficialBot": false,
"rank": 4,
"point": 1275,
"point": 1277,
"honors": [],
"temperature": 98
},
@ -4710,7 +4712,7 @@
"lastSpeakTimestamp": 1716618423,
"isOfficialBot": false,
"rank": 3,
"point": 734,
"point": 738,
"honors": [],
"temperature": 55
},
@ -4724,12 +4726,12 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1708405810,
"lastSpeakTimestamp": 1710222382,
"lastSpeakTimestamp": 1719310430,
"isOfficialBot": false,
"rank": 1,
"point": 0,
"honors": [],
"temperature": 2
"temperature": 3
},
{
"uin": 1498111908,
@ -4860,7 +4862,7 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1510393439,
"lastSpeakTimestamp": 1719220531,
"lastSpeakTimestamp": 1719317665,
"isOfficialBot": false,
"rank": 5,
"point": 5071,
@ -4911,12 +4913,12 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1566795665,
"lastSpeakTimestamp": 1716297068,
"lastSpeakTimestamp": 1719314042,
"isOfficialBot": false,
"rank": 3,
"point": 342,
"honors": [],
"temperature": 68
"temperature": 69
},
{
"uin": 1577471709,
@ -5141,21 +5143,19 @@
},
{
"uin": 1744790495,
"nick": "李平安!",
"nick": "李平安!(闭关)",
"permission": "MEMBER",
"remark": "李平安!",
"remark": "李平安!(闭关)",
"nameCard": "",
"specialTitle": "",
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1716826482,
"lastSpeakTimestamp": 1719148476,
"lastSpeakTimestamp": 1719314992,
"isOfficialBot": false,
"rank": 1,
"point": 0,
"honors": [
1
],
"honors": [],
"temperature": 22
},
{
@ -5168,7 +5168,7 @@
"muteTimestamp": 1716476389,
"anonymousId": null,
"joinTimestamp": 1670166779,
"lastSpeakTimestamp": 1719296346,
"lastSpeakTimestamp": 1719313698,
"isOfficialBot": false,
"rank": 1,
"point": 0,
@ -5377,7 +5377,7 @@
"lastSpeakTimestamp": 1719032154,
"isOfficialBot": false,
"rank": 5,
"point": 3980,
"point": 3982,
"honors": [],
"temperature": 100
},
@ -5394,7 +5394,7 @@
"lastSpeakTimestamp": 1719235413,
"isOfficialBot": false,
"rank": 4,
"point": 2728,
"point": 2732,
"honors": [],
"temperature": 100
},
@ -5887,7 +5887,7 @@
"lastSpeakTimestamp": 1636557632,
"isOfficialBot": false,
"rank": 2,
"point": 53,
"point": 48,
"honors": [],
"temperature": 23
},
@ -6414,7 +6414,7 @@
"lastSpeakTimestamp": 1719140327,
"isOfficialBot": false,
"rank": 4,
"point": 1151,
"point": 1146,
"honors": [],
"temperature": 66
},
@ -6547,7 +6547,7 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1705648819,
"lastSpeakTimestamp": 1719240737,
"lastSpeakTimestamp": 1719317944,
"isOfficialBot": false,
"rank": 1,
"point": 0,
@ -6686,7 +6686,7 @@
"lastSpeakTimestamp": 1616648138,
"isOfficialBot": false,
"rank": 3,
"point": 836,
"point": 831,
"honors": [],
"temperature": 43
},
@ -6822,7 +6822,7 @@
"lastSpeakTimestamp": 1682847104,
"isOfficialBot": false,
"rank": 2,
"point": 35,
"point": 20,
"honors": [],
"temperature": 38
},
@ -6836,7 +6836,7 @@
"muteTimestamp": 1709638075,
"anonymousId": null,
"joinTimestamp": 1558779352,
"lastSpeakTimestamp": 1719205827,
"lastSpeakTimestamp": 1719311100,
"isOfficialBot": false,
"rank": 5,
"point": 5779,
@ -6940,7 +6940,7 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1653323510,
"lastSpeakTimestamp": 1719206215,
"lastSpeakTimestamp": 1719315695,
"isOfficialBot": false,
"rank": 1,
"point": 0,
@ -7061,7 +7061,7 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1714398064,
"lastSpeakTimestamp": 1719148194,
"lastSpeakTimestamp": 1719319184,
"isOfficialBot": false,
"rank": 1,
"point": 0,

View File

@ -1,5 +1,5 @@
{
"troopMemberNumSeq": 123,
"troopMemberNumSeq": 125,
"list": [
{
"uin": 524592968,
@ -25,10 +25,10 @@
"remark": "神明啊把我变成小萝莉吧お願い",
"nameCard": "",
"specialTitle": "",
"muteTimestamp": 1719297368,
"muteTimestamp": 1719319720,
"anonymousId": null,
"joinTimestamp": 1505138309,
"lastSpeakTimestamp": 1719297308,
"lastSpeakTimestamp": 1719319660,
"isOfficialBot": false,
"rank": 2,
"point": 5,
@ -64,7 +64,7 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1524301027,
"lastSpeakTimestamp": 1719297146,
"lastSpeakTimestamp": 1719319552,
"isOfficialBot": false,
"rank": 1,
"point": 0,
@ -81,7 +81,7 @@
"muteTimestamp": 1719215547,
"anonymousId": null,
"joinTimestamp": 1718900409,
"lastSpeakTimestamp": 1719246821,
"lastSpeakTimestamp": 1719304669,
"isOfficialBot": false,
"rank": 1,
"point": 0,

View File

@ -45,7 +45,7 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1490652159,
"lastSpeakTimestamp": 1719138577,
"lastSpeakTimestamp": 1719309698,
"isOfficialBot": false,
"rank": 2,
"point": 1409,
@ -198,10 +198,10 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1490923635,
"lastSpeakTimestamp": 1719210688,
"lastSpeakTimestamp": 1719313089,
"isOfficialBot": false,
"rank": 4,
"point": 9034,
"point": 9048,
"honors": [
2
],
@ -356,7 +356,7 @@
"lastSpeakTimestamp": 1718085691,
"isOfficialBot": false,
"rank": 3,
"point": 5439,
"point": 5434,
"honors": [],
"temperature": 66
},
@ -438,10 +438,10 @@
"muteTimestamp": 1518845533,
"anonymousId": null,
"joinTimestamp": 1490880389,
"lastSpeakTimestamp": 1719258150,
"lastSpeakTimestamp": 1719312104,
"isOfficialBot": false,
"rank": 5,
"point": 9274,
"point": 9288,
"honors": [
3,
6
@ -478,7 +478,7 @@
"lastSpeakTimestamp": 1709525568,
"isOfficialBot": false,
"rank": 3,
"point": 3208,
"point": 3209,
"honors": [],
"temperature": 100
},
@ -835,7 +835,7 @@
"lastSpeakTimestamp": 1615284524,
"isOfficialBot": false,
"rank": 2,
"point": 597,
"point": 592,
"honors": [],
"temperature": 27
},
@ -900,13 +900,14 @@
"muteTimestamp": 1615199862,
"anonymousId": null,
"joinTimestamp": 1490966393,
"lastSpeakTimestamp": 1719287634,
"lastSpeakTimestamp": 1719317513,
"isOfficialBot": false,
"rank": 4,
"point": 6947,
"point": 6960,
"honors": [
6,
3
3,
1
],
"temperature": 100
},
@ -974,7 +975,7 @@
"lastSpeakTimestamp": 1624514430,
"isOfficialBot": false,
"rank": 2,
"point": 2879,
"point": 2884,
"honors": [],
"temperature": 36
},
@ -1192,10 +1193,10 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1490973282,
"lastSpeakTimestamp": 1719295128,
"lastSpeakTimestamp": 1719318739,
"isOfficialBot": false,
"rank": 2,
"point": 184,
"point": 189,
"honors": [
3
],
@ -1214,7 +1215,7 @@
"lastSpeakTimestamp": 1719254279,
"isOfficialBot": false,
"rank": 4,
"point": 7018,
"point": 7025,
"honors": [
3
],
@ -1233,7 +1234,7 @@
"lastSpeakTimestamp": 1718713261,
"isOfficialBot": false,
"rank": 3,
"point": 6814,
"point": 6817,
"honors": [],
"temperature": 100
},
@ -1247,10 +1248,10 @@
"muteTimestamp": 1608442575,
"anonymousId": null,
"joinTimestamp": 1490667181,
"lastSpeakTimestamp": 1719281475,
"lastSpeakTimestamp": 1719319338,
"isOfficialBot": false,
"rank": 4,
"point": 9117,
"point": 9131,
"honors": [
2
],
@ -1388,7 +1389,7 @@
"lastSpeakTimestamp": 1719255338,
"isOfficialBot": false,
"rank": 3,
"point": 6711,
"point": 6723,
"honors": [
2
],
@ -1492,7 +1493,7 @@
"lastSpeakTimestamp": 1613057120,
"isOfficialBot": false,
"rank": 2,
"point": 2335,
"point": 2330,
"honors": [],
"temperature": 21
},
@ -1710,13 +1711,12 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1532449729,
"lastSpeakTimestamp": 1719290680,
"lastSpeakTimestamp": 1719318814,
"isOfficialBot": false,
"rank": 3,
"point": 4942,
"point": 4954,
"honors": [
3,
1
3
],
"temperature": 100
},
@ -1733,7 +1733,7 @@
"lastSpeakTimestamp": 1625332345,
"isOfficialBot": false,
"rank": 2,
"point": 102,
"point": 97,
"honors": [],
"temperature": 14
},

View File

@ -82,7 +82,7 @@
"lastSpeakTimestamp": 1719279564,
"isOfficialBot": false,
"rank": 2,
"point": 859,
"point": 862,
"honors": [],
"temperature": 100
},
@ -130,7 +130,7 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1674212792,
"lastSpeakTimestamp": 1719224986,
"lastSpeakTimestamp": 1719316232,
"isOfficialBot": false,
"rank": 1,
"point": 0,
@ -164,7 +164,7 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1693914719,
"lastSpeakTimestamp": 1719296318,
"lastSpeakTimestamp": 1719316080,
"isOfficialBot": false,
"rank": 1,
"point": 0,
@ -184,7 +184,7 @@
"lastSpeakTimestamp": 1719290838,
"isOfficialBot": false,
"rank": 3,
"point": 1415,
"point": 1419,
"honors": [],
"temperature": 100
},
@ -215,13 +215,12 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1575788885,
"lastSpeakTimestamp": 1719293471,
"lastSpeakTimestamp": 1719315776,
"isOfficialBot": false,
"rank": 2,
"point": 1275,
"honors": [
3,
1
3
],
"temperature": 100
},
@ -235,7 +234,7 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1659707634,
"lastSpeakTimestamp": 1719233680,
"lastSpeakTimestamp": 1719315974,
"isOfficialBot": false,
"rank": 1,
"point": 0,
@ -254,11 +253,13 @@
"muteTimestamp": 0,
"anonymousId": null,
"joinTimestamp": 1654620022,
"lastSpeakTimestamp": 1719293624,
"lastSpeakTimestamp": 1719315908,
"isOfficialBot": false,
"rank": 1,
"point": 0,
"honors": [],
"honors": [
1
],
"temperature": 100
},
{

View File

@ -1,42 +1,38 @@
[
{
"host": "39.156.126.247",
"host": "111.30.169.83",
"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",
"port": 8080
},
{
"host": "111.30.182.254",
"port": 443
},
{
"host": "36.155.207.230",
"port": 443
},
{
"host": "120.232.31.239",
"port": 8080
},
{
"host": "120.241.130.195",
"port": 14000
},
{
"host": "36.155.163.25",
"port": 80
},
{
"host": "39.156.126.178",
"port": 80
},
{
"host": "36.155.163.117",
"port": 8080
}
]

2
robot-data/cache/session.bin vendored Normal file
View File

@ -0,0 +1,2 @@
h<EFBFBD>×­ <09>äÉu¯+]uµSfJv°v)POßtϺRë¼ÈB¥fž²,y¦*ç ú.¦Î<C2A6> ÊÑQtÒq-Úì†ñùé;y…ÿÚåJ¤ëxçLË"&ª¸Kôdì™<C3AC>J8Ò7ÏmdKjNc8WfFjkszCzNïüЄûÿÿÿÿ<10>? øÐƒÉ<10>?ï¾ÀßPõòþßÿÿÿÿÿ»" D­»" ¤¶‚§»" øÒϰ»"H•ÿÿÿÿÿ»

View File

@ -1 +1 @@
Df<EFBFBD><EFBFBD>[%<25><><EFBFBD> <0E>;<3B><><EFBFBD>Օ
ø)Ë4LÙ±>¬o5†œÆ0@©Ð<C2A9>j

View File

@ -1,16 +1,16 @@
{
"deviceInfoVersion": 3,
"data": {
"display": "MIRAI.074628.001",
"display": "MIRAI.392537.001",
"product": "mirai",
"device": "mirai",
"board": "mirai",
"brand": "mamoe",
"model": "mirai",
"bootloader": "unknown",
"fingerprint": "mamoe/mirai/mirai:10/MIRAI.200122.001/2819673:user/release-keys",
"bootId": "76B9D71B-4A8F-97CD-6FC4-F62EBE5B8659",
"procVersion": "Linux version 3.0.31-3brWF0I4 (android-build@xxx.xxx.xxx.xxx.com)",
"fingerprint": "mamoe/mirai/mirai:10/MIRAI.200122.001/5356319:user/release-keys",
"bootId": "C16ED143-ED2F-19D7-E471-613A1016DC57",
"procVersion": "Linux version 3.0.31-9ucOo77W (android-build@xxx.xxx.xxx.xxx.com)",
"baseBand": "",
"version": {
"incremental": "5891938",
@ -22,9 +22,9 @@
"macAddress": "02:00:00:00:00:00",
"wifiBSSID": "02:00:00:00:00:00",
"wifiSSID": "<unknown ssid>",
"imsiMd5": "5fbedd6fc0a2fd3a618bdbfadc07e45a",
"imei": "866610075074640",
"imsiMd5": "1e993634b646cf697263ded647a6d7f5",
"imei": "864839791425396",
"apn": "wifi",
"androidId": "369f72816c9da06b"
"androidId": "3f252824bf2e97d9"
}
}

View File

@ -18,8 +18,8 @@ public class listController {
"今日收到的群聊临时会话消息:[" + HandleMessageListener.groupTempMessageCount + "]条<br><br>" +
"今日群聊1违禁消息[" + RecallMessageListener.group1InvalidCount + "]条<br>" +
"今日群聊2违禁消息[" + RecallMessageListener.group2InvalidCount + "]条<br>" +
"今日群聊1违禁超过5次名单:" + RecallMessageListener.group1InvalidMember + "<br>" +
"今日群聊2违禁超过5次名单:" + RecallMessageListener.group2InvalidMember + "<br><br>" +
"今日群聊1违禁超过5次的QQ号名单:" + RecallMessageListener.group1InvalidMember + "<br>" +
"今日群聊2违禁超过5次的QQ号名单:" + RecallMessageListener.group2InvalidMember + "<br><br>" +
"今日机器人被骚扰次数:[" + ReceiveGroupListener.receiveCount + "]<br>" +
"今日钓鱼次数:[" + fishListener.fishCount + "]<br><br>" +
"<a href='index.html'>返回标题页面</a>";

View File

@ -17,36 +17,35 @@ public class RecallMessageListener extends MessageListener {
public static int group2InvalidCount = 0;
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 static List<String> group2InvalidMember = new ArrayList<String>();
public static List<Long> group2InvalidMember = new ArrayList<Long>();
public RecallMessageListener() {
super(List.of("原神", "OP"), 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();
if (this.invalidText(message)) {
event.getSender().mute(60);//禁言60秒
Thread.sleep(500);//半秒后撤回方便演示
this.recallMessage(event.getMessage());
groupInvalidCount++;
invalidMember.invalidCountList(groupMemberInvalidedCountList, event);
invalidMember.invalidMemberList(groupInvalidMember, groupMemberInvalidedCountList, event);
return groupInvalidCount;
}
return groupInvalidCount;
}
@RobotListenerHandler(contactId = 518909220)//监控增加群聊1
public void recallGroup1Message(GroupMessageEvent event) throws InterruptedException {
recall(event);
group1InvalidCount++;
invalidMember.invalidCountList(group1MemberInvalidedCountList, event);
invalidMember.invalidMemberList(group1InvalidMember, group1MemberInvalidedCountList, event);
group1InvalidCount = recall(event, group1InvalidCount, group1MemberInvalidedCountList, group1InvalidMember);
}
@RobotListenerHandler(contactId = 1033597003)//监控增加群聊2
public void recallGroup2Message(GroupMessageEvent event) throws InterruptedException {
recall(event);
group2InvalidCount++;
invalidMember.invalidCountList(group2MemberInvalidedCountList, event);
invalidMember.invalidMemberList(group2InvalidMember, group2MemberInvalidedCountList, event);
group2InvalidCount = recall(event, group2InvalidCount, group2MemberInvalidedCountList, group2InvalidMember);
}
}

View File

@ -15,7 +15,7 @@ import java.util.Random;
@RobotListener
public class fishListener extends MessageListener {
public static int fishCount = 0;
String[] fishes = {"鲨鱼", "金龙鱼", "鲤鱼", "鲫鱼", "鲅鱼", "罗非鱼", "鲸鱼", "闲鱼", ""};
String[] fishes = {"鲨鱼", "金龙鱼", "鲤鱼", "鲫鱼", "鲅鱼", "罗非鱼", "鲸鱼", "闲鱼", "萨卡班甲鱼", ""};
public fishListener() {
super(List.of("钓鱼"), true);
@ -34,6 +34,7 @@ public class fishListener extends MessageListener {
event.getGroup().sendMessage(chain);//发送消息到群聊
System.out.println(chain);
Thread.sleep(10000);
int whichFish = random.nextInt(fishes.length);
if (whichFish == fishes.length - 1) {
chain = new MessageChainBuilder()

View File

@ -6,8 +6,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class QqBotApplication {
public static void main(String[] args) {
SpringApplication.run(QqBotApplication.class, args);
}
public static void main(String[] args) {
SpringApplication.run(QqBotApplication.class, args);
}
}

View File

@ -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)) {
groupInvalidMember.add(event.getSenderName());
groupInvalidMember.add(event.getSender().getId());
}
}
}

View File

@ -6,7 +6,7 @@ itbaima:
password: mtzmtq2002
signer:
version: 9.0.30
version: 8.9.71
url: http://localhost:8888
type: fuqiuluo
authorization-key: 114514
@ -16,12 +16,12 @@ itbaima:
work-dir: robot-data
cache-dir: cache
spring:
datasource:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/database
username: root
password: 123456
#spring:
# datasource:
# driverClassName: com.mysql.cj.jdbc.Driver
# url: jdbc:mysql://localhost:3306/database
# username: root
# password: 123456
server:
port: 8080

View File

@ -1,255 +1,7 @@
<html>
<head>
<meta charset="UTF-8">
<style>
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>
<link rel="stylesheet" href="qq-bot.css">
</head>
<body id="bg">
@ -290,9 +42,9 @@
</div>
<div id="作品简介3">
<div class="大圆角标签3"></div>
<h2>&nbspQ3mirai框架的QQ机器人区别于其他QQ机器人的亮点有哪些</h2>
<h2>&nbspQ3Mirai框架的QQ机器人区别于其他QQ机器人的亮点有哪些</h2>
<p>
mirai框架发展时间长技术更成熟现有的更好的QQ机器人框架都是在mirai基础上进行迭代升级的所以对QQ机器人的框架学习更有帮助</P>
Mirai框架发展时间长技术更成熟现有的更好的QQ机器人框架都是在Mirai基础上进行迭代升级的所以对QQ机器人的框架学习更有帮助</P>
</div>
<div id="作品简介4">
@ -413,6 +165,7 @@
<h2>&nbsp后记</h2>
<p>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp我们项目组由衷的感谢Mirai框架与将Mirai框架集成到SpringBoot中的各位前辈正是他们的开源精神推动了整个社区的良性发展,</p>
<p>得以让我们能够站在巨人的肩膀头上实现我们自己的想法</p>
<p>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp同时感谢我的SpringBoot课的老师陈闯闯老师。如果没有老师带着我们入门就不会有如今的这个项目</p>
<p>&nbsp</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>

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;
}