40 lines
1.4 KiB
C#
Executable File
40 lines
1.4 KiB
C#
Executable File
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;
|
|
List<ForbiddenIP> list = await DBComponent.Instance.QueryFilter(Builders<ForbiddenIP>.Filter.Eq(t => t.Ip, ip));
|
|
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);
|
|
//!检查所有帐号
|
|
List<Account> accountList = await DBComponent.Instance.QueryFilter(Builders<Account>.Filter.Or(
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
}
|