diff --git a/Bloxstrap/Bootstrapper.cs b/Bloxstrap/Bootstrapper.cs index cc64143e..8f6c9756 100644 --- a/Bloxstrap/Bootstrapper.cs +++ b/Bloxstrap/Bootstrapper.cs @@ -1069,7 +1069,7 @@ private async Task ApplyModifications() App.Logger.WriteLine("[Bootstrapper::ApplyModifications] End font check"); } - else + else if (Directory.Exists(modFontFamiliesFolder)) { Directory.Delete(modFontFamiliesFolder, true); } diff --git a/Bloxstrap/ProtocolHandler.cs b/Bloxstrap/ProtocolHandler.cs index ce1a4ace..4d4c58c1 100644 --- a/Bloxstrap/ProtocolHandler.cs +++ b/Bloxstrap/ProtocolHandler.cs @@ -32,6 +32,8 @@ public static string ParseUri(string protocol) string[] keyvalPair; string key; string val; + bool channelArgPresent = false; + StringBuilder commandLine = new(); foreach (var parameter in protocol.Split('+')) @@ -56,25 +58,10 @@ public static string ParseUri(string protocol) if (key == "launchtime") val = "LAUNCHTIMEPLACEHOLDER"; - if (key == "channel") + if (key == "channel" && !String.IsNullOrEmpty(val)) { - if (val.ToLowerInvariant() != App.Settings.Prop.Channel.ToLowerInvariant() && App.Settings.Prop.ChannelChangeMode != ChannelChangeMode.Ignore) - { - MessageBoxResult result = App.Settings.Prop.ChannelChangeMode == ChannelChangeMode.Automatic - ? MessageBoxResult.Yes - : Controls.ShowMessageBox( - $"Roblox is attempting to set your channel to {val}, however your current preferred channel is {App.Settings.Prop.Channel}.\n\n" + - $"Would you like to switch channels from {App.Settings.Prop.Channel} to {val}?", - MessageBoxImage.Question, - MessageBoxButton.YesNo - ); - - if (result == MessageBoxResult.Yes) - { - App.Logger.WriteLine($"[Protocol::ParseUri] Changed Roblox build channel from {App.Settings.Prop.Channel} to {val}"); - App.Settings.Prop.Channel = val; - } - } + channelArgPresent = true; + ChangeChannel(val); // we'll set the arg when launching continue; @@ -83,9 +70,37 @@ public static string ParseUri(string protocol) commandLine.Append(UriKeyArgMap[key] + val + " "); } + if (!channelArgPresent) + ChangeChannel(RobloxDeployment.DefaultChannel); + return commandLine.ToString(); } + public static void ChangeChannel(string channel) + { + if (channel.ToLowerInvariant() == App.Settings.Prop.Channel.ToLowerInvariant()) + return; + + if (App.Settings.Prop.ChannelChangeMode == ChannelChangeMode.Ignore) + return; + + if (App.Settings.Prop.ChannelChangeMode != ChannelChangeMode.Automatic) + { + MessageBoxResult result = Controls.ShowMessageBox( + $"Roblox is attempting to set your channel to {channel}, however your current preferred channel is {App.Settings.Prop.Channel}.\n\n" + + $"Would you like to switch channels from {App.Settings.Prop.Channel} to {channel}?", + MessageBoxImage.Question, + MessageBoxButton.YesNo + ); + + if (result != MessageBoxResult.Yes) + return; + } + + App.Logger.WriteLine($"[Protocol::ParseUri] Changed Roblox build channel from {App.Settings.Prop.Channel} to {channel}"); + App.Settings.Prop.Channel = channel; + } + public static void Register(string key, string name, string handler) { string handlerArgs = $"\"{handler}\" %1"; diff --git a/Bloxstrap/UI/Elements/Menu/Pages/BehaviourPage.xaml b/Bloxstrap/UI/Elements/Menu/Pages/BehaviourPage.xaml index 9f28d66b..9d118b28 100644 --- a/Bloxstrap/UI/Elements/Menu/Pages/BehaviourPage.xaml +++ b/Bloxstrap/UI/Elements/Menu/Pages/BehaviourPage.xaml @@ -39,8 +39,8 @@ - - + +