diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml
index 00cd191..a52add6 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yaml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yaml
@@ -45,6 +45,16 @@ body:
description: Provide a comprehensive description of the problem you're facing. Don't forget to attach any additional resources you may have, such as log files and screenshots.
validations:
required: true
+ - type: textarea
+ id: repro-steps
+ attributes:
+ label: How do you reproduce the problem?
+ description: Include the steps to reproduce the problem from start to finish. Include details such as FastFlags you added and settings you changed.
+ placeholder: |
+ 1. Go to '...'
+ 2. Click on '...'
+ 3. Scroll down to '...'
+ 4. See error
- type: textarea
id: log
attributes:
diff --git a/Bloxstrap/App.xaml.cs b/Bloxstrap/App.xaml.cs
index 5083121..691d868 100644
--- a/Bloxstrap/App.xaml.cs
+++ b/Bloxstrap/App.xaml.cs
@@ -181,6 +181,22 @@ namespace Bloxstrap
}
}
+ public static void AssertWindowsOSVersion()
+ {
+ const string LOG_IDENT = "App::AssertWindowsOSVersion";
+
+ int major = Environment.OSVersion.Version.Major;
+ if (major < 10) // Windows 10 and newer only
+ {
+ Logger.WriteLine(LOG_IDENT, $"Detected unsupported Windows version ({Environment.OSVersion.Version}).");
+
+ if (!LaunchSettings.QuietFlag.Active)
+ Frontend.ShowMessageBox(Strings.App_OSDeprecation_Win7_81, MessageBoxImage.Error);
+
+ Terminate(ErrorCode.ERROR_INVALID_FUNCTION);
+ }
+ }
+
protected override void OnStartup(StartupEventArgs e)
{
const string LOG_IDENT = "App::OnStartup";
@@ -213,6 +229,8 @@ namespace Bloxstrap
#endif
}
+ Logger.WriteLine(LOG_IDENT, $"OSVersion: {Environment.OSVersion}");
+
Logger.WriteLine(LOG_IDENT, $"Loaded from {Paths.Process}");
Logger.WriteLine(LOG_IDENT, $"Temp path is {Paths.Temp}");
Logger.WriteLine(LOG_IDENT, $"WindowsStartMenu path is {Paths.WindowsStartMenu}");
@@ -292,6 +310,7 @@ namespace Bloxstrap
{
Logger.Initialize(true);
Logger.WriteLine(LOG_IDENT, "Not installed, launching the installer");
+ AssertWindowsOSVersion(); // prevent new installs from unsupported operating systems
LaunchHandler.LaunchInstaller();
}
else
diff --git a/Bloxstrap/Bloxstrap.csproj b/Bloxstrap/Bloxstrap.csproj
index 9c9b70c..8e88aa5 100644
--- a/Bloxstrap/Bloxstrap.csproj
+++ b/Bloxstrap/Bloxstrap.csproj
@@ -7,8 +7,8 @@
true
True
Bloxstrap.ico
- 2.8.6
- 2.8.6
+ 2.9.0
+ 2.9.0
app.manifest
true
false
@@ -49,10 +49,10 @@
-
+
-
-
+
+
all
diff --git a/Bloxstrap/Bootstrapper.cs b/Bloxstrap/Bootstrapper.cs
index b08b409..bc6e36d 100644
--- a/Bloxstrap/Bootstrapper.cs
+++ b/Bloxstrap/Bootstrapper.cs
@@ -188,6 +188,8 @@ namespace Bloxstrap
}
#endif
+ App.AssertWindowsOSVersion();
+
// ensure only one instance of the bootstrapper is running at the time
// so that we don't have stuff like two updates happening simultaneously
@@ -322,14 +324,6 @@ namespace Bloxstrap
clientVersion = await Deployment.GetInfo();
}
- if (clientVersion.IsBehindDefaultChannel)
- {
- App.Logger.WriteLine(LOG_IDENT, $"Resetting channel from {Deployment.Channel} because it's behind production");
-
- Deployment.Channel = Deployment.DefaultChannel;
- clientVersion = await Deployment.GetInfo();
- }
-
key.SetValueSafe("www.roblox.com", Deployment.IsDefaultChannel ? "" : Deployment.Channel);
_latestVersionGuid = clientVersion.VersionGuid;
diff --git a/Bloxstrap/Models/APIs/Roblox/ClientVersion.cs b/Bloxstrap/Models/APIs/Roblox/ClientVersion.cs
index 9fa405e..5e584f4 100644
--- a/Bloxstrap/Models/APIs/Roblox/ClientVersion.cs
+++ b/Bloxstrap/Models/APIs/Roblox/ClientVersion.cs
@@ -12,7 +12,5 @@
public string BootstrapperVersion { get; set; } = null!;
public DateTime? Timestamp { get; set; }
-
- public bool IsBehindDefaultChannel { get; set; }
}
}
diff --git a/Bloxstrap/Resources/Strings.Designer.cs b/Bloxstrap/Resources/Strings.Designer.cs
index 90a9e40..e80603d 100644
--- a/Bloxstrap/Resources/Strings.Designer.cs
+++ b/Bloxstrap/Resources/Strings.Designer.cs
@@ -151,6 +151,15 @@ namespace Bloxstrap.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to Roblox no longer supports Windows 7 or 8.1. To continue playing Roblox, please upgrade to Windows 10 or newer..
+ ///
+ public static string App_OSDeprecation_Win7_81 {
+ get {
+ return ResourceManager.GetString("App.OSDeprecation.Win7_81", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Bloxstrap was unable to automatically update to version {0}. Please update it manually by downloading and running it from the website..
///
diff --git a/Bloxstrap/Resources/Strings.resx b/Bloxstrap/Resources/Strings.resx
index 2b7baef..9048916 100644
--- a/Bloxstrap/Resources/Strings.resx
+++ b/Bloxstrap/Resources/Strings.resx
@@ -1267,6 +1267,9 @@ Please close any applications that may be using Roblox's files, and relaunch.All Bloxstrap logs
Label that appears next to a checkbox
+
+ Roblox no longer supports Windows 7 or 8.1. To continue playing Roblox, please upgrade to Windows 10 or newer.
+
Failed to extract all files
diff --git a/Bloxstrap/RobloxInterfaces/Deployment.cs b/Bloxstrap/RobloxInterfaces/Deployment.cs
index 5be0d21..10fae6c 100644
--- a/Bloxstrap/RobloxInterfaces/Deployment.cs
+++ b/Bloxstrap/RobloxInterfaces/Deployment.cs
@@ -187,15 +187,6 @@
}
}
- // check if channel is behind LIVE
- if (!isDefaultChannel)
- {
- var defaultClientVersion = await GetInfo(DefaultChannel);
-
- if (Utilities.CompareVersions(clientVersion.Version, defaultClientVersion.Version) == VersionComparison.LessThan)
- clientVersion.IsBehindDefaultChannel = true;
- }
-
ClientVersionCache[cacheKey] = clientVersion;
}