From 61625f2e32ba8f79586859d4080c6fbe65786c57 Mon Sep 17 00:00:00 2001 From: Mrs4s <1844812067@qq.com> Date: Sat, 23 Jan 2021 00:19:48 +0800 Subject: [PATCH] feature client status updated event. --- coolq/bot.go | 1 + coolq/event.go | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/coolq/bot.go b/coolq/bot.go index 7377be9..162a893 100644 --- a/coolq/bot.go +++ b/coolq/bot.go @@ -77,6 +77,7 @@ func NewQQBot(cli *client.QQClient, conf *global.JSONConfig) *CQBot { bot.Client.OnNewFriendAdded(bot.friendAddedEvent) bot.Client.OnGroupInvited(bot.groupInvitedEvent) bot.Client.OnUserWantJoinGroup(bot.groupJoinReqEvent) + bot.Client.OnOtherClientStatusChanged(bot.otherClientStatusChangedEvent) go func() { i := conf.HeartbeatInterval if i < 0 { diff --git a/coolq/event.go b/coolq/event.go index 30d718f..5555563 100644 --- a/coolq/event.go +++ b/coolq/event.go @@ -413,6 +413,27 @@ func (bot *CQBot) groupJoinReqEvent(c *client.QQClient, e *client.UserJoinGroupR }) } +func (bot *CQBot) otherClientStatusChangedEvent(c *client.QQClient, e *client.OtherClientStatusChangedEvent) { + if e.Online { + log.Infof("Bot 账号在客户端 %v (%v) 登录.", e.Client.DeviceName, e.Client.DeviceKind) + } else { + log.Infof("Bot 账号在客户端 %v (%v) 登出.", e.Client.DeviceName, e.Client.DeviceKind) + } + bot.dispatchEventMessage(MSG{ + "post_type": "notice", + "notice_type": "client_status", + "client": MSG{ + "online": e.Online, + "app_id": e.Client.AppId, + "device_name": e.Client.DeviceName, + "device_kind": e.Client.DeviceKind, + }, + "self_id": c.Uin, + "time": time.Now().Unix(), + }) + +} + func (bot *CQBot) groupIncrease(groupCode, operatorUin, userUin int64) MSG { return MSG{ "post_type": "notice",