using MongoDB.Driver; using System; using System.Collections.Generic; using System.Text; namespace ET { public class ProtoParserErrorEvent : AEvent { public override async ETTask Run(EventType.ProtoParserError args) { string ip = args.remoteIp; ForbiddenIP forbiddenIP; List list = await DBComponent.Instance.QueryFilter(Builders.Filter.Eq(t => t.Ip, ip)); if(list ==null || list.Count == 0) { forbiddenIP = EntityFactory.Create(Game.Scene); forbiddenIP.Ip = ip; } else { forbiddenIP = list[0]; } forbiddenIP.count++; await DBComponent.Instance.Save(forbiddenIP); //!检查所有帐号 List accountList = await DBComponent.Instance.QueryFilter(Builders.Filter.Or( Builders.Filter.Eq(t => t.CreateIp, ip), Builders.Filter.Eq(t => t.LastIp, ip) )); if(accountList!=null && accountList.Count != 0) { Account account = accountList[0]; account.IsStopSeal = true; await DBComponent.Instance.Save(account); } } } }