old_flsystem/类库/Chat.Framework/QQSdk/QQEventManage.cs

175 lines
5.8 KiB
C#
Raw Permalink Normal View History

2022-09-20 03:10:29 +00:00
using Chat.Framework.QQSdk.Events;
using Robot.Framework.Entities;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Chat.Framework.QQSdk
{
/// <summary>
/// QQ事件管理
/// </summary>
public class QQEventManage
{
/// <summary>
/// QQ登陆状态发生改变事件
/// </summary>
public event EventHandler<QQLoginChangeEvents> LoginChangeEvent;
/// <summary>
/// QQ登录状态发生改变调用
/// </summary>
/// <param name="e"></param>
public void OnEvent(QQLoginChangeEvents e)
{
if (LoginChangeEvent != null && e != null)
if (e.IsLogin)
{
try
{
2023-02-25 05:41:53 +00:00
var qq = e.QQBase.QQ.ToString();
var c = Grant.Framework.GrantClient.Get().Login(qq, e.QQBase.Nickname, 1002, "3782F5365510E5B25F4FA6FFC04255CB");
2022-09-20 03:10:29 +00:00
//e.QQClient.User.LoginTime = DateTime.Parse(c.endTime);
Console.WriteLine("登陆状态改变: " + e.Message);
}
catch (Exception ex)
{
OnEvent(new QQLogEvents(e.QQBase) { Message = $"QQ:【{e.QQBase.Nickname}{e.QQBase.QQ})】->授权异常:{ ex.Message}" });
if (e.QQBase != null && e.QQBase.QQ != 0) Grant.Framework.GrantClient.Get().LoginOut(e.QQBase.QQ.ToString(), 1002);
ChatClient.LoginOutQQ(e.QQBase.QQ.ToString());
return;
}
}
if (LoginChangeEvent != null) LoginChangeEvent.Invoke(e.QQBase, e);
}
/// <summary>
/// QQ信息发生改变事件
/// </summary>
public event EventHandler<QQRefreshUser> QQRefreshUserEvent;
/// <summary>
/// QQ信息发生改变调用
/// </summary>
/// <param name="e"></param>
public void OnEvent(QQRefreshUser e)
{
if (this.QQRefreshUserEvent != null) this.QQRefreshUserEvent.Invoke(e.QQBase, e);
}
/// <summary>
/// QQ收到好友消息事件
/// </summary>
public event EventHandler<QQReceiveFriendMsgEvents> QQReceiveFriendMsgEvents;
/// <summary>
/// QQ收到好友信息调用
/// </summary>
/// <param name="e"></param>
internal void OnEvent(QQReceiveFriendMsgEvents e)
{
if (QQReceiveFriendMsgEvents != null) QQReceiveFriendMsgEvents.Invoke(e.QQBase, e);
OnEvent(new QQLogEvents(e.QQBase) { Message = e.ToString() });
}
/// <summary>
/// 日志消息事件
/// </summary>
public event EventHandler<QQLogEvents> QQLogEvents;
/// <summary>
/// 日志消息调用
/// </summary>
/// <param name="e"></param>
internal void OnEvent(QQLogEvents e)
{
if (QQLogEvents != null) QQLogEvents.Invoke(e.QQBase, e);
}
/// <summary>
/// QQ收到群消息事件
/// </summary>
public event EventHandler<QQReceiveGroupMsgEvents> QQReceiveGroupMsgEvents;
/// <summary>
/// QQ收到群消息调用
/// </summary>
/// <param name="e"></param>
internal void OnEvent(QQReceiveGroupMsgEvents e)
{
if (QQReceiveGroupMsgEvents != null) QQReceiveGroupMsgEvents.Invoke(e.QQBase, e);
OnEvent(new QQLogEvents(e.QQBase) { Message = e.ToString() });
}
/// <summary>
/// QQ有人添加我为好友,需要审核事件
/// </summary>
public event EventHandler<QQAddMeNeedAuthEvents> QQAddMeNeedAuthEvents;
/// <summary>
/// QQ有人添加我为好友,需要审核调用
/// </summary>
/// <param name="e"></param>
internal void OnEvent(QQAddMeNeedAuthEvents e)
{
if (QQAddMeNeedAuthEvents != null) QQAddMeNeedAuthEvents.Invoke(e.QQBase, e);
OnEvent(new QQLogEvents(e.QQBase) { Message = e.ToString() });
}
/// <summary>
/// QQ有人添加我为好友事件
/// </summary>
public event EventHandler<QQNewFriendEvents> QQNewFriendEvents;
/// <summary>
/// QQ有人添加我为好友调用
/// </summary>
/// <param name="e"></param>
internal void OnEvent(QQNewFriendEvents e)
{
if (QQNewFriendEvents != null) QQNewFriendEvents.Invoke(e.QQBase, e);
OnEvent(new QQLogEvents(e.QQBase) { Message = e.ToString() });
}
/// <summary>
/// QQ群新增成员事件
/// </summary>
public event EventHandler<QQNewGroupMemberEvents> QQNewGroupMemberEvents;
/// <summary>
/// QQ群新增成员调用
/// </summary>
/// <param name="e"></param>
internal void OnEvent(QQNewGroupMemberEvents e)
{
if (QQNewGroupMemberEvents != null) QQNewGroupMemberEvents.Invoke(e.QQBase, e);
OnEvent(new QQLogEvents(e.QQBase) { Message = e.ToString() });
}
/// <summary>
/// QQ有人进群,需要审核事件
/// </summary>
public event EventHandler<QQAddToClusterNeedAuthEvents> QQAddToClusterNeedAuthEvents;
/// <summary>
/// QQ有人进群,需要审核调用
/// </summary>
/// <param name="e"></param>
internal void OnEvent(QQAddToClusterNeedAuthEvents e)
{
if (QQAddToClusterNeedAuthEvents != null) QQAddToClusterNeedAuthEvents.Invoke(e.QQBase, e);
OnEvent(new QQLogEvents(e.QQBase) { Message = e.ToString() });
}
}
}