mirror of
https://github.com/bloxstraplabs/bloxstrap.git
synced 2025-04-23 02:51:26 -07:00
- Features - Add Discord Rich Presence support (the nuget package is like a year and a half out of date so submodule it is lol) - Add update checker - Add start menu folder creation - Bugfixes - Fix "Directory is not empty" error when updating Roblox - Fix uninstalling sometimes not working properly - Quality of Life - Split Bootstrapper class into partial files - Renamed TaskDialogStyle to VistaDialog for name simplification
63 lines
2.2 KiB
C#
63 lines
2.2 KiB
C#
using System.IO.Compression;
|
|
|
|
using Bloxstrap.Helpers;
|
|
|
|
namespace Bloxstrap
|
|
{
|
|
partial class Bootstrapper
|
|
{
|
|
private async Task ModifyDeathSound()
|
|
{
|
|
string fileContentName = "ouch.ogg";
|
|
string fileContentLocation = "content\\sounds\\ouch.ogg";
|
|
string fileLocation = Path.Combine(VersionFolder, fileContentLocation);
|
|
|
|
string officialDeathSoundHash = VersionFileManifest[fileContentLocation];
|
|
string currentDeathSoundHash = Utilities.CalculateMD5(fileLocation);
|
|
|
|
if (Program.Settings.UseOldDeathSound && currentDeathSoundHash == officialDeathSoundHash)
|
|
{
|
|
// let's get the old one!
|
|
|
|
var response = await Client.GetAsync($"{Program.BaseUrlApplication}/mods/{fileContentLocation}");
|
|
|
|
if (File.Exists(fileLocation))
|
|
File.Delete(fileLocation);
|
|
|
|
using (var fileStream = new FileStream(fileLocation, FileMode.CreateNew))
|
|
{
|
|
await response.Content.CopyToAsync(fileStream);
|
|
}
|
|
}
|
|
else if (!Program.Settings.UseOldDeathSound && currentDeathSoundHash != officialDeathSoundHash)
|
|
{
|
|
// who's lame enough to ever do this?
|
|
// well, we need to re-extract the one that's in the content-sounds.zip package
|
|
|
|
var package = VersionPackageManifest.Find(x => x.Name == "content-sounds.zip");
|
|
|
|
if (package is null)
|
|
return;
|
|
|
|
DownloadPackage(package);
|
|
|
|
string packageLocation = Path.Combine(DownloadsFolder, package.Signature);
|
|
string packageFolder = Path.Combine(VersionFolder, PackageDirectories[package.Name]);
|
|
|
|
using (ZipArchive archive = ZipFile.OpenRead(packageLocation))
|
|
{
|
|
ZipArchiveEntry? entry = archive.Entries.Where(x => x.FullName == fileContentName).FirstOrDefault();
|
|
|
|
if (entry is null)
|
|
return;
|
|
|
|
if (File.Exists(fileLocation))
|
|
File.Delete(fileLocation);
|
|
|
|
entry.ExtractToFile(fileLocation);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|