diff --git a/ModAssistant/Pages/Mods.xaml.cs b/ModAssistant/Pages/Mods.xaml.cs index f8c32095..0dc4f9a4 100644 --- a/ModAssistant/Pages/Mods.xaml.cs +++ b/ModAssistant/Pages/Mods.xaml.cs @@ -30,6 +30,7 @@ public sealed partial class Mods : Page public List DefaultMods = new List(){ "SongLoader", "ScoreSaber", "BeatSaverDownloader" }; public Mod[] ModsList; + public Mod[] AllModsList; public static List InstalledMods = new List(); public List CategoryNames = new List(); public CollectionView view; @@ -81,6 +82,19 @@ private async void LoadMods() private void CheckInstalledMods() { + string json = string.Empty; + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Utils.Constants.BeatModsAPIUrl + "mod"); + request.AutomaticDecompression = DecompressionMethods.GZip; + request.UserAgent = "ModAssistant/" + App.Version; + + using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) + using (Stream stream = response.GetResponseStream()) + using (StreamReader reader = new StreamReader(stream)) + { + var serializer = new JavaScriptSerializer(); + AllModsList = serializer.Deserialize(reader.ReadToEnd()); + } + List empty = new List(); CheckInstallDir("Plugins", empty); CheckInstallDir(@"IPA\Libs", empty); @@ -110,25 +124,20 @@ private void CheckInstallDir(string directory, List blacklist) private Mod GetModFromHash(string hash) { - string json = string.Empty; - Mod[] modMatches; - HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Utils.Constants.BeatModsAPIUrl + "mod?hash=" + hash); - request.AutomaticDecompression = DecompressionMethods.GZip; - request.UserAgent = "ModAssistant/" + App.Version; - - using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) - using (Stream stream = response.GetResponseStream()) - using (StreamReader reader = new StreamReader(stream)) + foreach (Mod mod in AllModsList) { - var serializer = new JavaScriptSerializer(); - modMatches = serializer.Deserialize(reader.ReadToEnd()); + foreach (Mod.DownloadLink download in mod.downloads) + { + foreach (Mod.FileHashes fileHash in download.hashMd5) + { + if (fileHash.hash == hash) + return mod; + } + } } - if (modMatches.Length == 0) - return null; - - return modMatches[0]; + return null; } public void PopulateModsList() diff --git a/README.md b/README.md index 24afac61..3b46707b 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ # ModAssistant -Simple Beat Saber Mod Installer +Simple Beat Saber Mod Installer \ No newline at end of file