2020 GroupMessageRecalledPlugin = func (* client.QQClient , * client.GroupMessageRecalledEvent ) int32
2121 FriendMessageRecalledPlugin = func (* client.QQClient , * client.FriendMessageRecalledEvent ) int32
2222 NewFriendAddedPlugin = func (* client.QQClient , * client.NewFriendEvent ) int32
23+ OfflineFilePlugin = func (* client.QQClient , * client.OfflineFileEvent ) int32
2324)
2425
2526const (
@@ -40,6 +41,7 @@ var GroupInvitedRequestPluginList = make([]GroupInvitedRequestPlugin, 0)
4041var GroupMessageRecalledPluginList = make ([]GroupMessageRecalledPlugin , 0 )
4142var FriendMessageRecalledPluginList = make ([]FriendMessageRecalledPlugin , 0 )
4243var NewFriendAddedPluginList = make ([]NewFriendAddedPlugin , 0 )
44+ var OfflineFilePluginList = make ([]OfflineFilePlugin , 0 )
4345
4446func Serve (cli * client.QQClient ) {
4547 cli .OnPrivateMessage (handlePrivateMessage )
@@ -55,6 +57,7 @@ func Serve(cli *client.QQClient) {
5557 cli .OnGroupMessageRecalled (handleGroupMessageRecalled )
5658 cli .OnFriendMessageRecalled (handleFriendMessageRecalled )
5759 cli .OnNewFriendAdded (handleNewFriendAdded )
60+ cli .OnReceivedOfflineFile (handleOfflineFile )
5861}
5962
6063// 添加私聊消息插件
@@ -122,6 +125,11 @@ func AddNewFriendAddedPlugin(plugin NewFriendAddedPlugin) {
122125 NewFriendAddedPluginList = append (NewFriendAddedPluginList , plugin )
123126}
124127
128+ // 添加离线文件处理插件
129+ func AddOfflineFilePlugin (plugin OfflineFilePlugin ) {
130+ OfflineFilePluginList = append (OfflineFilePluginList , plugin )
131+ }
132+
125133func handlePrivateMessage (cli * client.QQClient , event * message.PrivateMessage ) {
126134 SafeGo (func () {
127135 for _ , plugin := range PrivateMessagePluginList {
@@ -252,6 +260,16 @@ func handleNewFriendAdded(cli *client.QQClient, event *client.NewFriendEvent) {
252260 })
253261}
254262
263+ func handleOfflineFile (cli * client.QQClient , event * client.OfflineFileEvent ) {
264+ SafeGo (func () {
265+ for _ , plugin := range OfflineFilePluginList {
266+ if result := plugin (cli , event ); result == MessageBlock {
267+ break
268+ }
269+ }
270+ })
271+ }
272+
255273func SafeGo (fn func ()) {
256274 go func () {
257275 defer func () {
0 commit comments