Fix mod presets being deleted when changed

This commit is contained in:
pizzaboxer 2022-08-23 20:15:04 +01:00
parent 1ab19770b9
commit 4c0e7f5896
2 changed files with 12 additions and 2 deletions

View File

@ -563,6 +563,7 @@ namespace Bloxstrap
private static void CheckModPreset(bool condition, string location, string base64Contents) private static void CheckModPreset(bool condition, string location, string base64Contents)
{ {
string modFolderLocation = Path.Combine(Directories.Modifications, location); string modFolderLocation = Path.Combine(Directories.Modifications, location);
byte[] binaryData = Convert.FromBase64String(base64Contents);
if (condition) if (condition)
{ {
@ -575,10 +576,10 @@ namespace Bloxstrap
Directory.CreateDirectory(directory); Directory.CreateDirectory(directory);
File.WriteAllBytes(modFolderLocation, Convert.FromBase64String(base64Contents)); File.WriteAllBytes(modFolderLocation, binaryData);
} }
} }
else if (File.Exists(modFolderLocation)) else if (File.Exists(modFolderLocation) && Utilities.MD5File(modFolderLocation) == Utilities.MD5Data(binaryData))
{ {
File.Delete(modFolderLocation); File.Delete(modFolderLocation);
} }

View File

@ -36,6 +36,15 @@ namespace Bloxstrap.Helpers
} }
} }
public static string MD5Data(byte[] data)
{
using (MD5 md5 = MD5.Create())
{
byte[] hash = md5.ComputeHash(data);
return BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant();
}
}
// quick and hacky way of getting a value from any key/value pair formatted list // quick and hacky way of getting a value from any key/value pair formatted list
// (command line args, uri params, etc) // (command line args, uri params, etc)
public static string? GetKeyValue(string subject, string key, char delimiter) public static string? GetKeyValue(string subject, string key, char delimiter)