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 mobile && mobile.GameTime > m_GameTimeLeniency)) { kickMessage = $"This server requires your client version be at least {Required}."; }
protected virtual int GetProgress(ConquestState state, ClientVersionReceivedArgs args) { if (state.User == null) return 0; if (args == null || args.State == null || args.State.Mobile is PlayerMobile && args.State.Mobile.Account != state.User.Account || args.Version == null) { return 0; } if (Version != null) { VersionInfo v = args.Version.ToString(); if (v < Version) { return 0; } } return 1; }
protected virtual int GetProgress(ConquestState state, ClientVersionReceivedArgs args) { if (state.User == null) { return(0); } if (args == null || args.State == null || args.State.Mobile is PlayerMobile && args.State.Mobile.Account != state.User.Account || args.Version == null) { return(0); } if (Version != null) { VersionInfo v = args.Version.ToString(); if (v < Version) { return(0); } } return(1); }
private static void EventSink_ClientVersionReceived(ClientVersionReceivedArgs e) { string kickMessage = null; NetState state = e.State; ClientVersion version = e.Version; if (state.Mobile.IsStaff()) { 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("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) { Utility.PushColor(ConsoleColor.DarkRed); Console.WriteLine("Client: {0}: Disconnecting, bad version", state); Utility.PopColor(); 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; } } } }
public void InvokeClientVersionReceived( ClientVersionReceivedArgs e ) { if ( ClientVersionReceived != null ) ClientVersionReceived( e ); }
private static void EventSink_ClientVersionReceived( ClientVersionReceivedArgs e ) { GameClient state = e.State; ClientVersion version = e.Version; if ( state.Mobile == null || state.Mobile.AccessLevel > AccessLevel.Player ) return; string kickMessage = null; if ( Required != null && version < Required && ( m_OldClientResponse == OldClientResponse.Kick || ( m_OldClientResponse == OldClientResponse.LenientKick && ( DateTime.Now - state.Mobile.CreationTime ) > m_AgeLeniency && state.Mobile is PlayerMobile && ( (PlayerMobile) state.Mobile ).GameTime > m_GameTimeLeniency ) ) ) { kickMessage = String.Format( "This server requires your client version be at least {0}.", Required ); } else if ( !AllowClassic || !AllowEnhanced ) { if ( !AllowClassic && version.Type == ClientType.Classic ) kickMessage = "This server does not allow classic client to connect."; else if ( !AllowEnhanced && version.Type == ClientType.Enhanced ) kickMessage = "This server does not allow enhanced client to connect."; if ( !AllowClassic && !AllowEnhanced ) { kickMessage = "This server does not allow any clients to connect."; } else if ( kickMessage != null ) { if ( AllowClassic && AllowEnhanced ) kickMessage += " You can use classic or enhanced clients."; else if ( AllowClassic ) kickMessage += " You can use classic client."; else if ( AllowEnhanced ) kickMessage += " You can use enhanced client."; } } 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 { 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; } } } }
private static void EventSink_ClientVersionReceived(ClientVersionReceivedArgs e) { string kickMessage = null; NetState state = e.State; ClientVersion version = e.Version; if (state.Mobile.IsStaff()) return; if (Required != null && version < Required && (m_OldClientResponse == OldClientResponse.Kick || (m_OldClientResponse == OldClientResponse.LenientKick && (DateTime.Now - state.Mobile.CreationTime) > m_AgeLeniency && state.Mobile is PlayerMobile && ((PlayerMobile)state.Mobile).GameTime > m_GameTimeLeniency))) { 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.LenientKick: case OldClientResponse.Annoy: { SendAnnoyGump(state.Mobile); break; } } } }
private static void EventSink_ClientVersionReceived(ClientVersionReceivedArgs e) { GameClient state = e.State; ClientVersion version = e.Version; if (state.Mobile == null || state.Mobile.AccessLevel > AccessLevel.Player) { return; } string kickMessage = null; if (Required != null && version < Required && (m_OldClientResponse == OldClientResponse.Kick || (m_OldClientResponse == OldClientResponse.LenientKick && (DateTime.Now - state.Mobile.CreationTime) > m_AgeLeniency && state.Mobile is PlayerMobile && ((PlayerMobile)state.Mobile).GameTime > m_GameTimeLeniency))) { kickMessage = String.Format("This server requires your client version be at least {0}.", Required); } else if (!AllowClassic || !AllowEnhanced) { if (!AllowClassic && version.Type == ClientType.Classic) { kickMessage = "This server does not allow classic client to connect."; } else if (!AllowEnhanced && version.Type == ClientType.Enhanced) { kickMessage = "This server does not allow enhanced client to connect."; } if (!AllowClassic && !AllowEnhanced) { kickMessage = "This server does not allow any clients to connect."; } else if (kickMessage != null) { if (AllowClassic && AllowEnhanced) { kickMessage += " You can use classic or enhanced clients."; } else if (AllowClassic) { kickMessage += " You can use classic client."; } else if (AllowEnhanced) { kickMessage += " You can use enhanced client."; } } } 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 { 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; } } } }
static void EventSink_ClientVersionReceived(ClientVersionReceivedArgs e) { Console.WriteLine("Client version for {0}: {1}", e.State.Address, e.Version); }