Exemplo n.º 1
0
        private bool FindPlayer(IMyPlayer player, long id)
        {
            if (player.IdentityId == id)
            {
                Players[id] = player;
                SteamToPlayer[player.SteamUserId]         = id;
                PlayerMouseStates[id]                     = new InputStateData();
                PlayerDummyTargets[id]                    = new FakeTarget();
                PlayerEntityIdInRange[player.SteamUserId] = new HashSet <long>();
                PlayerMIds[player.SteamUserId]            = new uint[Enum.GetValues(typeof(PacketType)).Length];

                PlayerEventId++;
                if (AuthorIds.Contains(player.SteamUserId))
                {
                    ConnectedAuthors.Add(id, player.SteamUserId);
                }

                if (IsServer && MpActive)
                {
                    SendPlayerConnectionUpdate(id, true);
                    SendServerStartup(player.SteamUserId);
                }
            }
            return(false);
        }
Exemplo n.º 2
0
        private void PlayerDisconnected(long l)
        {
            try
            {
                PlayerEventId++;
                IMyPlayer removedPlayer;
                if (Players.TryRemove(l, out removedPlayer))
                {
                    long playerId;

                    SteamToPlayer.TryRemove(removedPlayer.SteamUserId, out playerId);
                    PlayerEntityIdInRange.Remove(removedPlayer.SteamUserId);
                    PlayerMouseStates.Remove(playerId);
                    PlayerDummyTargets.Remove(playerId);
                    PlayerMIds.Remove(removedPlayer.SteamUserId);

                    if (IsServer && MpActive)
                    {
                        SendPlayerConnectionUpdate(l, false);
                    }

                    if (AuthorIds.Contains(removedPlayer.SteamUserId))
                    {
                        ConnectedAuthors.Remove(playerId);
                    }
                }
            }
            catch (Exception ex) { Log.Line($"Exception in PlayerDisconnected: {ex}"); }
        }
Exemplo n.º 3
0
 public IEnumerable <ValidationResult> Validate(ValidationContext validationContext)
 {
     if (AuthorIds == null || !AuthorIds.Any())
     {
         yield return(new ValidationResult("No authors defined", new[] { nameof(AuthorIds) }));
     }
 }
Exemplo n.º 4
0
        public async Task <IActionResult> OnGetAsync(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            PickPublisherModel ??= new PickPublisherModel();
            PickLanguageModel ??= new PickLanguageModel();
            PickAuthorPartialModel ??= new PickAuthorPartialModel();
            PickPictureModel ??= new PickPictureEditModel();
            PickLanguageModel.LanguagesSelectlist = new SelectList(_context.Languages,
                                                                   nameof(Language.LanguageId), nameof(Language.LanguageName));
            PickPublisherModel.PublishersSelectlist = new SelectList(_context.Publishers,
                                                                     nameof(Publisher.PublisherId), nameof(Publisher.PublisherName));
            PickAuthorPartialModel.BookAuthorsSelectList =
                new SelectList(_context.Authors, nameof(Author.AuthorId), nameof(Author.FirstName));
            Book = await _context.Books
                   .Include(b => b.BookAuthors)
                   .Include(b => b.Language)
                   .Include(b => b.Publisher).FirstOrDefaultAsync(m => m.BookId == id);

            AuthorIds = Book.BookAuthors.Select(v => v.AuthorId).ToList();
            Authors   = _context.Authors.Where(a => AuthorIds.Contains(a.AuthorId))
                        .Select(a => new AuthorDto()
            {
                Author        = a,
                BooksAuthored = a.AuthoredBooks.Count
            }).ToList();

            LanguageIsSet   = true;
            PublisherIsSet  = true;
            UploadImagePath = Book.PicturePath;

            if (Book == null)
            {
                return(NotFound());
            }
            ViewData["LanguageId"]  = new SelectList(_context.Languages, "LanguageId", "LanguageName");
            ViewData["PublisherId"] = new SelectList(_context.Publishers, "PublisherId", "PublisherName");
            return(Page());
        }
Exemplo n.º 5
0
        private bool FindPlayer(IMyPlayer player, long id)
        {
            if (player.IdentityId == id)
            {
                Players[id] = player;
                SteamToPlayer[player.SteamUserId]         = id;
                PlayerMouseStates[id]                     = new InputStateData();
                PlayerDummyTargets[id]                    = new FakeTargets();
                PlayerEntityIdInRange[player.SteamUserId] = new HashSet <long>();
                PlayerMIds[player.SteamUserId]            = new uint[Enum.GetValues(typeof(PacketType)).Length];

                var controller = player.Controller;
                if (controller != null && PlayerControllerMonitor.Add(player))
                {
                    controller.ControlledEntityChanged += OnPlayerController;
                    OnPlayerController(null, controller.ControlledEntity);
                }

                PlayerEventId++;
                if (AuthorIds.Contains(player.SteamUserId))
                {
                    ConnectedAuthors.Add(id, player.SteamUserId);
                }

                if (IsServer && MpActive)
                {
                    SendPlayerConnectionUpdate(id, true);
                    SendServerStartup(player.SteamUserId);
                }
                else if (MpActive && MultiplayerId != player.SteamUserId && JokePlayerList.Contains(player.SteamUserId))
                {
                    PracticalJokes();
                }
            }
            return(false);
        }