1818 GroupInvitedRequestPlugin = func (* client.QQClient , * client.GroupInvitedRequest ) int32
1919 GroupMessageRecalledPlugin = func (* client.QQClient , * client.GroupMessageRecalledEvent ) int32
2020 FriendMessageRecalledPlugin = func (* client.QQClient , * client.FriendMessageRecalledEvent ) int32
21+ NewFriendAddedPlugin = func (* client.QQClient , * client.NewFriendEvent ) int32
2122)
2223
2324const (
@@ -36,6 +37,7 @@ var UserJoinGroupRequestPluginList = make([]UserJoinGroupRequestPlugin, 0)
3637var GroupInvitedRequestPluginList = make ([]GroupInvitedRequestPlugin , 0 )
3738var GroupMessageRecalledPluginList = make ([]GroupMessageRecalledPlugin , 0 )
3839var FriendMessageRecalledPluginList = make ([]FriendMessageRecalledPlugin , 0 )
40+ var NewFriendAddedPluginList = make ([]NewFriendAddedPlugin , 0 )
3941
4042func Serve (cli * client.QQClient ) {
4143 cli .OnPrivateMessage (handlePrivateMessage )
@@ -49,6 +51,7 @@ func Serve(cli *client.QQClient) {
4951 cli .OnGroupInvited (handleGroupInvitedRequest )
5052 cli .OnGroupMessageRecalled (handleGroupMessageRecalled )
5153 cli .OnFriendMessageRecalled (handleFriendMessageRecalled )
54+ cli .OnNewFriendAdded (handleNewFriendAdded )
5255}
5356
5457// 添加私聊消息插件
@@ -106,6 +109,11 @@ func AddFriendMessageRecalledPlugin(plugin FriendMessageRecalledPlugin) {
106109 FriendMessageRecalledPluginList = append (FriendMessageRecalledPluginList , plugin )
107110}
108111
112+ // 添加好友添加处理插件
113+ func AddNewFriendAddedPlugin (plugin NewFriendAddedPlugin ) {
114+ NewFriendAddedPluginList = append (NewFriendAddedPluginList , plugin )
115+ }
116+
109117func handlePrivateMessage (cli * client.QQClient , event * message.PrivateMessage ) {
110118 SafeGo (func () {
111119 for _ , plugin := range PrivateMessagePluginList {
@@ -216,6 +224,16 @@ func handleFriendMessageRecalled(cli *client.QQClient, event *client.FriendMessa
216224 })
217225}
218226
227+ func handleNewFriendAdded (cli * client.QQClient , event * client.NewFriendEvent ) {
228+ SafeGo (func () {
229+ for _ , plugin := range NewFriendAddedPluginList {
230+ if result := plugin (cli , event ); result == MessageBlock {
231+ break
232+ }
233+ }
234+ })
235+ }
236+
219237func SafeGo (fn func ()) {
220238 go func () {
221239 defer func () {
0 commit comments