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; }