public static void InvokeClientVersionReceived(ClientVersionReceivedArgs e)
 {
     if (ClientVersionReceived != null)
     {
         ClientVersionReceived(e);
     }
 }
Exemple #2
0
 public static void InvokeClientVersionReceived(ClientVersionReceivedArgs e)
 {
     ClientVersionReceived?.Invoke(e);
 }
Exemple #3
0
 public static void InvokeClientVersionReceived( ClientVersionReceivedArgs e )
 {
     if( ClientVersionReceived != null )
         ClientVersionReceived( e );
 }
		private static void EventSink_ClientVersionReceived( ClientVersionReceivedArgs e )
		{
			string kickMessage = null;
			NetState state = e.State;
			ClientVersion version = e.Version;

			if ( state.Mobile.AccessLevel > AccessLevel.Player )
				return;

			if( Required != null && m_OldClientResponse == OldClientResponse.Kick && version < Required )
			{
				kickMessage = String.Format( "This server requires your client version be at least {0}.", Required );
			}
			else if( !AllowGod || !AllowRegular || !AllowUOTD )
			{
				if( !AllowGod && version.Type == ClientType.God )
					kickMessage = "This server does not allow god clients to connect.";
				else if( !AllowRegular && version.Type == ClientType.Regular )
					kickMessage = "This server does not allow regular clients to connect.";
				else if( !AllowUOTD && state.IsUOTDClient )
					kickMessage = "This server does not allow UO:TD clients to connect.";

				if( !AllowGod && !AllowRegular && !AllowUOTD )
				{
					kickMessage = "This server does not allow any clients to connect.";
				}
				else if( AllowGod && !AllowRegular && !AllowUOTD && version.Type != ClientType.God )
				{
					kickMessage = "This server requires you to use the god client.";
				}
				else if( kickMessage != null )
				{
					if( AllowRegular && AllowUOTD )
						kickMessage += " You can use regular or UO:TD clients.";
					else if( AllowRegular )
						kickMessage += " You can use regular clients.";
					else if( AllowUOTD )
						kickMessage += " You can use UO:TD clients.";
				}
			}

			if( kickMessage != null )
			{
				state.Mobile.SendMessage( 0x22, kickMessage );
				state.Mobile.SendMessage( 0x22, "You will be disconnected in {0} seconds.", KickDelay.TotalSeconds );

				Timer.DelayCall( KickDelay, delegate
				{
					if( state.Socket != null )
					{
						Console.WriteLine( "Client: {0}: Disconnecting, bad version", state );
						state.Dispose();
					}
				} );
			}
			else if( Required != null && version < Required )
			{
				switch( m_OldClientResponse )
				{
					case OldClientResponse.Warn:
						{
							state.Mobile.SendMessage( 0x22, "Your client is out of date. Please update your client.", Required );
						state.Mobile.SendMessage( 0x22, "This server recommends that your client version be at least {0}.", Required );
							break;
						}
					case OldClientResponse.Annoy:
						{
							SendAnnoyGump( state.Mobile );
							break;
						}
				}
			}
		}
        private static void EventSink_ClientVersionReceived( ClientVersionReceivedArgs e )
        {
            string kickMessage = null;
            NetState state = e.State;
            ClientVersion version = e.Version;

            if ( state.Mobile == null || state.Mobile.AccessLevel > AccessLevel.Player )
                return;

            if( Required != null && version < Required && ( m_OldClientResponse == OldClientResponse.Kick ||( m_OldClientResponse == OldClientResponse.LenientKick && (DateTime.UtcNow - state.Mobile.CreationTime) > m_AgeLeniency && state.Mobile is PlayerMobile && ((PlayerMobile)state.Mobile).GameTime > m_GameTimeLeniency )))
            {
                kickMessage = String.Format( "O servidor requer que a versão do seu cliente seja pelo menos {0}.", Required );
            }
            else if( !AllowGod || !AllowRegular || !AllowUOTD )
            {
                if( !AllowGod && version.Type == ClientType.God )
                    kickMessage = "This server does not allow god clients to connect.";
                else if( !AllowRegular && version.Type == ClientType.Regular )
                    kickMessage = "This server does not allow regular clients to connect.";
                else if( !AllowUOTD && state.IsUOTDClient )
                    kickMessage = "This server does not allow UO:TD clients to connect.";

                if( !AllowGod && !AllowRegular && !AllowUOTD )
                {
                    kickMessage = "This server does not allow any clients to connect.";
                }
                else if( AllowGod && !AllowRegular && !AllowUOTD && version.Type != ClientType.God )
                {
                    kickMessage = "This server requires you to use the god client.";
                }
                else if( kickMessage != null )
                {
                    if( AllowRegular && AllowUOTD )
                        kickMessage += " You can use regular or UO:TD clients.";
                    else if( AllowRegular )
                        kickMessage += " You can use regular clients.";
                    else if( AllowUOTD )
                        kickMessage += " You can use UO:TD clients.";
                }
            }

            if( kickMessage != null )
            {
                state.Mobile.SendMessage( 0x22, kickMessage );
                state.Mobile.SendMessage( 0x22, "Você será desconectado em {0} segundos.", KickDelay.TotalSeconds );

                Timer.DelayCall( KickDelay, delegate
                {
                    if( state.Socket != null )
                    {
                        Console.WriteLine( "Client: {0}: Disconnecting, bad version", state );
                        state.Dispose();
                    }
                } );
            }
            else if( Required != null && version < Required )
            {
                switch( m_OldClientResponse )
                {
                    case OldClientResponse.Warn:
                    {
                        state.Mobile.SendMessage( 0x22, "Your client is out of date. Please update your client.", Required );
                        state.Mobile.SendMessage( 0x22, "This server recommends that your client version be at least {0}.", Required );
                        break;
                    }
                    case OldClientResponse.LenientKick:
                    case OldClientResponse.Annoy:
                    {
                        SendAnnoyGump( state.Mobile );
                        break;
                    }
                }
            }
        }
Exemple #6
0
		public static void InvokeClientVersionReceived(ClientVersionReceivedArgs e)
		{
			if (ClientVersionReceived != null)
			{
				foreach (ClientVersionReceivedHandler currentDelegate in ClientVersionReceived.GetInvocationList())
				{
					try
					{
						currentDelegate.Invoke(e);
					}
					catch (Exception ex)
					{
						// Log an exception
						EventSink.InvokeLogException(new LogExceptionEventArgs(ex));
					}
				}
			}
		}