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);
        }
Esempio n. 2
0
        internal static List <AddonUpdateInfo> GetAddonUpdateInfos(List <string> _AddonNames, WowVersionEnum _WowVersion)
        {
            VF.NetworkClient       netClient = new VF.NetworkClient(g_Host, g_Port);
            List <AddonUpdateInfo> retList   = new List <AddonUpdateInfo>();

            try
            {
                //VF.NetworkIncommingMessage msg;
                {
                    VF.NetworkOutgoingMessage            newMessage = netClient.CreateMessage();
                    WLN_RequestPacket_AddonUpdateInfoNew request    = new WLN_RequestPacket_AddonUpdateInfoNew();
                    request.UserID          = Settings.UserID;
                    request.LauncherVersion = StaticValues.LauncherVersion;
                    request.WowVersion      = _WowVersion;
                    for (int i = 0; i < _AddonNames.Count; ++i)
                    {
                        var addonUpdateInfo = new WLN_RequestPacket_AddonUpdateInfo();
                        addonUpdateInfo.AddonName = _AddonNames[i];
                        var addonInfo = InstalledAddons.GetAddonInfo(_AddonNames[i], _WowVersion);
                        if (addonInfo != null)
                        {
                            addonUpdateInfo.CurrentVersion = addonInfo.m_VersionString;
                        }
                        else
                        {
                            addonUpdateInfo.CurrentVersion = "0.0";
                        }
                        request.Addons.Add(addonUpdateInfo);
                    }
                    newMessage.WriteByte((byte)WLN_PacketType.Request_AddonUpdateInfoNew);
                    newMessage.WriteClass(request);
                    netClient.SendMessage(newMessage);
                }
                List <WLN_ResponsePacket_AddonUpdateInfo> recvAddonUpdateInfos = null;

                if (netClient.RecvPacket_VF(WLN_PacketType.Response_AddonUpdateInfo, out recvAddonUpdateInfos) == true)
                {
                    foreach (var recvAddonUpdateInfo in recvAddonUpdateInfos)
                    {
                        if (recvAddonUpdateInfo.AddonName == "null")
                        {
                            continue;
                        }
                        AddonUpdateInfo addonUpdateInfo = new AddonUpdateInfo();
                        addonUpdateInfo.AddonName                          = recvAddonUpdateInfo.AddonName;
                        addonUpdateInfo.InstalledAddonInfo                 = InstalledAddons.GetAddonInfo(recvAddonUpdateInfo.AddonName, _WowVersion);
                        addonUpdateInfo.CurrentVersion                     = recvAddonUpdateInfo.CurrentVersion;
                        addonUpdateInfo.UpdateVersion                      = recvAddonUpdateInfo.UpdateVersion;
                        addonUpdateInfo.UpdateDescription                  = recvAddonUpdateInfo.UpdateDescription;
                        addonUpdateInfo.AddonPackageDownloadFTP            = recvAddonUpdateInfo.AddonPackageDownloadFTP;
                        addonUpdateInfo.ClearAccountSavedVariablesRequired = recvAddonUpdateInfo.ClearAccountSavedVariablesRequired;
                        addonUpdateInfo.UpdateSubmitter                    = recvAddonUpdateInfo.UpdateSubmitter;
                        addonUpdateInfo.UpdateImportance                   = recvAddonUpdateInfo.UpdateImportance;
                        addonUpdateInfo.MoreInfoSite                       = recvAddonUpdateInfo.MoreInfoSite;
                        retList.Add(addonUpdateInfo);
                    }
                }
            }
            finally
            {
                netClient.Disconnect();
            }
            return(retList);
        }