Exemple #1
0
        public void RemoveSession(INetworkClient client)
        {
            ClientSession session;

            _sessions.TryRemove(client.ClientId, out session);

            // check if session hasnt been already removed
            if (session != null)
            {
                session.IsDisposing = true;

                if (IsWorldServer)
                {
                    if (session.HasSelectedCharacter)
                    {
                        if (ServerManager.Instance.Groups.Any(s => s.IsMemberOfGroup(session.Character.CharacterId)))
                        {
                            ServerManager.Instance.GroupLeave(session);
                        }

                        session.Character.Save();

                        // only remove the character from map if the character has been set
                        session.CurrentMap?.Broadcast(session, session.Character.GenerateOut(), ReceiverType.AllExceptMe);
                    }
                }

                session.Destroy();
                client.Disconnect();
                Logger.Log.Info(Language.Instance.GetMessageFromKey("DISCONNECT") + client.ClientId);
                session = null;
            }
        }
Exemple #2
0
 public void Connect()
 {
     if (!IsConnect)
     {
         hostName = Properties.Settings.Default.HostIP;
         //string hostname = tbHostname.Text;
         //string port = tbPort.Text;
         //tbHostname.Enabled = false;
         //tbPort.Enabled = false;
         //tbSend.Enabled = true;
         //btnSend.Enabled = true;
         //btnConnect.Text = "Disconnect";
         string port;
         port = string.Format("{0:D3}", Properties.Settings.Default.PortServer);
         ClientOps ops = new ClientOps(this, hostName, port);
         m_client.Connect(ops);
         IsConnect = true;
     }
     else
     {
         //tbHostname.Enabled = true;
         //tbPort.Enabled = true;
         //btnConnect.Text = "Connect";
         //tbSend.Enabled = false;
         //btnSend.Enabled = false;
         if (m_client.IsConnectionAlive)
         {
             m_client.Disconnect();
             IsConnect = false;
         }
     }
 }
Exemple #3
0
 private void btnConnect_Click(object sender, EventArgs e)
 {
     if (btnConnect.Text.Equals("Connect"))
     {
         string hostname = tbHostname.Text;
         string port     = tbPort.Text;
         tbHostname.Enabled = false;
         tbPort.Enabled     = false;
         tbSend.Enabled     = true;
         btnSend.Enabled    = true;
         btnConnect.Text    = "Disconnect";
         ClientOps ops = new ClientOps(this, hostname, port);
         m_client.Connect(ops);
     }
     else
     {
         tbHostname.Enabled = true;
         tbPort.Enabled     = true;
         btnConnect.Text    = "Connect";
         tbSend.Enabled     = false;
         btnSend.Enabled    = false;
         if (m_client.IsConnectionAlive)
         {
             m_client.Disconnect();
         }
     }
 }
        protected void RemoveSession(INetworkClient client)
        {
            _sessions.TryRemove(client.ClientId, out ClientSession session);

            // check if session hasnt been already removed
            if (session != null)
            {
                session.IsDisposing = true;

                session.Destroy();

                if (IsWorldServer && session.HasSelectedCharacter)
                {
                    session.Character.Save();
                    session.Character.Mates.Where(s => s.IsTeamMember && !s.Owner.IsVehicled).ToList().ForEach(s => session.CurrentMapInstance?.Broadcast(session, s.GenerateOut(), ReceiverType.AllExceptMe));
                    session.CurrentMapInstance?.Broadcast(session, StaticPacketHelper.Out(UserType.Player, session.Character.CharacterId), ReceiverType.AllExceptMe);

                    if (ServerManager.Instance.Groups.Any(s => s.IsMemberOfGroup(session.Character.CharacterId)))
                    {
                        ServerManager.Instance.GroupLeave(session);
                    }
                }

                client.Disconnect();
                Logger.Info(Language.Instance.GetMessageFromKey("DISCONNECT") + client.ClientId);
                session.Destroy();

                // session = null;
            }
        }
Exemple #5
0
 public void Disconnect()
 {
     StopKeepAlivePackets();
     if (_network.IsConnected)
     {
         _network.Disconnect();
     }
 }
Exemple #6
0
        protected override void UnloadContent()
        {
            _networkClient.Disconnect();

            _logger.Information("Content: Unloading...");
            base.UnloadContent();
            _logger.Information("Content: Unloading...Done");
        }
Exemple #7
0
        /// <summary>
        /// Disconnects from the server.
        /// </summary>
        public void Disconnect()
        {
            if (m_Network.IsConnected)
            {
                m_Network.Disconnect();
            }

            Status = LoginClientStatus.Unconnected;
        }
Exemple #8
0
        /// <summary>
        /// Disconnects from the server.
        /// </summary>
        public void Disconnect()
        {
            if (m_Network.IsConnected)
            {
                StopKeepAlivePackets();
                m_Network.Disconnect();
            }

            Status = LoginClientStatus.Unconnected;
        }
Exemple #9
0
 public static void OnIdentificationMessage(INetworkClient client, IdentificationMessage im)
 {
     client.Send(new IdentificationSuccessMessage());
     client.Send(new SelectedServerDataExtendedMessage());
     Task.Run(async() =>
     {
         await Task.Delay(TimeSpan.FromSeconds(1));
         client.Disconnect();
     });
 }
Exemple #10
0
        protected override ClientSession IntializeNewSession(INetworkClient client)
        {
            if (!CheckGeneralLog(client))
            {
                Logger.Warn(string.Format(Language.Instance.GetMessageFromKey("FORCED_DISCONNECT"), client.ClientId));
                client.Initialize(_fallbackEncryptor);
                client.SendPacket($"fail {Language.Instance.GetMessageFromKey("CONNECTION_LOST")}");
                client.Disconnect();
                return(null);
            }
            ClientSession session = new ClientSession(client);

            session.Initialize(_encryptor, IsWorldServer);
            return(session);
        }
        public void AddSession(INetworkClient customClient)
        {
            Logger.Info(Language.Instance.GetMessageFromKey("NEW_CONNECT") + customClient.ClientId);

            ClientSession session = IntializeNewSession(customClient);

            customClient.SetClientSession(session);

            if (session != null && IsWorldServer && !_sessions.TryAdd(customClient.ClientId, session))
            {
                Logger.Warn(string.Format(Language.Instance.GetMessageFromKey("FORCED_DISCONNECT"), customClient.ClientId));
                customClient.Disconnect();
                _sessions.TryRemove(customClient.ClientId, out session);
            }
        }
Exemple #12
0
        public void AddSession(INetworkClient customClient)
        {
            Logger.Log.Info(Language.Instance.GetMessageFromKey("NEW_CONNECT") + customClient.ClientId);

            ClientSession session = IntializeNewSession(customClient);
            customClient.SetClientSession(session);

            if (session != null && IsWorldServer)
            {
                if (!_sessions.TryAdd(customClient.ClientId, session))
                {
                    Logger.Log.WarnFormat(Language.Instance.GetMessageFromKey("FORCED_DISCONNECT"), customClient.ClientId);
                    customClient.Disconnect();
                    _sessions.TryRemove(customClient.ClientId, out session);
                    return;
                }
            }
        }
        public void AddSession(INetworkClient customClient)
        {
            Logger.Log.Info(Language.Instance.GetMessageFromKey("NEW_CONNECT") + customClient.ClientId);

            ClientSession session = IntializeNewSession(customClient);

            customClient.SetClientSession(session);

            if (session == null || !IsWorldServer)
            {
                return;
            }
            if (Sessions.TryAdd(customClient.ClientId, session))
            {
                return;
            }
            Logger.Log.WarnFormat(Language.Instance.GetMessageFromKey("FORCED_DISCONNECT"), customClient.ClientId);
            customClient.Disconnect();
            Sessions.TryRemove(customClient.ClientId, out session);
        }
Exemple #14
0
        public void AddSession(INetworkClient customClient)
        {
            Logger.Log.Info(Language.Instance.GetMessageFromKey("NEW_CONNECT") + customClient.ClientId);

            ClientSession session = IntializeNewSession(customClient);

            if (session != null && IsWorldServer)
            {
                ServerManager.Instance.RegisterSession(session);
                if (!_sessions.TryAdd(customClient.ClientId, session))
                {
                    Logger.Log.WarnFormat(Language.Instance.GetMessageFromKey("FORCED_DISCONNECT"), customClient.ClientId);
                    customClient.Disconnect();
                    _sessions.TryRemove(customClient.ClientId, out session);
                    ServerManager.Instance.UnregisterSession(session);
                    return;
                }
                ;
            }
        }
Exemple #15
0
        protected void RemoveSession(INetworkClient client)
        {
            _sessions.TryRemove(client.ClientId, out ClientSession session);

            // check if session hasnt been already removed
            if (session != null)
            {
                session.IsDisposing = true;

                session.Destroy();

                if (IsWorldServer && session.HasSelectedCharacter)
                {
                    session.Character.Save();
                }

                client.Disconnect();
                Logger.Info(Language.Instance.GetMessageFromKey("DISCONNECT") + client.ClientId);

                // session = null;
            }
        }
Exemple #16
0
 public void Disconnect()
 {
     m_Network.Disconnect(); // stops keep alive packets.
     IsInWorld            = false;
     m_Engine.ActiveModel = new LoginModel();
 }
Exemple #17
0
        public void RemoveSession(INetworkClient client)
        {
            ClientSession session;
            _sessions.TryRemove(client.ClientId, out session);

            // check if session hasnt been already removed
            if (session != null)
            {
                session.IsDisposing = true;

                if (IsWorldServer)
                {
                    if (session.HasSelectedCharacter)
                    {
                        if (session.Character.Hp < 1)
                        {
                            session.Character.Hp = 1;
                        }

                        if (ServerManager.Instance.Groups.Any(s => s.IsMemberOfGroup(session.Character.CharacterId)))
                        {
                            ServerManager.Instance.GroupLeave(session);
                        }

                        session.Character.Save();

                        // only remove the character from map if the character has been set
                        session.CurrentMap?.Broadcast(session, session.Character.GenerateOut(), ReceiverType.AllExceptMe);
                    }
                }

                session.Destroy();
                client.Disconnect();
                Logger.Log.Info(Language.Instance.GetMessageFromKey("DISCONNECT") + client.ClientId);
                session = null;
            }
        }
Exemple #18
0
 public void Disconnect()
 {
     _client?.Disconnect();
 }
 public void Disconnect()
 {
     m_Network.Disconnect();
     EngineVars.InWorld   = false;
     m_Engine.ActiveModel = new LoginModel();
 }
Exemple #20
0
 public void Disconnect()
 {
     _network.Disconnect(); // stops keep alive packets.
     IsInWorld = false;
     _engine.Models.Current = new LoginModel();
 }