mirror of
https://github.com/RaidMax/IW4M-Admin.git
synced 2025-06-10 15:20:48 -05:00
collect data when server offline
This commit is contained in:
@ -1003,7 +1003,7 @@ namespace IW4MAdmin
|
||||
{
|
||||
if (!Throttled)
|
||||
{
|
||||
var _event = new GameEvent()
|
||||
var gameEvent = new GameEvent
|
||||
{
|
||||
Type = GameEvent.EventType.ConnectionLost,
|
||||
Owner = this,
|
||||
@ -1013,36 +1013,18 @@ namespace IW4MAdmin
|
||||
Data = ConnectionErrors.ToString()
|
||||
};
|
||||
|
||||
Manager.AddEvent(_event);
|
||||
Manager.AddEvent(gameEvent);
|
||||
}
|
||||
|
||||
RunServerCollection();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
LastMessage = DateTime.Now - start;
|
||||
lastCount = DateTime.Now;
|
||||
|
||||
var appConfig = _serviceProvider.GetService<ApplicationConfiguration>();
|
||||
// update the player history
|
||||
if (lastCount - playerCountStart >= appConfig.ServerDataCollectionInterval)
|
||||
{
|
||||
var maxItems = Math.Ceiling(appConfig.MaxClientHistoryTime.TotalMinutes /
|
||||
appConfig.ServerDataCollectionInterval.TotalMinutes);
|
||||
|
||||
while (ClientHistory.ClientCounts.Count > maxItems)
|
||||
{
|
||||
ClientHistory.ClientCounts.RemoveAt(0);
|
||||
}
|
||||
|
||||
ClientHistory.ClientCounts.Add(new ClientCountSnapshot
|
||||
{
|
||||
ClientCount = ClientNum,
|
||||
ConnectionInterrupted = Throttled,
|
||||
Time = DateTime.UtcNow,
|
||||
Map = CurrentMap.Name
|
||||
});
|
||||
playerCountStart = DateTime.Now;
|
||||
}
|
||||
RunServerCollection();
|
||||
|
||||
// send out broadcast messages
|
||||
if (LastMessage.TotalSeconds > Manager.GetApplicationSettings().Configuration().AutoMessagePeriod
|
||||
@ -1090,6 +1072,34 @@ namespace IW4MAdmin
|
||||
}
|
||||
}
|
||||
|
||||
private void RunServerCollection()
|
||||
{
|
||||
var appConfig = _serviceProvider.GetService<ApplicationConfiguration>();
|
||||
|
||||
if (lastCount - playerCountStart < appConfig?.ServerDataCollectionInterval)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var maxItems = Math.Ceiling(appConfig.MaxClientHistoryTime.TotalMinutes /
|
||||
appConfig.ServerDataCollectionInterval.TotalMinutes);
|
||||
|
||||
while (ClientHistory.ClientCounts.Count > maxItems)
|
||||
{
|
||||
ClientHistory.ClientCounts.RemoveAt(0);
|
||||
}
|
||||
|
||||
ClientHistory.ClientCounts.Add(new ClientCountSnapshot
|
||||
{
|
||||
ClientCount = ClientNum,
|
||||
ConnectionInterrupted = Throttled,
|
||||
Time = DateTime.UtcNow,
|
||||
Map = CurrentMap.Name
|
||||
});
|
||||
|
||||
playerCountStart = DateTime.Now;
|
||||
}
|
||||
|
||||
public async Task Initialize()
|
||||
{
|
||||
try
|
||||
|
Reference in New Issue
Block a user