public void RemoveTeam(Team team) { if (!Teams.Contains(team)) { throw new KeyNotFoundException("This team is not known to the server."); } Teams.Remove(team); foreach (var client in Server.Clients.Where(c => c.IsLoggedIn)) { client.SendPacket(SetTeamsPacket.RemoveTeam(team.Name)); } }
public void RemovePlayers(params string[] players) { if (players.Any(p => !Players.Contains(p))) { throw new KeyNotFoundException("The specified players are not on this team."); } foreach (var p in players) { Players.Remove(p); } foreach (var client in Server.Clients.Where(c => c.IsLoggedIn)) { client.SendPacket(SetTeamsPacket.RemovePlayers(Name, players)); } }
public Team CreateTeam(string name, string displayName, bool allowFriendlyFire, string playerPrefix, string playerSuffix) { if (Teams.Any(t => t.Name == name)) { throw new DuplicateKeyException("The specified team already exists."); } var team = new Team(Server, this, name, displayName, allowFriendlyFire, playerPrefix, playerSuffix); foreach (var client in Server.Clients.Where(c => c.IsLoggedIn)) { client.SendPacket(SetTeamsPacket.CreateTeam(name, displayName, playerPrefix, playerSuffix, allowFriendlyFire, new string[0])); } Teams.Add(team); return(team); }
public void AddPlayers(params string[] players) { if (Players.Any(players.Contains)) { throw new DuplicateKeyException("The players being added are already on this team."); } Players.AddRange(players); foreach (var team in ScoreboardManager.Teams.Where(t => t != this)) { foreach (var player in players.Where(team.Players.Contains)) { team.RemovePlayers(player); } } foreach (var client in Server.Clients.Where(c => c.IsLoggedIn)) { client.SendPacket(SetTeamsPacket.AddPlayers(Name, players)); } }