Finalize v2.1.0 update

extra quality assurance and stuff
This commit is contained in:
pizzaboxer 2023-03-13 18:22:44 +00:00
parent e72202f6f8
commit f8dd388f88
13 changed files with 88 additions and 23 deletions

2
.gitignore vendored
View File

@ -174,7 +174,7 @@ publish/
*.azurePubxml *.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings, # Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted # but database connection strings (with potential passwords) will be unencrypted
*.pubxml # *.pubxml
*.publishproj *.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to # Microsoft Azure Web App publish settings. Comment the next line if you want to

View File

@ -84,7 +84,7 @@ namespace Bloxstrap
Logger.WriteLine($"[App::OnStartup] Starting {ProjectName} v{Version}"); Logger.WriteLine($"[App::OnStartup] Starting {ProjectName} v{Version}");
// todo: remove this once 32-bit support is fully gone // todo: remove this once 32-bit support is fully gone
if (!Environment.Is64BitOperatingSystem) if (!App.IsQuiet && !Environment.Is64BitOperatingSystem)
{ {
string message = "In the near future, Roblox will no longer support 32-bit Windows devices. To keep playing Roblox, please use a device that is 64-bit compatible."; string message = "In the near future, Roblox will no longer support 32-bit Windows devices. To keep playing Roblox, please use a device that is 64-bit compatible.";
@ -158,11 +158,12 @@ namespace Bloxstrap
BaseDirectory = Path.Combine(Directories.LocalAppData, ProjectName); BaseDirectory = Path.Combine(Directories.LocalAppData, ProjectName);
InitLog(); InitLog();
// we have reshade enabled by default so we need this
FastFlags.SetRenderingMode("Direct3D 11");
if (!IsQuiet) if (!IsQuiet)
{ {
IsSetupComplete = false; IsSetupComplete = false;
// we have reshade enabled by default so we need this
FastFlags.SetRenderingMode("Direct3D 11");
new MainWindow().ShowDialog(); new MainWindow().ShowDialog();
} }
} }

View File

@ -7,8 +7,8 @@
<UseWPF>true</UseWPF> <UseWPF>true</UseWPF>
<UseWindowsForms>True</UseWindowsForms> <UseWindowsForms>True</UseWindowsForms>
<ApplicationIcon>Bloxstrap.ico</ApplicationIcon> <ApplicationIcon>Bloxstrap.ico</ApplicationIcon>
<Version>2.0.0</Version> <Version>2.1.0</Version>
<FileVersion>2.0.0.0</FileVersion> <FileVersion>2.1.0.0</FileVersion>
<ApplicationManifest>app.manifest</ApplicationManifest> <ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup> </PropertyGroup>

View File

@ -158,6 +158,11 @@ namespace Bloxstrap
App.FastFlags.Save(); App.FastFlags.Save();
} }
if (App.Settings.Prop.UseReShade)
SetStatus("Configuring/Downloading ReShade...");
await ReShade.CheckModifications();
await ApplyModifications(); await ApplyModifications();
if (App.IsFirstRun || FreshInstall) if (App.IsFirstRun || FreshInstall)
@ -369,7 +374,10 @@ namespace Bloxstrap
} }
if (App.Settings.Prop.UseDiscordRichPresence || App.Settings.Prop.ShowServerDetails) if (App.Settings.Prop.UseDiscordRichPresence || App.Settings.Prop.ShowServerDetails)
{
activityWatcher = new(); activityWatcher = new();
shouldWait = true;
}
if (App.Settings.Prop.UseDiscordRichPresence) if (App.Settings.Prop.UseDiscordRichPresence)
{ {
@ -381,7 +389,6 @@ namespace Bloxstrap
{ {
App.Logger.WriteLine("[Bootstrapper::StartRoblox] Using server details notifier"); App.Logger.WriteLine("[Bootstrapper::StartRoblox] Using server details notifier");
serverNotifier = new(activityWatcher!); serverNotifier = new(activityWatcher!);
shouldWait = true;
} }
// launch custom integrations now // launch custom integrations now
@ -796,8 +803,6 @@ namespace Bloxstrap
await CheckModPreset(App.Settings.Prop.UseOldMouseCursor, @"content\textures\Cursors\KeyboardMouse\ArrowFarCursor.png", "OldFarCursor.png"); await CheckModPreset(App.Settings.Prop.UseOldMouseCursor, @"content\textures\Cursors\KeyboardMouse\ArrowFarCursor.png", "OldFarCursor.png");
await CheckModPreset(App.Settings.Prop.UseDisableAppPatch, @"ExtraContent\places\Mobile.rbxl", ""); await CheckModPreset(App.Settings.Prop.UseDisableAppPatch, @"ExtraContent\places\Mobile.rbxl", "");
await ReShade.CheckModifications();
foreach (string file in Directory.GetFiles(modFolder, "*.*", SearchOption.AllDirectories)) foreach (string file in Directory.GetFiles(modFolder, "*.*", SearchOption.AllDirectories))
{ {
// get relative directory path // get relative directory path

View File

@ -80,6 +80,8 @@ namespace Bloxstrap.Helpers
Directory.CreateDirectory(Path.GetDirectoryName(FileLocation)!); Directory.CreateDirectory(Path.GetDirectoryName(FileLocation)!);
File.WriteAllText(FileLocation, JsonSerializer.Serialize(Prop, new JsonSerializerOptions { WriteIndented = true })); File.WriteAllText(FileLocation, JsonSerializer.Serialize(Prop, new JsonSerializerOptions { WriteIndented = true }));
Changes.Clear();
App.Logger.WriteLine($"[FastFlagManager::Save] JSON saved!"); App.Logger.WriteLine($"[FastFlagManager::Save] JSON saved!");
} }
} }

View File

@ -32,6 +32,7 @@ namespace Bloxstrap.Helpers
public long ActivityPlaceId = 0; public long ActivityPlaceId = 0;
public string ActivityJobId = ""; public string ActivityJobId = "";
public string ActivityMachineAddress = ""; public string ActivityMachineAddress = "";
public bool ActivityMachineUDMUX = false;
public bool IsDisposed = false; public bool IsDisposed = false;
@ -141,6 +142,7 @@ namespace Bloxstrap.Helpers
} }
ActivityMachineAddress = match.Groups[1].Value; ActivityMachineAddress = match.Groups[1].Value;
ActivityMachineUDMUX = true;
App.Logger.WriteLine($"[GameActivityWatcher::ExamineLogEntry] Server is UDMUX protected ({ActivityPlaceId}/{ActivityJobId}/{ActivityMachineAddress})"); App.Logger.WriteLine($"[GameActivityWatcher::ExamineLogEntry] Server is UDMUX protected ({ActivityPlaceId}/{ActivityJobId}/{ActivityMachineAddress})");
} }
@ -169,6 +171,7 @@ namespace Bloxstrap.Helpers
ActivityPlaceId = 0; ActivityPlaceId = 0;
ActivityJobId = ""; ActivityJobId = "";
ActivityMachineAddress = ""; ActivityMachineAddress = "";
ActivityMachineUDMUX = false;
OnGameLeave?.Invoke(this, new EventArgs()); OnGameLeave?.Invoke(this, new EventArgs());
} }

View File

@ -78,6 +78,14 @@ namespace Bloxstrap.Helpers
Bootstrapper.Register(); Bootstrapper.Register();
// update check: if we're upgrading to v2.1.0 and have reshade enabled,
// we need to set our renderer to direct3d 11
if (App.Settings.Prop.UseReShade && App.FastFlags.GetValue(FastFlagManager.RenderingModes["Direct3D 11"]) is null)
{
App.FastFlags.SetRenderingMode("Direct3D 11");
App.FastFlags.Save();
}
if (isAutoUpgrade) if (isAutoUpgrade)
{ {
NotifyIcon notification = new() NotifyIcon notification = new()

View File

@ -109,7 +109,7 @@ namespace Bloxstrap.Integrations
_rpcClient.SetPresence(new RichPresence _rpcClient.SetPresence(new RichPresence
{ {
Details = universeDetails.Name, Details = universeDetails.Name,
State = $"by {universeDetails.Creator.Name}", State = $"by {universeDetails.Creator.Name}" + (universeDetails.Creator.HasVerifiedBadge ? " ☑️" : ""),
Timestamps = new Timestamps { Start = DateTime.UtcNow }, Timestamps = new Timestamps { Start = DateTime.UtcNow },
Buttons = buttons.ToArray(), Buttons = buttons.ToArray(),
Assets = new Assets Assets = new Assets

View File

@ -1,4 +1,5 @@
using System.Net.NetworkInformation; using System;
using System.Net.NetworkInformation;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
@ -35,21 +36,30 @@ namespace Bloxstrap.Integrations
locationRegion = locationRegion.ReplaceLineEndings(""); locationRegion = locationRegion.ReplaceLineEndings("");
locationCountry = locationCountry.ReplaceLineEndings(""); locationCountry = locationCountry.ReplaceLineEndings("");
if (locationCity == locationRegion) if (String.IsNullOrEmpty(locationCountry))
message = "Location: N/A";
else if (locationCity == locationRegion)
message = $"Location: {locationRegion}, {locationCountry}\n"; message = $"Location: {locationRegion}, {locationCountry}\n";
else else
message = $"Location: {locationCity}, {locationRegion}, {locationCountry}\n"; message = $"Location: {locationCity}, {locationRegion}, {locationCountry}\n";
PingReply ping = await new Ping().SendPingAsync(machineAddress); // UDMUX protected servers don't respond to ICMP packets and so the ping fails
// we could probably get around this by doing a UDP latency test but ehhhhhhhh
// UDMUX protected servers reject ICMP packets and so the ping fails if (_activityWatcher.ActivityMachineUDMUX)
// we could get around this by doing a UDP ping but ehhhhhhhhhhhhh {
if (ping.Status == IPStatus.Success) message += "Latency: N/A (Server is UDMUX protected)";
message += $"Latency: ~{ping.RoundtripTime}ms"; }
else else
message += "Latency: N/A (server may be UDMUX protected)"; {
PingReply ping = await new Ping().SendPingAsync(machineAddress);
App.Logger.WriteLine($"[ServerNotifier::Notify] {message}"); if (ping.Status == IPStatus.Success)
message += $"Latency: ~{ping.RoundtripTime}ms";
else
message += $"Latency: N/A (Code {ping.Status})";
}
App.Logger.WriteLine($"[ServerNotifier::Notify] {message.ReplaceLineEndings("\\n")}");
NotifyIcon notification = new() NotifyIcon notification = new()
{ {

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project>
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform>Any CPU</Platform>
<PublishDir>bin\Release\net6.0-windows\publish\win-x64\</PublishDir>
<PublishProtocol>FileSystem</PublishProtocol>
<_TargetId>Folder</_TargetId>
<TargetFramework>net6.0-windows</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<SelfContained>false</SelfContained>
<PublishSingleFile>true</PublishSingleFile>
<PublishReadyToRun>false</PublishReadyToRun>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project>
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform>Any CPU</Platform>
<PublishDir>bin\Release\net6.0-windows\publish\win-x86\</PublishDir>
<PublishProtocol>FileSystem</PublishProtocol>
<_TargetId>Folder</_TargetId>
<TargetFramework>net6.0-windows</TargetFramework>
<RuntimeIdentifier>win-x86</RuntimeIdentifier>
<SelfContained>false</SelfContained>
<PublishSingleFile>true</PublishSingleFile>
<PublishReadyToRun>false</PublishReadyToRun>
</PropertyGroup>
</Project>

View File

@ -86,8 +86,8 @@ namespace Bloxstrap.ViewModels
}; };
dialogControl.ShowAndWaitAsync( dialogControl.ShowAndWaitAsync(
"Before you install", "What to know before you install",
"After installation, you can open the menu again by searching for it in the Start menu.\n" + "After installation, you can open this menu again by searching for it in the Start menu.\n" +
"If you want to revert back to the original Roblox launcher, just uninstall Bloxstrap and it will automatically revert." "If you want to revert back to the original Roblox launcher, just uninstall Bloxstrap and it will automatically revert."
); );
} }

View File

@ -116,7 +116,7 @@
</StackPanel> </StackPanel>
<TextBlock Text="Miscellaneous" FontSize="16" FontWeight="Medium" Margin="0,16,0,0" /> <TextBlock Text="Miscellaneous" FontSize="16" FontWeight="Medium" Margin="0,16,0,0" />
<ui:CardControl Margin="0,8,0,0" Padding="16,13,16,12" IsEnabled="{Binding IsChecked, ElementName=RbxFpsUnlockerEnabledToggle, Mode=OneWay}"> <ui:CardControl Margin="0,8,0,0" Padding="16,13,16,12">
<ui:CardControl.Header> <ui:CardControl.Header>
<StackPanel> <StackPanel>
<TextBlock FontSize="14" Text="Show server details of current game" /> <TextBlock FontSize="14" Text="Show server details of current game" />