public CurrentLobbyStats GetCurrentStats() { var ret = new CurrentLobbyStats(); foreach (var u in client.ExistingUsers.Values) { if (!u.IsBot && !u.IsInGame && !u.IsInBattleRoom) { ret.UsersIdle++; } } foreach (var b in client.ExistingBattles.Values) { if (!GlobalConst.IsZkMod(b.ModName)) { continue; } foreach (var u in b.Users.Select(x => x.LobbyUser)) { if (u.IsBot) { continue; } if (u.IsInGame) { ret.UsersFighting++; } else if (u.IsInBattleRoom) { ret.UsersWaiting++; } } if (b.IsInGame) { ret.BattlesRunning++; } else { ret.BattlesWaiting++; } } return(ret); }
static CurrentLobbyStats GetCurrentLobbyStats() { var ret = new CurrentLobbyStats(); if (Global.Server != null) { ret.UsersOnline = Global.Server.ConnectedUsers.Count; foreach (var b in Global.Server.Battles.Values) { if (b.IsInGame) { ret.BattlesRunning++; ret.UsersFighting += b.NonSpectatorCount + b.SpectatorCount; } } ret.UsersDiscord = Global.Server.GetDiscordUserCount(); } return(ret); }
static CurrentLobbyStats GetCurrentLobbyStats() { var ret = new CurrentLobbyStats(); ret.UsersIdle = Global.Server.ConnectedUsers.Values.Count(x => !x.User.IsBot && !x.User.IsInGame && !x.User.IsInBattleRoom); foreach (var b in Global.Server.Battles.Values) { foreach (var u in b.Users.Values.Select(x => x.LobbyUser)) { if (u.IsBot) { continue; } if (u.IsInGame) { ret.UsersFighting++; } else if (u.IsInBattleRoom) { ret.UsersWaiting++; } } if (b.IsInGame) { ret.BattlesRunning++; } else { ret.BattlesWaiting++; } } var lastMonth = DateTime.Now.AddDays(-31); ret.UsersLastMonth = new ZkDataContext().SpringBattlePlayers.Where(x => x.SpringBattle.StartTime > lastMonth).GroupBy(x => x.AccountID).Count(); return(ret); }