Beispiel #1
0
        /// <summary>
        /// Adds the PlayerEntity to the RecentlyOnlinePlayers dictionary by its CharacterID Note: CharacterId is the ID from the database, CharacterId not equals to ID.
        /// Removes the requested PlayerEntity from the PlayersById, PlayersByUid dictionaries, and the containing GridCell.
        /// </summary>
        /// <param name="requestedCharacter"></param>
        /// <returns></returns>
        public bool RemovePlayer(PlayerEntity requestedCharacter)
        {
            if (requestedCharacter.Connection != null && requestedCharacter.Connection.Status != Lidgren.Network.NetConnectionStatus.Disconnected)
            {
                requestedCharacter.Connection.Disconnect("Removed");
            }
            RecentlyOnlinePlayers.TryAdd(requestedCharacter.CharacterId, requestedCharacter);

            if (PlayersByUid.TryRemove(requestedCharacter.Uid, out _))
            {
                Console.WriteLine("Player removed from PlayersById");
            }
            else
            {
                Console.WriteLine("Character can not be removed or not exists!");
            }

            if (PlayersById.TryRemove(requestedCharacter.Id, out _))
            {
                Console.WriteLine("Player removed from PlayersByUid");
            }
            else
            {
                Console.WriteLine("Character can not be removed or not exists!");
            }

            return(requestedCharacter.GridCell.Remove(requestedCharacter));
        }
Beispiel #2
0
        public void FullRemovePlayer(PlayerEntity player)
        {
            if (PlayersByUid.TryRemove(player.Uid, out _))
            {
                Console.WriteLine("Player removed from PlayersById");
            }
            else
            {
                Console.WriteLine("Character can not be removed or not exists!");
            }

            if (PlayersById.TryRemove(player.Id, out _))
            {
                Console.WriteLine("Player removed from PlayersByUid");
            }
            else
            {
                Console.WriteLine("Character can not be removed or not exists!");
            }

            player.GridCell.Remove(player);
        }