40 lines
1.3 KiB
C#
40 lines
1.3 KiB
C#
|
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;
|
|||
|
var 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);
|
|||
|
//!检查所有帐号
|
|||
|
var 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);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|