Пример #1
0
 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));
     }
 }
Пример #2
0
 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));
     }
 }
Пример #3
0
        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);
        }
Пример #4
0
 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));
     }
 }