Esempio n. 1
0
        public static WLN_ResponsePacket_AddonUpdateInfo GetAddonUpdate(string _UserID, WLN_RequestPacket_AddonUpdateInfo _Request)
        {
            string addonName = _Request.AddonName;
            string latestAddonPackageFilename = GetLatestAddonPackageFilename(addonName);

            if (latestAddonPackageFilename == "")
            {
                return(null);
            }

            if (IsAddonBeta(addonName) && _Request.CurrentVersion == "0.0")
            {
                if (IsBetaParticipant(addonName, _UserID) == false)
                {
                    return(null);
                }
            }
            try
            {
                DescriptionFileData addonDescription = GetDescriptionFileData(addonName, latestAddonPackageFilename);
                if (addonDescription == null)
                {
                    return(null);
                }

                WLN_ResponsePacket_AddonUpdateInfo addonUpdateInfo = new WLN_ResponsePacket_AddonUpdateInfo();
                addonUpdateInfo.AddonName      = addonName;
                addonUpdateInfo.CurrentVersion = _Request.CurrentVersion;

                addonUpdateInfo.UpdateVersion     = "";
                addonUpdateInfo.UpdateDescription = "";
                addonUpdateInfo.ClearAccountSavedVariablesRequired   = false;
                addonUpdateInfo.ClearCharacterSavedVariablesRequired = false;
                addonUpdateInfo.UpdateSubmitter  = "Unknown";
                addonUpdateInfo.UpdateImportance = ServerComm.UpdateImportance.Minor;


                addonUpdateInfo.UpdateVersion     = addonDescription.UpdateVersion;
                addonUpdateInfo.UpdateDescription = addonDescription.UpdateDescription;
                addonUpdateInfo.UpdateSubmitter   = addonDescription.UpdateSubmitter;
                if (addonUpdateInfo.UpdateSubmitter == "")
                {
                    addonUpdateInfo.UpdateSubmitter = "Unknown";
                }
                addonUpdateInfo.ClearAccountSavedVariablesRequired   = addonDescription.GetClearAccountSavedVariablesRequired(addonUpdateInfo.CurrentVersion);
                addonUpdateInfo.ClearCharacterSavedVariablesRequired = addonDescription.GetClearCharacterSavedVariablesRequired(addonUpdateInfo.CurrentVersion);
                addonUpdateInfo.UpdateImportance = addonDescription.GetUpdateImportance(addonUpdateInfo.CurrentVersion);
                if (_Request.CurrentVersion == "0.0")
                {
                    if (addonName == "VF_RealmPlayers")
                    {
                        addonUpdateInfo.UpdateDescription = "Latest addon version for gathering data and contribute to the armory at realmplayers.com";
                        addonUpdateInfo.UpdateSubmitter   = "Dilatazu";
                    }
                    else if (addonName == "VF_RaidDamage" || addonName == "VF_RaidStats")
                    {
                        addonUpdateInfo.UpdateDescription = "Latest addon version for automatically logging data in raids. Logged raids will automatically be uploaded to RaidStats";
                        addonUpdateInfo.UpdateSubmitter   = "Dilatazu";
                    }
                    else if (addonName == "VF_BGStats")
                    {
                        addonUpdateInfo.UpdateDescription = "Latest addon version for automatically logging data in battlegrounds. Logged bgs will automatically be uploaded to BGStats";
                        addonUpdateInfo.UpdateSubmitter   = "Dilatazu";
                    }
                    else if (addonName == "VF_RealmPlayersTBC")
                    {
                        addonUpdateInfo.UpdateDescription = "Latest addon version for gathering data and contribute to the armory at realmplayers.com";
                        addonUpdateInfo.UpdateSubmitter   = "Dilatazu";
                    }
                    else if (addonName == "VF_RaidStatsTBC")
                    {
                        addonUpdateInfo.UpdateDescription = "Latest addon version for automatically logging data in raids. Logged raids will automatically be uploaded to RaidStats";
                        addonUpdateInfo.UpdateSubmitter   = "Dilatazu";
                    }
                    else if (addonName == "VF_BGStatsTBC")
                    {
                        addonUpdateInfo.UpdateDescription = "Latest addon version for automatically logging data in battlegrounds. Logged bgs will automatically be uploaded to BGStats";
                        addonUpdateInfo.UpdateSubmitter   = "Dilatazu";
                    }
                    addonUpdateInfo.UpdateImportance = ServerComm.UpdateImportance.Good;
                }
                if (addonUpdateInfo.UpdateVersion == "")
                {
                    Logger.ConsoleWriteLine("AddonPackage \"" + latestAddonPackageFilename + "\" has invalid UpdateVersion, AddonPackage is not valid!");
                    return(null); //Invalid UpdateVersion, AddonPackage is not valid!
                }
                if (wyVersionChecker.Compare(addonDescription.UpdateVersion, addonUpdateInfo.CurrentVersion) > 0)
                {
                    addonUpdateInfo.AddonPackageDownloadFTP = AddonUpdateDownloadFTPAddress + latestAddonPackageFilename.Substring(AddonUpdateFolder.Length);
                    return(addonUpdateInfo);
                }
                else
                {
                    return(null);
                }
            }
            catch (Exception ex)
            {
                Logger.LogException(ex);
            }
            return(null);
        }