@@ -7,8 +7,10 @@ import (
77)
88
99type (
10- PrivateMessagePlugin = func (* client.QQClient , * message.PrivateMessage ) int32
11- GroupMessagePlugin = func (* client.QQClient , * message.GroupMessage ) int32
10+ PrivateMessagePlugin = func (* client.QQClient , * message.PrivateMessage ) int32
11+ GroupMessagePlugin = func (* client.QQClient , * message.GroupMessage ) int32
12+ MemberJoinGroupPlugin = func (* client.QQClient , * client.MemberJoinGroupEvent ) int32
13+ MemberLeaveGroupPlugin = func (* client.QQClient , * client.MemberLeaveGroupEvent ) int32
1214)
1315
1416const (
@@ -18,11 +20,14 @@ const (
1820
1921var PrivateMessagePluginList = make ([]PrivateMessagePlugin , 0 )
2022var GroupMessagePluginList = make ([]GroupMessagePlugin , 0 )
23+ var MemberJoinGroupPluginList = make ([]MemberJoinGroupPlugin , 0 )
24+ var MemberLeaveGroupPluginList = make ([]MemberLeaveGroupPlugin , 0 )
2125
2226func Serve (cli * client.QQClient ) {
2327 cli .OnPrivateMessage (handlePrivateMessage )
2428 cli .OnGroupMessage (handleGroupMessage )
25-
29+ cli .OnGroupMemberJoined (handleMemberJoinGroup )
30+ cli .OnGroupMemberLeaved (handleMemberLeaveGroup )
2631}
2732
2833// 添加私聊消息插件
@@ -35,20 +40,50 @@ func AddGroupMessagePlugin(plugin GroupMessagePlugin) {
3540 GroupMessagePluginList = append (GroupMessagePluginList , plugin )
3641}
3742
38- func handlePrivateMessage (cli * client.QQClient , msg * message.PrivateMessage ) {
43+ // 添加群成员加入插件
44+ func AddMemberJoinGroupPlugin (plugin MemberJoinGroupPlugin ) {
45+ MemberJoinGroupPluginList = append (MemberJoinGroupPluginList , plugin )
46+ }
47+
48+ // 添加群成员离开插件
49+ func AddMemberLeaveGroupPlugin (plugin MemberLeaveGroupPlugin ) {
50+ MemberLeaveGroupPluginList = append (MemberLeaveGroupPluginList , plugin )
51+ }
52+
53+ func handlePrivateMessage (cli * client.QQClient , event * message.PrivateMessage ) {
3954 SafeGo (func () {
4055 for _ , plugin := range PrivateMessagePluginList {
41- if result := plugin (cli , msg ); result == MessageBlock {
56+ if result := plugin (cli , event ); result == MessageBlock {
4257 break
4358 }
4459 }
4560 })
4661}
4762
48- func handleGroupMessage (cli * client.QQClient , msg * message.GroupMessage ) {
63+ func handleGroupMessage (cli * client.QQClient , event * message.GroupMessage ) {
4964 SafeGo (func () {
5065 for _ , plugin := range GroupMessagePluginList {
51- if result := plugin (cli , msg ); result == MessageBlock {
66+ if result := plugin (cli , event ); result == MessageBlock {
67+ break
68+ }
69+ }
70+ })
71+ }
72+
73+ func handleMemberJoinGroup (cli * client.QQClient , event * client.MemberJoinGroupEvent ) {
74+ SafeGo (func () {
75+ for _ , plugin := range MemberJoinGroupPluginList {
76+ if result := plugin (cli , event ); result == MessageBlock {
77+ break
78+ }
79+ }
80+ })
81+ }
82+
83+ func handleMemberLeaveGroup (cli * client.QQClient , event * client.MemberLeaveGroupEvent ) {
84+ SafeGo (func () {
85+ for _ , plugin := range MemberLeaveGroupPluginList {
86+ if result := plugin (cli , event ); result == MessageBlock {
5287 break
5388 }
5489 }
0 commit comments