private bool CheckVerifyLoaderVersionAttribute()
        {
            VerifyLoaderVersionAttribute verifyLoaderVersionAttribute = MelonUtils.PullAttributeFromAssembly <VerifyLoaderVersionAttribute>(Assembly);

            if (verifyLoaderVersionAttribute == null)
            {
                return(true);
            }

            if (CurrentMLVersion == null)
            {
                CurrentMLVersion = SemVersion.Parse(BuildInfo.Version);
            }

            bool is_acceptable = verifyLoaderVersionAttribute.IsMinimum
                ? (verifyLoaderVersionAttribute.SemVer <= CurrentMLVersion)
                : (verifyLoaderVersionAttribute.SemVer == CurrentMLVersion);

            if (!is_acceptable)
            {
                MelonLogger.Error($"Incompatible MelonLoader Version for {(is_plugin ? "Plugin" : "Mod")}: {FilePath}");
                return(false);
            }

            return(true);
        }
        private bool CheckVerifyLoaderVersionAttribute()
        {
            VerifyLoaderVersionAttribute verifyLoaderVersionAttribute = MelonUtils.PullAttributeFromAssembly <VerifyLoaderVersionAttribute>(Assembly);

            if (verifyLoaderVersionAttribute == null)
            {
                return(true);
            }

            if (CurrentMLVersionIntArr == null)
            {
                string[] versionArgs = BuildInfo.Version.Split('.');
                CurrentMLVersionIntArr    = new int[4];
                CurrentMLVersionIntArr[0] = int.Parse(versionArgs[0]);
                CurrentMLVersionIntArr[1] = int.Parse(versionArgs[1]);
                CurrentMLVersionIntArr[2] = int.Parse(versionArgs[2]);
                CurrentMLVersionIntArr[3] = ((versionArgs.Length == 4) && !string.IsNullOrEmpty(versionArgs[3])) ? int.Parse(versionArgs[3]) : 0;
            }

            bool is_minimum = verifyLoaderVersionAttribute.IsMinimum;

            bool major_is_acceptable = is_minimum
                                ? (verifyLoaderVersionAttribute.Major <= CurrentMLVersionIntArr[0])
                                : (verifyLoaderVersionAttribute.Major == CurrentMLVersionIntArr[0]);

            bool minor_is_acceptable = is_minimum
                                ? (verifyLoaderVersionAttribute.Minor <= CurrentMLVersionIntArr[1])
                                : (verifyLoaderVersionAttribute.Minor == CurrentMLVersionIntArr[1]);

            bool patch_is_acceptable = is_minimum
                                ? (verifyLoaderVersionAttribute.Patch <= CurrentMLVersionIntArr[2])
                                : (verifyLoaderVersionAttribute.Patch == CurrentMLVersionIntArr[2]);

            bool revision_is_acceptable = is_minimum
                                ? (verifyLoaderVersionAttribute.Revision <= CurrentMLVersionIntArr[3])
                                : (verifyLoaderVersionAttribute.Revision == CurrentMLVersionIntArr[3]);

            if (!major_is_acceptable ||
                !minor_is_acceptable ||
                !patch_is_acceptable ||
                !revision_is_acceptable)
            {
                MelonLogger.Error($"Incompatible MelonLoader Version for {(is_plugin ? "Plugin" : "Mod")}: {FilePath}");
                return(false);
            }

            return(true);
        }