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); }
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); }