Exemple #1
0
        public async Task JoinNonConnectedAsync()
        {
            var mjoinPacket = new MJoinPacket
            {
                VisualId = 50,
                Type     = VisualType.Player
            };
            await _mjoinPacketHandler !.ExecuteAsync(mjoinPacket, _session !).ConfigureAwait(false);

            Assert.IsFalse(_session !.Character.MapInstance.Map.MapId == 20001);
        }
Exemple #2
0
        public void JoinNonFriend()
        {
            var mjoinPacket = new MJoinPacket
            {
                VisualId = _targetSession.Character.CharacterId,
                Type     = VisualType.Player
            };

            _mjoinPacketHandler.Execute(mjoinPacket, _session);

            Assert.IsFalse(_session.Character.MapInstance.Map.MapId == 20001);
        }
        /// <summary>
        /// mjoin packet
        /// </summary>
        /// <param name="mJoinPacket"></param>
        public void JoinMiniland(MJoinPacket mJoinPacket)
        {
            ClientSession sess = ServerManager.Instance.GetSessionByCharacterId(mJoinPacket.CharacterId);

            if (sess?.Character != null)
            {
                if (sess.Character.MinilandState == MinilandState.OPEN)
                {
                    ServerManager.Instance.JoinMiniland(Session, sess);
                }
                else
                {
                    Session.SendPacket(UserInterfaceHelper.Instance.GenerateInfo(Language.Instance.GetMessageFromKey("MINILAND_CLOSED_BY_FRIEND")));
                }
            }
        }
Exemple #4
0
        public void JoinPrivateBlocked()
        {
            var mjoinPacket = new MJoinPacket
            {
                VisualId = _targetSession.Character.CharacterId,
                Type     = VisualType.Player
            };

            _connectedAccountHttpClient.Setup(s => s.GetCharacter(_targetSession.Character.CharacterId, null))
            .Returns((new ServerConfiguration(),
                      new ConnectedAccount
            {
                ChannelId = 1, ConnectedCharacter = new Character {
                    Id = _targetSession.Character.CharacterId
                }
            }));
            _connectedAccountHttpClient.Setup(s => s.GetCharacter(_session.Character.CharacterId, null))
            .Returns((new ServerConfiguration(),
                      new ConnectedAccount
            {
                ChannelId = 1, ConnectedCharacter = new Character {
                    Id = _session.Character.CharacterId
                }
            }));
            _friendHttpClient.Setup(s => s.GetListFriends(It.IsAny <long>())).Returns(new List <CharacterRelationStatus>
            {
                new CharacterRelationStatus
                {
                    CharacterId   = _targetSession.Character.CharacterId,
                    IsConnected   = true,
                    CharacterName = _targetSession.Character.Name,
                    RelationType  = CharacterRelationType.Blocked
                }
            });
            _minilandProvider.Setup(s => s.GetMiniland(It.IsAny <long>())).Returns(new Miniland
            {
                MapInstanceId = TestHelpers.Instance.MinilandId, State = MinilandState.Private
            });
            _mjoinPacketHandler.Execute(mjoinPacket, _session);

            var lastpacket = (InfoPacket)_session.LastPackets.FirstOrDefault(s => s is InfoPacket);

            Assert.AreEqual(lastpacket.Message,
                            Language.Instance.GetMessageFromKey(LanguageKey.MINILAND_CLOSED_BY_FRIEND, _session.Account.Language));
            Assert.IsFalse(_session.Character.MapInstance.Map.MapId == 20001);
        }
Exemple #5
0
        public void JoinPrivate()
        {
            var mjoinPacket = new MJoinPacket
            {
                VisualId = _targetSession.Character.CharacterId,
                Type     = VisualType.Player
            };

            _connectedAccountHttpClient.Setup(s => s.GetCharacter(_targetSession.Character.CharacterId, null))
            .Returns((new ServerConfiguration(),
                      new ConnectedAccount
            {
                ChannelId = 1, ConnectedCharacter = new Character {
                    Id = _targetSession.Character.CharacterId
                }
            }));
            _connectedAccountHttpClient.Setup(s => s.GetCharacter(_session.Character.CharacterId, null))
            .Returns((new ServerConfiguration(),
                      new ConnectedAccount
            {
                ChannelId = 1, ConnectedCharacter = new Character {
                    Id = _session.Character.CharacterId
                }
            }));
            _friendHttpClient.Setup(s => s.GetListFriends(It.IsAny <long>())).Returns(new List <CharacterRelationStatus>
            {
                new CharacterRelationStatus
                {
                    CharacterId   = _targetSession.Character.CharacterId,
                    IsConnected   = true,
                    CharacterName = _targetSession.Character.Name,
                    RelationType  = CharacterRelationType.Friend
                }
            });
            _minilandProvider.Setup(s => s.GetMiniland(It.IsAny <long>())).Returns(new Miniland
            {
                MapInstanceId = TestHelpers.Instance.MinilandId, State = MinilandState.Private
            });
            _mjoinPacketHandler.Execute(mjoinPacket, _session);

            Assert.IsTrue(_session.Character.MapInstance.Map.MapId == 20001);
        }
Exemple #6
0
        /// <summary>
        /// mjoin packet
        /// </summary>
        /// <param name="mJoinPacket"></param>
        public void JoinMiniland(MJoinPacket mJoinPacket)
        {
            if (Session.CurrentMapInstance.MapInstanceType != MapInstanceType.BaseMapInstance && Session.CurrentMapInstance.MapInstanceType != MapInstanceType.Act4Instance)
            {
                Session.SendPacket(UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("MUST_BE_IN_CLASSIC_MAP"), 0));
                return;
            }

            ClientSession sess = ServerManager.Instance.GetSessionByCharacterId(mJoinPacket.CharacterId);

            if (sess?.Character != null)
            {
                if (sess.Character.MinilandState == MinilandState.OPEN)
                {
                    ServerManager.Instance.JoinMiniland(Session, sess);
                }
                else
                {
                    Session.SendPacket(UserInterfaceHelper.Instance.GenerateInfo(Language.Instance.GetMessageFromKey("MINILAND_CLOSED_BY_FRIEND")));
                }
            }
        }