public static void checkCrewGroup() { Dictionary <int, long> l = DataBase.me.listCrewBound(); List <long> g = DataBase.me.getCrewGroup(); List <long> crews = new List <long>(); string msg = ""; foreach (long gg in g) { IGroupMemberInfo[] gpmemberlist = session.GetGroupMemberListAsync(gg).Result; foreach (IGroupMemberInfo ginfo in gpmemberlist) { crews.Add(ginfo.Id); } } foreach (KeyValuePair <int, long> kvp in l) { if (!crews.Contains(kvp.Value)) { BiliUser u = new BiliUser(kvp.Key, biliapi); msg += "Bili:" + u.name + " => QQ:" + kvp.Value + "\n"; } } MainHolder.broadcaster.BroadcastToAdminGroup("[舰长群维护]\n以下舰长已绑定QQ但是还没有进入舰长群:\n" + msg); }
public async Task HandleMessageAsync(IMiraiHttpSession session, IGroupMessageEventArgs e) { if (!CheckPreconditions(e.Sender)) { return; } LogHelper.WriteInfoLog($"收到来自{e.Sender.Id}的群消息"); int quoteId = (e.Chain[0] as SourceMessage).Id; for (int i = 0; i < e.Chain.Length; i++) { //获取@群名片 if (e.Chain[i] is IAtMessage atMsg) { IGroupMemberInfo[] groupMemberInfos = await session.GetGroupMemberListAsync(e.Sender.Group.Id); IGroupMemberInfo targetQQ = groupMemberInfos.Where(m => m.Id == atMsg.Target).FirstOrDefault(); string nickName = targetQQ?.Name; e.Chain[i] = new AtMessage(atMsg.Target, nickName); } } bool isHandle = await MessageHandler.HandleMesage(e.Chain.ToOnionsMessages(e.Sender.Id, e.Sender.Name), e.Sender.Group.Id, async outMsg => { if (outMsg != null) { int iRevokeTime = outMsg.RevokeTime; var msg = await outMsg.ToMiraiApiHttpMessages(session, UploadTarget.Group); _ = session.SendGroupMessageAsync(e.Sender.Group.Id, msg, outMsg.Reply ? quoteId : null).ContinueWith(async sendedCallBack => { if (iRevokeTime > 0) { await Task.Delay(1000 * iRevokeTime); _ = session.RevokeMessageAsync(sendedCallBack.Result); } }); } }); e.BlockRemainingHandlers = isHandle; }