mirror of
https://github.com/bloxstraplabs/bloxstrap.git
synced 2025-04-21 10:01:27 -07:00
Code cleanup and minor fixes
- Fixed channel arg not being set when launching game client - Fixed preferences tooltip hiding too early - Fixed last deploy info not showing for the right channel - Last deploy info now shows deploy timestamp according to system timezone
This commit is contained in:
parent
ff2bd474df
commit
8316c9ec72
@ -9,8 +9,8 @@
|
|||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<Platforms>AnyCPU;x86</Platforms>
|
<Platforms>AnyCPU;x86</Platforms>
|
||||||
<ApplicationIcon>Bloxstrap.ico</ApplicationIcon>
|
<ApplicationIcon>Bloxstrap.ico</ApplicationIcon>
|
||||||
<Version>1.4.0</Version>
|
<Version>1.4.1</Version>
|
||||||
<FileVersion>1.4.0.0</FileVersion>
|
<FileVersion>1.4.1.0</FileVersion>
|
||||||
<UseWPF>True</UseWPF>
|
<UseWPF>True</UseWPF>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -83,40 +83,14 @@ namespace Bloxstrap
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Core
|
#region Core
|
||||||
public Bootstrapper()
|
public Bootstrapper(string? launchCommandLine = null)
|
||||||
{
|
{
|
||||||
|
LaunchCommandLine = launchCommandLine;
|
||||||
FreshInstall = String.IsNullOrEmpty(Program.Settings.VersionGuid);
|
FreshInstall = String.IsNullOrEmpty(Program.Settings.VersionGuid);
|
||||||
Client.Timeout = TimeSpan.FromMinutes(10);
|
Client.Timeout = TimeSpan.FromMinutes(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Initialize(string? launchCommandLine = null)
|
// this is called from BootstrapperStyleForm.SetupDialog()
|
||||||
{
|
|
||||||
LaunchCommandLine = launchCommandLine;
|
|
||||||
|
|
||||||
switch (Program.Settings.BootstrapperStyle)
|
|
||||||
{
|
|
||||||
case BootstrapperStyle.VistaDialog:
|
|
||||||
Application.Run(new VistaDialog(this));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case BootstrapperStyle.LegacyDialog2009:
|
|
||||||
Application.Run(new LegacyDialog2009(this));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case BootstrapperStyle.LegacyDialog2011:
|
|
||||||
Application.Run(new LegacyDialog2011(this));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case BootstrapperStyle.ProgressDialog:
|
|
||||||
Application.Run(new ProgressDialog(this));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case BootstrapperStyle.ProgressDialogDark:
|
|
||||||
Application.Run(new ProgressDialogDark(this));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task Run()
|
public async Task Run()
|
||||||
{
|
{
|
||||||
if (LaunchCommandLine == "-uninstall")
|
if (LaunchCommandLine == "-uninstall")
|
||||||
@ -183,7 +157,12 @@ namespace Bloxstrap
|
|||||||
Dialog.Message = "Starting Roblox...";
|
Dialog.Message = "Starting Roblox...";
|
||||||
|
|
||||||
// launch time isn't really required for all launches, but it's usually just safest to do this
|
// launch time isn't really required for all launches, but it's usually just safest to do this
|
||||||
LaunchCommandLine += " --launchtime=" + DateTimeOffset.Now.ToUnixTimeSeconds() + " -startEvent " + startEventName;
|
LaunchCommandLine += " --launchtime=" + DateTimeOffset.Now.ToUnixTimeSeconds();
|
||||||
|
|
||||||
|
if (Program.Settings.Channel.ToLower() != DeployManager.DefaultChannel.ToLower())
|
||||||
|
LaunchCommandLine += " -channel " + Program.Settings.Channel.ToLower();
|
||||||
|
|
||||||
|
LaunchCommandLine += " -startEvent " + startEventName;
|
||||||
|
|
||||||
using (SystemEvent startEvent = new(startEventName))
|
using (SystemEvent startEvent = new(startEventName))
|
||||||
{
|
{
|
||||||
@ -400,8 +379,10 @@ namespace Bloxstrap
|
|||||||
|
|
||||||
Dialog.CancelEnabled = true;
|
Dialog.CancelEnabled = true;
|
||||||
|
|
||||||
// i believe the original bootstrapper bases the progress bar off zip
|
// i believe the bootstrapper bases the progress bar off
|
||||||
// extraction progress, but here i'm doing package download progress
|
// bytes downloaded / bytes total according to rbxPkgManifest?
|
||||||
|
// i'm too lazy for that, so here it's just based off how many packages
|
||||||
|
// have finished downloading
|
||||||
|
|
||||||
Dialog.ProgressStyle = ProgressBarStyle.Continuous;
|
Dialog.ProgressStyle = ProgressBarStyle.Continuous;
|
||||||
|
|
||||||
@ -411,7 +392,7 @@ namespace Bloxstrap
|
|||||||
|
|
||||||
foreach (Package package in VersionPackageManifest)
|
foreach (Package package in VersionPackageManifest)
|
||||||
{
|
{
|
||||||
// no await, download all the packages at once
|
// download all the packages at once
|
||||||
DownloadPackage(package);
|
DownloadPackage(package);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -430,6 +411,8 @@ namespace Bloxstrap
|
|||||||
|
|
||||||
Debug.WriteLine("Finished downloading");
|
Debug.WriteLine("Finished downloading");
|
||||||
|
|
||||||
|
Dialog.Message = "Configuring Roblox...";
|
||||||
|
|
||||||
Directory.CreateDirectory(Directories.Versions);
|
Directory.CreateDirectory(Directories.Versions);
|
||||||
|
|
||||||
foreach (Package package in VersionPackageManifest)
|
foreach (Package package in VersionPackageManifest)
|
||||||
@ -440,8 +423,6 @@ namespace Bloxstrap
|
|||||||
|
|
||||||
Debug.WriteLine("Finished extracting packages");
|
Debug.WriteLine("Finished extracting packages");
|
||||||
|
|
||||||
Dialog.Message = "Configuring Roblox...";
|
|
||||||
|
|
||||||
string appSettingsLocation = Path.Combine(VersionFolder, "AppSettings.xml");
|
string appSettingsLocation = Path.Combine(VersionFolder, "AppSettings.xml");
|
||||||
await File.WriteAllTextAsync(appSettingsLocation, AppSettings);
|
await File.WriteAllTextAsync(appSettingsLocation, AppSettings);
|
||||||
|
|
||||||
@ -529,7 +510,8 @@ namespace Bloxstrap
|
|||||||
File.Copy(fileModFolder, fileVersionFolder, true);
|
File.Copy(fileModFolder, fileVersionFolder, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// now we check for files that have been deleted from the mod folder
|
// now check for files that have been deleted from the mod folder
|
||||||
|
// according to the manifest
|
||||||
foreach (string fileLocation in manifestFiles)
|
foreach (string fileLocation in manifestFiles)
|
||||||
{
|
{
|
||||||
if (modFolderFiles.Contains(fileLocation))
|
if (modFolderFiles.Contains(fileLocation))
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using Bloxstrap.Helpers;
|
using Bloxstrap.Enums;
|
||||||
using Bloxstrap.Helpers.RSMM;
|
|
||||||
|
|
||||||
namespace Bloxstrap.Dialogs.BootstrapperStyles
|
namespace Bloxstrap.Dialogs.BootstrapperStyles
|
||||||
{
|
{
|
||||||
@ -18,7 +17,7 @@ namespace Bloxstrap.Dialogs.BootstrapperStyles
|
|||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (this.InvokeRequired)
|
if (this.InvokeRequired)
|
||||||
this.Invoke(new Action(() => { _message = value; }));
|
this.Invoke(() => _message = value);
|
||||||
else
|
else
|
||||||
_message = value;
|
_message = value;
|
||||||
}
|
}
|
||||||
@ -30,7 +29,7 @@ namespace Bloxstrap.Dialogs.BootstrapperStyles
|
|||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (this.InvokeRequired)
|
if (this.InvokeRequired)
|
||||||
this.Invoke(new Action(() => { _progressStyle = value; }));
|
this.Invoke(() => _progressStyle = value);
|
||||||
else
|
else
|
||||||
_progressStyle = value;
|
_progressStyle = value;
|
||||||
}
|
}
|
||||||
@ -42,7 +41,7 @@ namespace Bloxstrap.Dialogs.BootstrapperStyles
|
|||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (this.InvokeRequired)
|
if (this.InvokeRequired)
|
||||||
this.Invoke(new Action(() => { _progressValue = value; }));
|
this.Invoke(() => _progressValue = value);
|
||||||
else
|
else
|
||||||
_progressValue = value;
|
_progressValue = value;
|
||||||
}
|
}
|
||||||
@ -54,7 +53,7 @@ namespace Bloxstrap.Dialogs.BootstrapperStyles
|
|||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (this.InvokeRequired)
|
if (this.InvokeRequired)
|
||||||
this.Invoke(new Action(() => { _cancelEnabled = value; }));
|
this.Invoke(() => _cancelEnabled = value);
|
||||||
else
|
else
|
||||||
_cancelEnabled = value;
|
_cancelEnabled = value;
|
||||||
}
|
}
|
||||||
@ -63,7 +62,7 @@ namespace Bloxstrap.Dialogs.BootstrapperStyles
|
|||||||
public void SetupDialog()
|
public void SetupDialog()
|
||||||
{
|
{
|
||||||
this.Text = Program.ProjectName;
|
this.Text = Program.ProjectName;
|
||||||
this.Icon = IconManager.GetIconResource();
|
this.Icon = Program.Settings.BootstrapperIcon.GetIcon();
|
||||||
|
|
||||||
if (Bootstrapper is null)
|
if (Bootstrapper is null)
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bloxstrap.Helpers;
|
using Bloxstrap.Enums;
|
||||||
|
|
||||||
namespace Bloxstrap.Dialogs.BootstrapperStyles
|
namespace Bloxstrap.Dialogs.BootstrapperStyles
|
||||||
{
|
{
|
||||||
@ -37,7 +37,7 @@ namespace Bloxstrap.Dialogs.BootstrapperStyles
|
|||||||
Bootstrapper = bootstrapper;
|
Bootstrapper = bootstrapper;
|
||||||
|
|
||||||
// have to convert icon -> bitmap since winforms scaling is poop
|
// have to convert icon -> bitmap since winforms scaling is poop
|
||||||
this.IconBox.Image = IconManager.GetIconResource().ToBitmap();
|
this.IconBox.Image = Program.Settings.BootstrapperIcon.GetIcon().ToBitmap();
|
||||||
|
|
||||||
SetupDialog();
|
SetupDialog();
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bloxstrap.Helpers;
|
using Bloxstrap.Enums;
|
||||||
|
|
||||||
namespace Bloxstrap.Dialogs.BootstrapperStyles
|
namespace Bloxstrap.Dialogs.BootstrapperStyles
|
||||||
{
|
{
|
||||||
@ -36,7 +36,7 @@ namespace Bloxstrap.Dialogs.BootstrapperStyles
|
|||||||
|
|
||||||
Bootstrapper = bootstrapper;
|
Bootstrapper = bootstrapper;
|
||||||
|
|
||||||
this.IconBox.BackgroundImage = IconManager.GetBitmapResource();
|
this.IconBox.BackgroundImage = Program.Settings.BootstrapperIcon.GetBitmap();
|
||||||
|
|
||||||
SetupDialog();
|
SetupDialog();
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bloxstrap.Helpers;
|
using Bloxstrap.Enums;
|
||||||
|
|
||||||
namespace Bloxstrap.Dialogs.BootstrapperStyles
|
namespace Bloxstrap.Dialogs.BootstrapperStyles
|
||||||
{
|
{
|
||||||
@ -36,7 +36,7 @@ namespace Bloxstrap.Dialogs.BootstrapperStyles
|
|||||||
|
|
||||||
Bootstrapper = bootstrapper;
|
Bootstrapper = bootstrapper;
|
||||||
|
|
||||||
this.IconBox.BackgroundImage = IconManager.GetBitmapResource();
|
this.IconBox.BackgroundImage = Program.Settings.BootstrapperIcon.GetBitmap();
|
||||||
|
|
||||||
SetupDialog();
|
SetupDialog();
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using Bloxstrap.Helpers;
|
using Bloxstrap.Enums;
|
||||||
using Bloxstrap.Helpers.RSMM;
|
|
||||||
|
|
||||||
namespace Bloxstrap.Dialogs.BootstrapperStyles
|
namespace Bloxstrap.Dialogs.BootstrapperStyles
|
||||||
{
|
{
|
||||||
@ -66,7 +65,7 @@ namespace Bloxstrap.Dialogs.BootstrapperStyles
|
|||||||
|
|
||||||
Dialog = new TaskDialogPage()
|
Dialog = new TaskDialogPage()
|
||||||
{
|
{
|
||||||
Icon = new TaskDialogIcon(IconManager.GetIconResource()),
|
Icon = new TaskDialogIcon(Program.Settings.BootstrapperIcon.GetIcon()),
|
||||||
Caption = Program.ProjectName,
|
Caption = Program.ProjectName,
|
||||||
|
|
||||||
Buttons = { TaskDialogButton.Cancel },
|
Buttons = { TaskDialogButton.Cancel },
|
||||||
|
4
Bloxstrap/Dialogs/Preferences.Designer.cs
generated
4
Bloxstrap/Dialogs/Preferences.Designer.cs
generated
@ -467,6 +467,10 @@
|
|||||||
//
|
//
|
||||||
// InfoTooltip
|
// InfoTooltip
|
||||||
//
|
//
|
||||||
|
this.InfoTooltip.AutomaticDelay = 0;
|
||||||
|
this.InfoTooltip.AutoPopDelay = 16000;
|
||||||
|
this.InfoTooltip.InitialDelay = 500;
|
||||||
|
this.InfoTooltip.ReshowDelay = 82;
|
||||||
this.InfoTooltip.ShowAlways = true;
|
this.InfoTooltip.ShowAlways = true;
|
||||||
this.InfoTooltip.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info;
|
this.InfoTooltip.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info;
|
||||||
this.InfoTooltip.ToolTipTitle = "Information";
|
this.InfoTooltip.ToolTipTitle = "Information";
|
||||||
|
@ -3,7 +3,6 @@ using System.Diagnostics;
|
|||||||
|
|
||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
|
|
||||||
using Bloxstrap.Dialogs.BootstrapperStyles;
|
|
||||||
using Bloxstrap.Enums;
|
using Bloxstrap.Enums;
|
||||||
using Bloxstrap.Helpers;
|
using Bloxstrap.Helpers;
|
||||||
using Bloxstrap.Helpers.Integrations;
|
using Bloxstrap.Helpers.Integrations;
|
||||||
@ -58,10 +57,12 @@ namespace Bloxstrap.Dialogs
|
|||||||
|
|
||||||
VersionDeploy info = await DeployManager.GetLastDeploy(channel);
|
VersionDeploy info = await DeployManager.GetLastDeploy(channel);
|
||||||
|
|
||||||
if (info.FileVersion is null || info.Date is null)
|
if (info.FileVersion is null || info.Timestamp is null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ChannelInfo = $"Last deploy:\nv{info.FileVersion} @ {info.Date}";
|
string strTimestamp = info.Timestamp.Value.ToString("MM/dd/yyyy hh:mm:ss tt", Program.CultureFormat);
|
||||||
|
|
||||||
|
ChannelInfo = $"Last deploy:\nv{info.FileVersion} @ {strTimestamp}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public Preferences()
|
public Preferences()
|
||||||
@ -200,30 +201,7 @@ namespace Bloxstrap.Dialogs
|
|||||||
private void PreviewButton_Click(object sender, EventArgs e)
|
private void PreviewButton_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
this.Visible = false;
|
this.Visible = false;
|
||||||
|
Program.Settings.BootstrapperStyle.Show();
|
||||||
switch (Program.Settings.BootstrapperStyle)
|
|
||||||
{
|
|
||||||
case BootstrapperStyle.VistaDialog:
|
|
||||||
new VistaDialog().ShowDialog();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case BootstrapperStyle.LegacyDialog2009:
|
|
||||||
new LegacyDialog2009().ShowDialog();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case BootstrapperStyle.LegacyDialog2011:
|
|
||||||
new LegacyDialog2011().ShowDialog();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case BootstrapperStyle.ProgressDialog:
|
|
||||||
new ProgressDialog().ShowDialog();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case BootstrapperStyle.ProgressDialogDark:
|
|
||||||
new ProgressDialogDark().ShowDialog();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.Visible = true;
|
this.Visible = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,7 +224,7 @@ namespace Bloxstrap.Dialogs
|
|||||||
{
|
{
|
||||||
BootstrapperIcon icon = SelectableIcons[this.IconSelection.Text];
|
BootstrapperIcon icon = SelectableIcons[this.IconSelection.Text];
|
||||||
|
|
||||||
this.IconPreview.BackgroundImage = IconManager.GetBitmapResource(icon);
|
this.IconPreview.BackgroundImage = icon.GetBitmap();
|
||||||
|
|
||||||
if (!this.Visible)
|
if (!this.Visible)
|
||||||
return;
|
return;
|
||||||
@ -304,12 +282,10 @@ namespace Bloxstrap.Dialogs
|
|||||||
|
|
||||||
private void SelectChannel_SelectedValueChanged(object sender, EventArgs e)
|
private void SelectChannel_SelectedValueChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Task.Run(() => GetChannelInfo(Program.Settings.Channel));
|
if (this.Visible)
|
||||||
|
|
||||||
if (!this.Visible)
|
|
||||||
return;
|
|
||||||
|
|
||||||
Program.Settings.Channel = this.SelectChannel.Text;
|
Program.Settings.Channel = this.SelectChannel.Text;
|
||||||
|
|
||||||
|
Task.Run(() => GetChannelInfo(Program.Settings.Channel));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ToggleCheckForUpdates_CheckedChanged(object sender, EventArgs e)
|
private void ToggleCheckForUpdates_CheckedChanged(object sender, EventArgs e)
|
||||||
|
@ -11,4 +11,69 @@
|
|||||||
Icon2019,
|
Icon2019,
|
||||||
Icon2022
|
Icon2022
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class BootstrapperIconEx
|
||||||
|
{
|
||||||
|
public static Icon GetIcon(this BootstrapperIcon icon)
|
||||||
|
{
|
||||||
|
switch (icon)
|
||||||
|
{
|
||||||
|
case BootstrapperIcon.Icon2009:
|
||||||
|
return Properties.Resources.Icon2009_ico;
|
||||||
|
|
||||||
|
case BootstrapperIcon.Icon2011:
|
||||||
|
return Properties.Resources.Icon2011_ico;
|
||||||
|
|
||||||
|
case BootstrapperIcon.IconEarly2015:
|
||||||
|
return Properties.Resources.IconEarly2015_ico;
|
||||||
|
|
||||||
|
case BootstrapperIcon.IconLate2015:
|
||||||
|
return Properties.Resources.IconLate2015_ico;
|
||||||
|
|
||||||
|
case BootstrapperIcon.Icon2017:
|
||||||
|
return Properties.Resources.Icon2017_ico;
|
||||||
|
|
||||||
|
case BootstrapperIcon.Icon2019:
|
||||||
|
return Properties.Resources.Icon2019_ico;
|
||||||
|
|
||||||
|
case BootstrapperIcon.Icon2022:
|
||||||
|
return Properties.Resources.Icon2022_ico;
|
||||||
|
|
||||||
|
case BootstrapperIcon.IconBloxstrap:
|
||||||
|
default:
|
||||||
|
return Properties.Resources.IconBloxstrap_ico;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Bitmap GetBitmap(this BootstrapperIcon icon)
|
||||||
|
{
|
||||||
|
switch (icon)
|
||||||
|
{
|
||||||
|
case BootstrapperIcon.Icon2009:
|
||||||
|
return Properties.Resources.Icon2009_png;
|
||||||
|
|
||||||
|
case BootstrapperIcon.Icon2011:
|
||||||
|
return Properties.Resources.Icon2011_png;
|
||||||
|
|
||||||
|
case BootstrapperIcon.IconEarly2015:
|
||||||
|
return Properties.Resources.IconEarly2015_png;
|
||||||
|
|
||||||
|
case BootstrapperIcon.IconLate2015:
|
||||||
|
return Properties.Resources.IconLate2015_png;
|
||||||
|
|
||||||
|
case BootstrapperIcon.Icon2017:
|
||||||
|
return Properties.Resources.Icon2017_png;
|
||||||
|
|
||||||
|
case BootstrapperIcon.Icon2019:
|
||||||
|
return Properties.Resources.Icon2019_png;
|
||||||
|
|
||||||
|
case BootstrapperIcon.Icon2022:
|
||||||
|
return Properties.Resources.Icon2022_png;
|
||||||
|
|
||||||
|
case BootstrapperIcon.IconBloxstrap:
|
||||||
|
default:
|
||||||
|
return Properties.Resources.IconBloxstrap_png;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
namespace Bloxstrap.Enums
|
using Bloxstrap.Dialogs.BootstrapperStyles;
|
||||||
|
|
||||||
|
namespace Bloxstrap.Enums
|
||||||
{
|
{
|
||||||
public enum BootstrapperStyle
|
public enum BootstrapperStyle
|
||||||
{
|
{
|
||||||
@ -8,4 +10,45 @@
|
|||||||
ProgressDialog,
|
ProgressDialog,
|
||||||
ProgressDialogDark,
|
ProgressDialogDark,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class BootstrapperStyleEx
|
||||||
|
{
|
||||||
|
public static void Show(this BootstrapperStyle bootstrapperStyle, Bootstrapper? bootstrapper = null)
|
||||||
|
{
|
||||||
|
Form dialog;
|
||||||
|
|
||||||
|
switch (bootstrapperStyle)
|
||||||
|
{
|
||||||
|
case BootstrapperStyle.VistaDialog:
|
||||||
|
dialog = new VistaDialog(bootstrapper);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BootstrapperStyle.LegacyDialog2009:
|
||||||
|
dialog = new LegacyDialog2009(bootstrapper);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BootstrapperStyle.LegacyDialog2011:
|
||||||
|
dialog = new LegacyDialog2011(bootstrapper);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BootstrapperStyle.ProgressDialog:
|
||||||
|
default:
|
||||||
|
dialog = new ProgressDialog(bootstrapper);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case BootstrapperStyle.ProgressDialogDark:
|
||||||
|
dialog = new ProgressDialogDark(bootstrapper);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bootstrapper is null)
|
||||||
|
{
|
||||||
|
dialog.ShowDialog();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Application.Run(dialog);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System.IO;
|
using System.Globalization;
|
||||||
|
using System.IO;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
|
|
||||||
using Bloxstrap.Models;
|
using Bloxstrap.Models;
|
||||||
@ -11,8 +12,7 @@ namespace Bloxstrap.Helpers
|
|||||||
public const string DefaultBaseUrl = "https://setup.rbxcdn.com";
|
public const string DefaultBaseUrl = "https://setup.rbxcdn.com";
|
||||||
public static string BaseUrl { get; private set; } = DefaultBaseUrl;
|
public static string BaseUrl { get; private set; } = DefaultBaseUrl;
|
||||||
|
|
||||||
public static readonly string DefaultChannel = "LIVE";
|
public const string DefaultChannel = "LIVE";
|
||||||
|
|
||||||
public static string Channel { set => BaseUrl = BuildBaseUrl(value); }
|
public static string Channel { set => BaseUrl = BuildBaseUrl(value); }
|
||||||
|
|
||||||
// basically any channel that has had a deploy within the past month with a windowsplayer build
|
// basically any channel that has had a deploy within the past month with a windowsplayer build
|
||||||
@ -124,13 +124,16 @@ namespace Bloxstrap.Helpers
|
|||||||
// (last time they did so was may 2021 so we should be fine?)
|
// (last time they did so was may 2021 so we should be fine?)
|
||||||
// example entry: 'New WindowsPlayer version-29fb7cdd06e84001 at 8/23/2022 2:07:27 PM, file version: 0, 542, 100, 5420251, git hash: b98d6b2bea36fa2161f48cca979fb620bb0c24fd ...'
|
// example entry: 'New WindowsPlayer version-29fb7cdd06e84001 at 8/23/2022 2:07:27 PM, file version: 0, 542, 100, 5420251, git hash: b98d6b2bea36fa2161f48cca979fb620bb0c24fd ...'
|
||||||
|
|
||||||
|
// there's a proper way, and then there's the lazy way
|
||||||
|
// this here is the lazy way but it should just work™
|
||||||
|
|
||||||
lastDeploy = lastDeploy[18..]; // 'version-29fb7cdd06e84001 at 8/23/2022 2:07:27 PM, file version: 0, 542, 100, 5420251, git hash: b98d6b2bea36fa2161f48cca979fb620bb0c24fd ...'
|
lastDeploy = lastDeploy[18..]; // 'version-29fb7cdd06e84001 at 8/23/2022 2:07:27 PM, file version: 0, 542, 100, 5420251, git hash: b98d6b2bea36fa2161f48cca979fb620bb0c24fd ...'
|
||||||
string versionGuid = lastDeploy[..lastDeploy.IndexOf(" at")]; // 'version-29fb7cdd06e84001'
|
string versionGuid = lastDeploy[..lastDeploy.IndexOf(" at")]; // 'version-29fb7cdd06e84001'
|
||||||
|
|
||||||
lastDeploy = lastDeploy[(versionGuid.Length + 4)..]; // '8/23/2022 2:07:27 PM, file version: 0, 542, 100, 5420251, git hash: b98d6b2bea36fa2161f48cca979fb620bb0c24fd ...'
|
lastDeploy = lastDeploy[(versionGuid.Length + 4)..]; // '8/23/2022 2:07:27 PM, file version: 0, 542, 100, 5420251, git hash: b98d6b2bea36fa2161f48cca979fb620bb0c24fd ...'
|
||||||
string date = lastDeploy[..lastDeploy.IndexOf(", file")]; // '8/23/2022 2:07:27 PM'
|
string strTimestamp = lastDeploy[..lastDeploy.IndexOf(", file")]; // '8/23/2022 2:07:27 PM'
|
||||||
|
|
||||||
lastDeploy = lastDeploy[(date.Length + 16)..]; // '0, 542, 100, 5420251, git hash: b98d6b2bea36fa2161f48cca979fb620bb0c24fd ...'
|
lastDeploy = lastDeploy[(strTimestamp.Length + 16)..]; // '0, 542, 100, 5420251, git hash: b98d6b2bea36fa2161f48cca979fb620bb0c24fd ...'
|
||||||
string fileVersion = "";
|
string fileVersion = "";
|
||||||
|
|
||||||
if (lastDeploy.Contains("git hash"))
|
if (lastDeploy.Contains("git hash"))
|
||||||
@ -144,13 +147,17 @@ namespace Bloxstrap.Helpers
|
|||||||
fileVersion = lastDeploy[..lastDeploy.IndexOf("...")]; // '0, 448, 0, 411122'
|
fileVersion = lastDeploy[..lastDeploy.IndexOf("...")]; // '0, 448, 0, 411122'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// deployment timestamps are UTC-5
|
||||||
|
strTimestamp += " -05";
|
||||||
|
DateTime dtTimestamp = DateTime.ParseExact(strTimestamp, "M/d/yyyy h:mm:ss tt zz", Program.CultureFormat).ToLocalTime();
|
||||||
|
|
||||||
// convert to traditional version format
|
// convert to traditional version format
|
||||||
fileVersion = fileVersion.Replace(" ", "").Replace(',', '.');
|
fileVersion = fileVersion.Replace(" ", "").Replace(',', '.');
|
||||||
|
|
||||||
return new VersionDeploy
|
return new VersionDeploy
|
||||||
{
|
{
|
||||||
VersionGuid = versionGuid,
|
VersionGuid = versionGuid,
|
||||||
Date = date,
|
Timestamp = dtTimestamp,
|
||||||
FileVersion = fileVersion
|
FileVersion = fileVersion
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
using Bloxstrap.Enums;
|
|
||||||
|
|
||||||
namespace Bloxstrap.Helpers
|
|
||||||
{
|
|
||||||
internal class IconManager
|
|
||||||
{
|
|
||||||
public static Icon GetIconResource()
|
|
||||||
{
|
|
||||||
return GetIconResource(Program.Settings.BootstrapperIcon);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Icon GetIconResource(BootstrapperIcon icon)
|
|
||||||
{
|
|
||||||
switch (icon)
|
|
||||||
{
|
|
||||||
case BootstrapperIcon.Icon2009: return Properties.Resources.Icon2009_ico;
|
|
||||||
case BootstrapperIcon.Icon2011: return Properties.Resources.Icon2011_ico;
|
|
||||||
case BootstrapperIcon.IconEarly2015: return Properties.Resources.IconEarly2015_ico;
|
|
||||||
case BootstrapperIcon.IconLate2015: return Properties.Resources.IconLate2015_ico;
|
|
||||||
case BootstrapperIcon.Icon2017: return Properties.Resources.Icon2017_ico;
|
|
||||||
case BootstrapperIcon.Icon2019: return Properties.Resources.Icon2019_ico;
|
|
||||||
case BootstrapperIcon.Icon2022: return Properties.Resources.Icon2022_ico;
|
|
||||||
case BootstrapperIcon.IconBloxstrap: default: return Properties.Resources.IconBloxstrap_ico;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Bitmap GetBitmapResource()
|
|
||||||
{
|
|
||||||
return GetBitmapResource(Program.Settings.BootstrapperIcon);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Bitmap GetBitmapResource(BootstrapperIcon icon)
|
|
||||||
{
|
|
||||||
switch (icon)
|
|
||||||
{
|
|
||||||
case BootstrapperIcon.Icon2009: return Properties.Resources.Icon2009_png;
|
|
||||||
case BootstrapperIcon.Icon2011: return Properties.Resources.Icon2011_png;
|
|
||||||
case BootstrapperIcon.IconEarly2015: return Properties.Resources.IconEarly2015_png;
|
|
||||||
case BootstrapperIcon.IconLate2015: return Properties.Resources.IconLate2015_png;
|
|
||||||
case BootstrapperIcon.Icon2017: return Properties.Resources.Icon2017_png;
|
|
||||||
case BootstrapperIcon.Icon2019: return Properties.Resources.Icon2019_png;
|
|
||||||
case BootstrapperIcon.Icon2022: return Properties.Resources.Icon2022_png;
|
|
||||||
case BootstrapperIcon.IconBloxstrap: default: return Properties.Resources.IconBloxstrap_png;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -43,7 +43,7 @@ namespace Bloxstrap.Helpers
|
|||||||
|
|
||||||
if (key == "channel")
|
if (key == "channel")
|
||||||
{
|
{
|
||||||
if (val != Program.Settings.Channel)
|
if (val.ToLower() != Program.Settings.Channel.ToLower())
|
||||||
{
|
{
|
||||||
DialogResult result = Program.ShowMessageBox(
|
DialogResult result = Program.ShowMessageBox(
|
||||||
$"{Program.ProjectName} was launched with the Roblox build channel set to {val}, however your current preferred channel is {Program.Settings.Channel}.\n\n" +
|
$"{Program.ProjectName} was launched with the Roblox build channel set to {val}, however your current preferred channel is {Program.Settings.Channel}.\n\n" +
|
||||||
@ -56,7 +56,7 @@ namespace Bloxstrap.Helpers
|
|||||||
Program.Settings.Channel = val;
|
Program.Settings.Channel = val;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (val == DeployManager.DefaultChannel)
|
// we'll set the arg when launching
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ namespace Bloxstrap.Models
|
|||||||
public class VersionDeploy
|
public class VersionDeploy
|
||||||
{
|
{
|
||||||
public string? VersionGuid { get; set; }
|
public string? VersionGuid { get; set; }
|
||||||
public string? Date { get; set; }
|
public DateTime? Timestamp { get; set; }
|
||||||
public string? FileVersion { get; set; }
|
public string? FileVersion { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
|
||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
|
|
||||||
|
using Bloxstrap.Enums;
|
||||||
using Bloxstrap.Helpers;
|
using Bloxstrap.Helpers;
|
||||||
using Bloxstrap.Models;
|
using Bloxstrap.Models;
|
||||||
|
|
||||||
@ -11,6 +13,7 @@ namespace Bloxstrap
|
|||||||
internal static class Program
|
internal static class Program
|
||||||
{
|
{
|
||||||
public const StringComparison StringFormat = StringComparison.InvariantCulture;
|
public const StringComparison StringFormat = StringComparison.InvariantCulture;
|
||||||
|
public static readonly CultureInfo CultureFormat = CultureInfo.InvariantCulture;
|
||||||
|
|
||||||
public const string ProjectName = "Bloxstrap";
|
public const string ProjectName = "Bloxstrap";
|
||||||
public const string ProjectRepository = "pizzaboxer/bloxstrap";
|
public const string ProjectRepository = "pizzaboxer/bloxstrap";
|
||||||
@ -126,7 +129,7 @@ namespace Bloxstrap
|
|||||||
if (!String.IsNullOrEmpty(commandLine))
|
if (!String.IsNullOrEmpty(commandLine))
|
||||||
{
|
{
|
||||||
DeployManager.Channel = Settings.Channel;
|
DeployManager.Channel = Settings.Channel;
|
||||||
new Bootstrapper().Initialize(commandLine);
|
Settings.BootstrapperStyle.Show(new Bootstrapper(commandLine));
|
||||||
}
|
}
|
||||||
|
|
||||||
SettingsManager.Save();
|
SettingsManager.Save();
|
||||||
|
Loading…
Reference in New Issue
Block a user