zxl
/
CTT
forked from Cal/CTT
1
0
Fork 0
CTT/Server/Hotfix/Game/Event/ProtoParserErrorEvent.cs

40 lines
1.4 KiB
C#
Raw Normal View History

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