diff --git a/Scripts/Misc/ClientVerification.cs b/Scripts/Misc/ClientVerification.cs index 52ff42c1c..a0f47ffe2 100644 --- a/Scripts/Misc/ClientVerification.cs +++ b/Scripts/Misc/ClientVerification.cs @@ -1,15 +1,34 @@ using System; using Server; +using System.Diagnostics; +using System.IO; namespace Server.Misc { public class ClientVerification { + private static bool m_DetectClientRequirement = false; public static void Initialize() { - ClientVersion.Required = null; + //ClientVersion.Required = null; //ClientVersion.Required = new ClientVersion( "3.0.8q" ); + if( m_DetectClientRequirement ) + { + string path = Core.FindDataFile( "client.exe" ); + + if( File.Exists( path ) ) + { + FileVersionInfo info = FileVersionInfo.GetVersionInfo( path ); + + if( info.FileMajorPart != 0 || info.FileMinorPart != 0 || info.FileMinorPart != 0 || info.FilePrivatePart != 0 ) + { + ClientVersion.Required = new ClientVersion( info.FileMajorPart, info.FileMinorPart, info.FileBuildPart, info.FilePrivatePart ); + Console.WriteLine( "Restricting client version to {0}", ClientVersion.Required ); + } + } + } + ClientVersion.AllowGod = true; ClientVersion.AllowUOTD = true; ClientVersion.AllowRegular = true; diff --git a/Server/ClientVersion.cs b/Server/ClientVersion.cs index da7231c41..305af72c6 100644 --- a/Server/ClientVersion.cs +++ b/Server/ClientVersion.cs @@ -149,6 +149,10 @@ namespace Server } } + public ClientVersion( int maj, int min, int rev, int pat ) : this( maj, min, rev, pat, ClientType.Regular ) + { + } + public ClientVersion( int maj, int min, int rev, int pat, ClientType type ) { m_Major = maj;