コード例 #1
0
ファイル: PlayerHelper.cs プロジェクト: oDenZeL/arma3beclient
        public IEnumerable <PlayerView> GetPlayerView(IEnumerable <Player> list)
        {
            var players = list.ToList();
            var guids   = players.Select(x => x.Guid).ToList();

            var playersInDb = _playerRepository.GetPlayers(guids);

            var result = players.Select(x => new PlayerView
            {
                Guid  = x.Guid,
                IP    = x.IP,
                Name  = x.Name,
                Num   = x.Num,
                Ping  = x.Ping,
                State = x.State,
                Port  = x.Port
            }).ToList();

            result.ForEach(x =>
            {
                var p = playersInDb.FirstOrDefault(y => y.GUID == x.Guid);
                if (p != null)
                {
                    x.Id      = p.Id;
                    x.Comment = p.Comment;
                }
            });

            var filterUsers = result.FirstOrDefault(x => !NameRegex.IsMatch(x.Name));

            if (filterUsers != null)
            {
#pragma warning disable 4014
                _banHelper.Kick(_serverId, filterUsers.Num, filterUsers.Guid, "bot: Fill Nickname");
#pragma warning restore 4014
            }

            var badNicknames = ConfigurationManager.AppSettings["Bad_Nicknames"];
            if (!string.IsNullOrEmpty(badNicknames))
            {
                var names = badNicknames.ToLower().Split('|').Distinct().ToDictionary(x => x);


                var bad =
                    result.FirstOrDefault(x => !string.IsNullOrEmpty(x.Name) && names.ContainsKey(x.Name.ToLower()));

                if (bad != null)
#pragma warning disable 4014
                {
                    _banHelper.Kick(_serverId, bad.Num, bad.Guid, "bot: Bad Nickname");
                }
#pragma warning restore 4014
            }


            return(result);
        }
コード例 #2
0
 private void KickClick(object sender, RoutedEventArgs e)
 {
     _playerHelper.Kick(_serverId, _playerNum, _playerGuid, tbReason.Text);
     Close();
 }