diff --git a/SDLauncher UWP/App.xaml b/SDLauncher UWP/App.xaml
index f02eee77..32a5b6de 100644
--- a/SDLauncher UWP/App.xaml
+++ b/SDLauncher UWP/App.xaml
@@ -25,6 +25,7 @@
+
diff --git a/SDLauncher UWP/Dialogs/Login.xaml b/SDLauncher UWP/Dialogs/Login.xaml
index f9dc090e..a5deca22 100644
--- a/SDLauncher UWP/Dialogs/Login.xaml
+++ b/SDLauncher UWP/Dialogs/Login.xaml
@@ -49,7 +49,7 @@
@@ -83,7 +83,6 @@
-
@@ -243,16 +242,16 @@
-
+
-
-
-
-
+
+
+
+
diff --git a/SDLauncher UWP/Dialogs/Login.xaml.cs b/SDLauncher UWP/Dialogs/Login.xaml.cs
index 5741476d..fa59d15b 100644
--- a/SDLauncher UWP/Dialogs/Login.xaml.cs
+++ b/SDLauncher UWP/Dialogs/Login.xaml.cs
@@ -61,7 +61,6 @@ private async void btnMSLogin_Click(object sender, RoutedEventArgs e)
this.Hide();
_ = await MessageBox.Show("Error", "User canceld the login!", MessageBoxButtons.Ok);
vars.session = tempsession;
- vars.UserName = tempsession.Username;
_ = this.ShowAsync();
}
else if (result == MSLogin.Exceptions.NoAccount)
@@ -69,7 +68,6 @@ private async void btnMSLogin_Click(object sender, RoutedEventArgs e)
this.Hide();
_ = await MessageBox.Show("Error", "You don't have an Minecraft profile on that Microsoft account!", MessageBoxButtons.Ok);
vars.session = tempsession;
- vars.UserName = tempsession.Username;
_ = this.ShowAsync();
}
else if (result == MSLogin.Exceptions.ConnectFailed)
@@ -79,14 +77,12 @@ private async void btnMSLogin_Click(object sender, RoutedEventArgs e)
if (tempsession != null)
{
vars.session = tempsession;
- vars.UserName = tempsession.Username;
}
_ = this.ShowAsync();
UpdateAccounts();
}
else if (result == MSLogin.Exceptions.Success)
{
- vars.UserName = vars.session.Username;
this.Hide();
}
UI(true);
@@ -100,7 +96,6 @@ private void btnMSLogout_Click(object sender, RoutedEventArgs e)
private void UpdateSession(MSession session)
{
vars.session = session;
- vars.UserName = session.Username.ToString();
this.Hide();
}
@@ -193,7 +188,7 @@ private void LoginFromCache(object sender, RoutedEventArgs e)
isSelectionMode = false;
}
}
- if(vars.Accounts.Count == 1)
+ if (vars.Accounts.Count == 1)
{
isSelectionMode = false;
}
@@ -254,7 +249,6 @@ private void LogOutFromCache(object sender, RoutedEventArgs e)
if (item.Count == vars.CurrentAccountCount)
{
vars.session = null;
- vars.UserName = "";
vars.CurrentAccountCount = null;
}
@@ -275,7 +269,6 @@ private void LogOutFromCache(object sender, RoutedEventArgs e)
if (item.Count == vars.CurrentAccountCount)
{
vars.session = null;
- vars.UserName = "";
vars.CurrentAccountCount = null;
}
}
@@ -284,7 +277,6 @@ private void LogOutFromCache(object sender, RoutedEventArgs e)
if (item.Count == vars.CurrentAccountCount)
{
vars.session = null;
- vars.UserName = "";
vars.CurrentAccountCount = null;
}
}
@@ -318,7 +310,6 @@ void AddAccount(MSession session)
vars.AccountsCount++;
}
vars.session = session;
- vars.UserName = session.Username;
vars.CurrentAccountCount = vars.AccountsCount;
this.Hide();
}
@@ -356,7 +347,7 @@ private void btnBack_Click(object sender, RoutedEventArgs e)
gridChoose.Visibility = Visibility.Collapsed;
gridSettingsOnline.Visibility = Visibility.Collapsed;
}
-
+ public string selectedSkinUUID;
private void btnSettings_Click(object sender, RoutedEventArgs e)
{
if (sender is MenuFlyoutItem itm)
@@ -368,8 +359,9 @@ private void btnSettings_Click(object sender, RoutedEventArgs e)
if (item.Type == "Offline")
{
itmRename.IsEnabled = true;
- imgBody.Source = new BitmapImage(new Uri("https://minotar.net/body/noob"));
- prpSettings.ProfilePicture = new BitmapImage(new Uri("https://minotar.net/avatar/noob"));
+ imgBody.Source = new BitmapImage(new Uri("https://minotar.net/body/MHF_Steve"));
+ prpSettings.ProfilePicture = new BitmapImage(new Uri("https://minotar.net/helm/MHF_Steve"));
+ selectedSkinUUID = "MHF_Steve";
txtTypeSettings.Text = "Offline Account";
fnticoAcTypeSettings.Glyph = item.TypeIconGlyph;
prpSettings.DisplayName = item.UserName;
@@ -384,8 +376,10 @@ private void btnSettings_Click(object sender, RoutedEventArgs e)
}
else
{
- bodyImagesorce = "https://minotar.net/" + item.UUID;
+ imgBody.Source = new BitmapImage(new Uri("https://minotar.net/body/" + item.UUID));
+ prpSettings.ProfilePicture = new BitmapImage(new Uri("https://minotar.net/helm/" + item.UUID));
itmRename.IsEnabled = false;
+ selectedSkinUUID = item.UUID;
txtTypeSettings.Text = "Microsoft Account";
fnticoAcTypeSettings.Glyph = item.TypeIconGlyph;
prpSettings.DisplayName = item.UserName;
@@ -513,7 +507,6 @@ private void Rename(TextBox txtbx)
if (vars.CurrentAccountCount == item.Count)
{
vars.session = MSession.GetOfflineSession(txtbxRename.Text);
- vars.UserName = txtbxRename.Text;
}
item.UserName = txtbxRename.Text;
txtSettingsPrpName.Text = txtbxRename.Text;
@@ -747,7 +740,53 @@ private void btnDel_Click(object sender, RoutedEventArgs e)
}
}
}
+ private async void mitDownloadSkin_Click(object sender, RoutedEventArgs e)
+ {
+ btnDownloadSkin.IsEnabled = false;
+ int taskID = LittleHelp.AddTask("Download image");
+ try
+ {
+ string link = "https://minotar.net/";
+ if (sender is MenuFlyoutItem mit)
+ {
+ switch (mit.Tag.ToString())
+ {
+ case "Head":
+ link += "helm/" + selectedSkinUUID + "/1000";
+ break;
+ case "Head3D":
+ link += "cube/" + selectedSkinUUID + "/1000";
+ break;
+ case "Body":
+ link += "body/" + selectedSkinUUID + "/1000";
+ break;
+ case "Skin":
+ link += "skin/" + selectedSkinUUID;
+ break;
+ }
+ var f = await Windows.Storage.DownloadsFolder.CreateFileAsync(mit.Tag.ToString() + selectedSkinUUID);
+ var path = f.Path;
+ f = null;
+ using (var client = new HttpClientDownloadWithProgress(link, path))
+ {
+ client.ProgressChanged += (totalFileSize, totalBytesDownloaded, progressPercentage) =>
+ {
+ if (progressPercentage == 100)
+ {
+ LittleHelp.CompleteTask(taskID,true);
+ client.Dispose();
+ }
+ };
-
+ await client.StartDownload();
+ }
+ }
+ }
+ catch
+ {
+ LittleHelp.CompleteTask(taskID, false);
+ }
+ btnDownloadSkin.IsEnabled = true;
+ }
}
}
diff --git a/SDLauncher UWP/Helpers/Labrinth.cs b/SDLauncher UWP/Helpers/Labrinth.cs
index f4782aff..0077f0fd 100644
--- a/SDLauncher UWP/Helpers/Labrinth.cs
+++ b/SDLauncher UWP/Helpers/Labrinth.cs
@@ -20,9 +20,9 @@ public static int AddTask(string name)
{
return vars.Launcher.TasksHelper.AddTask(name);
}
- public static void CompleteTask(int ID,bool? IsSuccess = null)
+ public static void CompleteTask(int ID,bool IsSuccess = true)
{
- vars.Launcher.TasksHelper.CompleteTask(ID);
+ vars.Launcher.TasksHelper.CompleteTask(ID,IsSuccess);
}
}
public class Labrinth
@@ -67,7 +67,7 @@ public async void DownloadMod(LabrinthResults.DownloadManager.File file,CmlLib.C
else
{
this.MainUIChangeRequested(this, new SDLauncher.UIChangeRequestedEventArgs(true));
- LittleHelp.CompleteTask(DownloadTaskID);
+ LittleHelp.CompleteTask(DownloadTaskID,true);
}
}
}
@@ -83,19 +83,29 @@ private async void ModrinthDownload(string link,string folderdir, string fileNam
CreationCollisionOption.ReplaceExisting);
string path = file.Path;
file = null;
- using (var client = new HttpClientDownloadWithProgress(link, path))
+ try
{
- client.ProgressChanged += (totalFileSize, totalBytesDownloaded, progressPercentage) => {
- StatusChanged("Download " + fileName, new EventArgs());
- this.ProgressChanged(this, new SDLauncher.ProgressChangedEventArgs(currentProg: Convert.ToInt32(progressPercentage)));
- if(progressPercentage == 100)
+ using (var client = new HttpClientDownloadWithProgress(link, path))
+ {
+ client.ProgressChanged += (totalFileSize, totalBytesDownloaded, progressPercentage) =>
{
- this.DownloadFileCompleted();
- client.Dispose();
- }
- };
+ StatusChanged("Download " + fileName, new EventArgs());
+ this.ProgressChanged(this, new SDLauncher.ProgressChangedEventArgs(currentProg: Convert.ToInt32(progressPercentage)));
+ if (progressPercentage == 100)
+ {
+ this.DownloadFileCompleted();
+ client.Dispose();
+ LittleHelp.CompleteTask(DownloadTaskID);
+ }
+ };
- await client.StartDownload();
+ await client.StartDownload();
+ }
+ }
+ catch
+ {
+ DownloadFileCompleted();
+ LittleHelp.CompleteTask(DownloadTaskID,false);
}
}
@@ -108,7 +118,6 @@ private void DownloadFileCompleted()
{
StatusChanged("Ready", new EventArgs());
ProgressChanged(this, new SDLauncher.ProgressChangedEventArgs(currentProg:0));
- LittleHelp.CompleteTask(DownloadTaskID);
MainUIChangeRequested(this, new SDLauncher.UIChangeRequestedEventArgs(true));
}
public async Task Search(string name, int? limit = null, LabrinthResults.SearchSortOptions sortOptions = LabrinthResults.SearchSortOptions.Relevance, LabrinthResults.SearchCategories[] categories = null)
@@ -159,7 +168,7 @@ private void DownloadFileCompleted()
{
StatusChanged("Ready", new EventArgs());
UI(true);
- LittleHelp.CompleteTask(taskID);
+ LittleHelp.CompleteTask(taskID, false);
return null;
}
}
@@ -191,7 +200,7 @@ private void DownloadFileCompleted()
{
UI(true);
}
- LittleHelp.CompleteTask(taskID);
+ LittleHelp.CompleteTask(taskID,false);
return null;
}
}
@@ -215,7 +224,7 @@ private void DownloadFileCompleted()
{
StatusChanged("Ready", new EventArgs());
UI(true);
- LittleHelp.CompleteTask(taskID);
+ LittleHelp.CompleteTask(taskID, false);
return null;
}
}
diff --git a/SDLauncher UWP/Helpers/MenuItemsCreator.cs b/SDLauncher UWP/Helpers/MenuItemsCreator.cs
new file mode 100644
index 00000000..327f4e41
--- /dev/null
+++ b/SDLauncher UWP/Helpers/MenuItemsCreator.cs
@@ -0,0 +1,109 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+
+namespace SDLauncher_UWP.Helpers
+{
+ public class MenuItemsCreator
+ {
+ public enum MCType
+ {
+ Vanilla,
+ Fabric
+ }
+ public event EventHandler ItemInvoked = delegate { };
+ public MenuFlyout CreateVersions()
+ {
+ var f = new MenuFlyout();
+ f.Items.Add(GetFromStrings("1.19"));
+ f.Items.Add(GetFromStrings("1.18"));
+ f.Items.Add(GetFromStrings("1.17"));
+ f.Items.Add(GetFromStrings("1.16"));
+ f.Items.Add(GetFromStrings("1.15"));
+ f.Items.Add(GetFromStrings("1.12"));
+ f.Items.Add(GetFromStrings("1.11"));
+ f.Items.Add(GetFromStrings("1.10"));
+ f.Items.Add(GetFromStrings("1.9"));
+ f.Items.Add(GetFromStrings("1.8"));
+ f.Items.Add(GetFromStrings("1.7"));
+ f.Items.Add(GetFromStrings("1.6"));
+ f.Items.Add(GetFromStrings("1.5"));
+ f.Items.Add(GetFromStrings("1.4"));
+ f.Items.Add(GetFromStrings("1.3"));
+ f.Items.Add(GetFromStrings("1.2"));
+ f.Items.Add(GetFromStrings("1.1"));
+ return f;
+ }
+ public MenuFlyoutItemBase GetFromStrings(string ver)
+ {
+ var subVers = vars.Launcher.GetSubVersions(ver);
+ if (subVers.Count() > 1)
+ {
+ MenuFlyoutSubItem f = new MenuFlyoutSubItem();
+ f.Text = ver;
+ foreach (var item in subVers)
+ {
+ f.Items.Add(ReturnMCWithFabric(item));
+ }
+ return f;
+ }
+ else
+ {
+ return CreateItem(ver, "vaniila-" + ver);
+ }
+ }
+ public MenuFlyoutItemBase ReturnMCWithFabric(string ver)
+ {
+ string fabricVer = vars.Launcher.SearchFabric(ver);
+ if (string.IsNullOrEmpty(fabricVer))
+ {
+ return CreateItem(ver, "vaniila-" + ver);
+ }
+ else
+ {
+ var i = new MenuFlyoutSubItem();
+ i.Text = ver;
+ i.Items.Add(CreateItem(ver, "vaniila-" + ver));
+ i.Items.Add(CreateItem("Fabric " + ver, "fabricMC-" + fabricVer));
+ return i;
+ }
+ }
+ public MenuFlyoutItem CreateItem(string text, string tag)
+ {
+ var i = new MenuFlyoutItem { Text = text, Tag = tag };
+ i.Click += MCVerClick;
+ return i;
+ }
+
+ private void MCVerClick(object sender, RoutedEventArgs e)
+ {
+ if(sender is MenuFlyoutItem mit)
+ {
+ if (mit.Tag.ToString().StartsWith("fabricMC-"))
+ {
+ this.ItemInvoked(this, new ItemInvokedArgs(mit.Tag.ToString().Replace("fabricMC-", "").ToString(), mit.Text, MCType.Fabric));
+ }
+ else if(mit.Tag.ToString().StartsWith("vanilla-"))
+ {
+ this.ItemInvoked(this, new ItemInvokedArgs(mit.Tag.ToString().Replace("vanilla-", "").ToString(), mit.Text, MCType.Vanilla));
+ }
+ }
+ }
+ public class ItemInvokedArgs : EventArgs
+ {
+ public string Ver { get; private set; }
+ public string DisplayVer { get; private set; }
+ public MCType MCType { get; private set; }
+ public ItemInvokedArgs(string ver, string displayVer, MCType mCType)
+ {
+ Ver = ver;
+ DisplayVer = displayVer;
+ MCType = mCType;
+ }
+ }
+ }
+}
diff --git a/SDLauncher UWP/Helpers/SDLauncher.cs b/SDLauncher UWP/Helpers/SDLauncher.cs
index 995b374f..07260a61 100644
--- a/SDLauncher UWP/Helpers/SDLauncher.cs
+++ b/SDLauncher UWP/Helpers/SDLauncher.cs
@@ -19,7 +19,7 @@ namespace SDLauncher_UWP.Helpers
public class TasksHelper
{
public event EventHandler TaskAddRequested = delegate { };
- public event EventHandler TaskCompleteRequested = delegate { };
+ public event EventHandler TaskCompleteRequested = delegate { };
public int AllTaksCount { get; private set; } = 0;
public int AddTask(string name)
{
@@ -27,9 +27,19 @@ public int AddTask(string name)
TaskAddRequested(this, new UserControls.Task(name, AllTaksCount));
return AllTaksCount;
}
- public void CompleteTask(int ID)
+ public void CompleteTask(int ID,bool success)
{
- TaskCompleteRequested(this, ID);
+ TaskCompleteRequested(this, new TaskCompletedEventArgs(ID,success));
+ }
+ }
+ public class TaskCompletedEventArgs
+ {
+ public int ID;
+ public bool Success;
+ public TaskCompletedEventArgs(int iD, bool success)
+ {
+ ID = iD;
+ Success = success;
}
}
public class SDLauncher
@@ -66,10 +76,10 @@ public List FabricMCVerNames
{
get
{
- if (MCVersions != null)
+ if (FabricMCVersions != null)
{
List temp = new List();
- foreach (var item in MCVersions)
+ foreach (var item in FabricMCVersions)
{
temp.Add(item.Name);
}
@@ -123,7 +133,38 @@ private void Labrinth_MainUIChangeRequested(object sender, UIChangeRequestedEven
{
UI(e.UI);
}
-
+ public string SearchFabric(string ver)
+ {
+ try
+ {
+ var item = from t in FabricMCVerNames where t.EndsWith(ver) select t;
+ if (item != null)
+ {
+ return item.FirstOrDefault();
+ }
+ else
+ {
+ return "";
+ }
+ }
+ catch
+ {
+ return "";
+ }
+ }
+ public string[] GetSubVersions(string ver)
+ {
+ var items = from t in MCVersions where t.Name.StartsWith(ver) select t.Name;
+ if (items != null)
+ {
+ var final = from t in items where t.Replace(ver,"").ToString().StartsWith(".") || t == ver select t;
+ return final.ToArray();
+ }
+ else
+ {
+ return new List().ToArray();
+ }
+ }
private void SDLauncher_FileOrProgressChanged(object sender, ProgressChangedEventArgs e)
{
string stats = "";
@@ -213,20 +254,20 @@ public async Task LoadStore()
{
Status("Ready");
var s = await LoadStore();
- TasksHelper.CompleteTask(taskID);
+ TasksHelper.CompleteTask(taskID,true);
return s;
}
else
{
Status("Ready");
- TasksHelper.CompleteTask(taskID);
+ TasksHelper.CompleteTask(taskID,false);
return false;
}
}
else
{
Status("Ready");
- TasksHelper.CompleteTask(taskID);
+ TasksHelper.CompleteTask(taskID,true);
return true;
}
}
@@ -259,10 +300,13 @@ public async Task LoadChangeLogs()
html += await vars.Launcher.GetChangelog("1.18");
html += await vars.Launcher.GetChangelog("1.17.1");
html += await vars.Launcher.GetChangelog("1.16.5");
+ TasksHelper.CompleteTask(taskID,true);
+ }
+ catch
+ {
+ TasksHelper.CompleteTask(taskID,false);
}
- catch { }
ChangeLogsHTMLBody = html;
- TasksHelper.CompleteTask(taskID);
}
public async Task GetChangelog(string version)
{
@@ -348,6 +392,7 @@ public async Task RefreshVersions()
}
Status(Localized.Ready);
VersionsRefreshed(this, new EventArgs());
+ TasksHelper.CompleteTask(taskID,true);
}
catch
{
@@ -366,8 +411,8 @@ public async Task RefreshVersions()
{
CoreApplication.Exit();
}
+ TasksHelper.CompleteTask(taskID,false);
}
- TasksHelper.CompleteTask(taskID);
UI(true);
}
@@ -412,7 +457,7 @@ public async Task CheckFabric(string mcver, string modver, stri
launchVer = modver;
displayVer = displayver;
Status("Ready");
- TasksHelper.CompleteTask(taskID);
+ TasksHelper.CompleteTask(taskID, true);
return new FabricResponsoe(launchVer, displayVer, FabricResponsoe.Responses.ExistsOrCreated);
}
else
@@ -421,12 +466,12 @@ public async Task CheckFabric(string mcver, string modver, stri
{
displayVer = mcver;
launchVer = mcver;
- TasksHelper.CompleteTask(taskID);
+ TasksHelper.CompleteTask(taskID, true);
return new FabricResponsoe(launchVer, displayVer, FabricResponsoe.Responses.NeedMojangVer);
}
else
{
- TasksHelper.CompleteTask(taskID);
+ TasksHelper.CompleteTask(taskID,false);
return new FabricResponsoe("", "Version", FabricResponsoe.Responses.NeedMojangVer);
}
}
diff --git a/SDLauncher UWP/Helpers/SettingsDataManager.cs b/SDLauncher UWP/Helpers/SettingsDataManager.cs
index ec6c1d70..6cab18d1 100644
--- a/SDLauncher UWP/Helpers/SettingsDataManager.cs
+++ b/SDLauncher UWP/Helpers/SettingsDataManager.cs
@@ -21,10 +21,18 @@ namespace SDLauncher_UWP.Helpers
public class SettingsDataManager
{
- public async Task CreateSettingsFile(bool? Exit)
+ public async Task CreateSettingsFile(bool Exit = false,StorageFile file = null)
{
- var storagefile = await ApplicationData.Current.RoamingFolder.CreateFileAsync("settings.xml", CreationCollisionOption.ReplaceExisting);
- using (IRandomAccessStream writestream = await storagefile.OpenAsync(FileAccessMode.ReadWrite))
+ StorageFile storageFile;
+ if (file == null)
+ {
+ storageFile = await ApplicationData.Current.RoamingFolder.CreateFileAsync("settings.xml", CreationCollisionOption.ReplaceExisting);
+ }
+ else
+ {
+ storageFile = file;
+ }
+ using (IRandomAccessStream writestream = await storageFile.OpenAsync(FileAccessMode.ReadWrite))
{
Stream s = writestream.AsStreamForWrite();
XmlWriterSettings settings = new XmlWriterSettings();
@@ -119,8 +127,8 @@ public async Task CreateSettingsFile(bool? Exit)
writer.WriteStartElement("AutoLogin");
writer.WriteAttributeString("value", vars.autoLog.ToString());
writer.WriteEndElement();
- writer.WriteStartElement("UseOldVersionsSeletor");
- writer.WriteAttributeString("value", vars.UseOldVerSeletor.ToString());
+ writer.WriteStartElement("VersionsSeletor");
+ writer.WriteAttributeString("value", vars.VerSelectors.ToString());
writer.WriteEndElement();
writer.WriteStartElement("Discord");
writer.WriteAttributeString("IsPinned", vars.IsFixedDiscord.ToString());
@@ -134,7 +142,7 @@ public async Task CreateSettingsFile(bool? Exit)
if (vars.showXMLOnClose)
{
- await Windows.System.Launcher.LaunchFileAsync(storagefile);
+ await Windows.System.Launcher.LaunchFileAsync(storageFile);
vars.showXMLOnClose = false;
}
if (Exit == true)
@@ -157,7 +165,7 @@ public async Task LoadSettingsFile()
string hashcheck;
string assetscheck;
string autolog;
- string oldVer;
+ string verselect;
string fixDiscord;
string gamelogs;
string jvmWidth;
@@ -197,8 +205,8 @@ public async Task LoadSettingsFile()
tips = reader.GetAttribute("value");
reader.ReadToFollowing("AutoLogin");
autolog = reader.GetAttribute("value");
- reader.ReadToFollowing("UseOldVersionsSeletor");
- oldVer = reader.GetAttribute("value");
+ reader.ReadToFollowing("VersionsSeletor");
+ verselect = reader.GetAttribute("value");
reader.ReadToFollowing("Discord");
fixDiscord = reader.GetAttribute("IsPinned");
@@ -323,9 +331,9 @@ public async Task LoadSettingsFile()
{
fe.RequestedTheme = (ElementTheme)vars.Theme;
}
+ vars.VerSelectors = (Views.VerSelectors)Enum.Parse(typeof(Views.VerSelectors),verselect);
vars.ShowTips = tips == "True";
vars.HashCheck = hashcheck == "True";
- vars.UseOldVerSeletor = oldVer == "True";
vars.AutoClose = autoClose == "True";
vars.CustomBackground = isCustombg == "True";
vars.GameLogs = gamelogs == "True";
@@ -345,12 +353,11 @@ public async Task LoadSettingsFile()
{
if (item.UserName == "null")
{
- vars.UserName = "";
+ vars.session = null;
}
else
{
- vars.UserName = item.UserName;
- vars.session = MSession.GetOfflineSession(vars.UserName);
+ vars.session = MSession.GetOfflineSession(item.UserName);
}
}
else
diff --git a/SDLauncher UWP/SDLauncher UWP.csproj b/SDLauncher UWP/SDLauncher UWP.csproj
index a0d67b5f..00b01072 100644
--- a/SDLauncher UWP/SDLauncher UWP.csproj
+++ b/SDLauncher UWP/SDLauncher UWP.csproj
@@ -146,6 +146,7 @@
+
diff --git a/SDLauncher UWP/UserControls/StoreItemsCollection.xaml b/SDLauncher UWP/UserControls/StoreItemsCollection.xaml
index c7a1d159..49e50a70 100644
--- a/SDLauncher UWP/UserControls/StoreItemsCollection.xaml
+++ b/SDLauncher UWP/UserControls/StoreItemsCollection.xaml
@@ -27,7 +27,7 @@
-
+
diff --git a/SDLauncher UWP/UserControls/TaskListView.xaml b/SDLauncher UWP/UserControls/TaskListView.xaml
index d3a058e4..61560606 100644
--- a/SDLauncher UWP/UserControls/TaskListView.xaml
+++ b/SDLauncher UWP/UserControls/TaskListView.xaml
@@ -43,7 +43,7 @@
-
+
@@ -74,10 +74,10 @@
-
+
-
+
diff --git a/SDLauncher UWP/UserControls/TaskListView.xaml.cs b/SDLauncher UWP/UserControls/TaskListView.xaml.cs
index 312b7eef..51d8973e 100644
--- a/SDLauncher UWP/UserControls/TaskListView.xaml.cs
+++ b/SDLauncher UWP/UserControls/TaskListView.xaml.cs
@@ -15,6 +15,7 @@
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using System.Collections.ObjectModel;
+using Windows.UI;
// The User Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234236
@@ -49,7 +50,7 @@ public int AddTask(string name,int? ID = null)
return (int)ID;
}
}
- public bool CompleteTask(int id)
+ public bool CompleteTask(int id,bool success)
{
try
{
@@ -61,6 +62,14 @@ public bool CompleteTask(int id)
{
CurrentTasks.Remove(itm);
itm.DateAdded = DateTime.Now;
+ if (!success)
+ {
+ itm.BorderBrush = new SolidColorBrush(Colors.Red);
+ }
+ else
+ {
+ itm.BorderBrush = new SolidColorBrush(Colors.Green);
+ }
TasksCompleted.Add(itm);
RefreshTasks();
return true;
@@ -130,11 +139,16 @@ public class Task : INotifyPropertyChanged
public Visibility RingVisibility { get { return ringVisibility; }set { ringVisibility = value;OnPropertyChanged(); } }
public int ID { get; private set; }
public DateTime DateAdded { get; set; }
- public Task(string name, int iD)
+ public Brush BorderBrush { get { return BBrush; } set { BBrush = value; OnPropertyChanged(); } }
+
+ private Brush BBrush;
+
+ public Task(string name, int iD, Brush borderBrush = null)
{
Name = name;
DateAdded = DateTime.Now;
ID = iD;
+ BorderBrush = borderBrush;
}
private void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
diff --git a/SDLauncher UWP/Views/BaseLauncherPage.xaml b/SDLauncher UWP/Views/BaseLauncherPage.xaml
index 3caecd3b..9d7e98a8 100644
--- a/SDLauncher UWP/Views/BaseLauncherPage.xaml
+++ b/SDLauncher UWP/Views/BaseLauncherPage.xaml
@@ -9,9 +9,6 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:animatedvisuals="using:Microsoft.UI.Xaml.Controls.AnimatedVisuals"
mc:Ignorable="d">
-
-
-
@@ -31,7 +28,6 @@
CloseButtonStyle="{ThemeResource ButtonRevealStyle}"
CloseButtonClick="tip_CloseButtonClick"
Background="{ThemeResource AcrylicInAppFillColorDefaultBrush}"
- Target="{x:Bind cmbxVer}"
Title="Choose A version"
Subtitle="There is avaible version 1.15 lower for now">
@@ -54,7 +50,7 @@
-
+
@@ -94,8 +90,9 @@
-
-
+
+
+
diff --git a/SDLauncher UWP/Views/BaseLauncherPage.xaml.cs b/SDLauncher UWP/Views/BaseLauncherPage.xaml.cs
index 267ce825..eb289917 100644
--- a/SDLauncher UWP/Views/BaseLauncherPage.xaml.cs
+++ b/SDLauncher UWP/Views/BaseLauncherPage.xaml.cs
@@ -54,15 +54,12 @@ public sealed partial class BaseLauncherPage : Page
{
public static string launchVer { get; set; }
public ChangeLogsPage LogsPage { get; set; }
+ public MenuItemsCreator MCVerManager { get; set; }
public StorePage StorePage { get; set; }
public event EventHandler UIchanged = delegate { };
public BaseLauncherPage()
{
this.InitializeComponent();
- var timer = new DispatcherTimer();
- timer.Interval = new TimeSpan(0, 0, 0, 0, 1);
- timer.Tick += Timer_Tick;
- timer.Start();
vars.ThemeUpdated += Vars_ThemeUpdated;
var s = new ServerTemplate("mc.hypixel.net", 25565);
}
@@ -90,7 +87,10 @@ public async void InitializeLauncher()
{
UI(false);
int taskID = LittleHelp.AddTask("Initialize Launcher Core");
+ Vars_SessionChanged(null, null);
+ Vars_VerSelctorChanged(null, null);
navitmStore.IsEnabled = false;
+ vars.SessionChanged += Vars_SessionChanged;
vars.Launcher.UIChangeRequested += Launcher_UIChangeRequested;
vars.Launcher.VersionsRefreshed += Launcher_VersionsRefreshed;
vars.Launcher.StatusChanged += Launcher_StatusChanged;
@@ -98,10 +98,14 @@ public async void InitializeLauncher()
vars.Launcher.OptiFine.DownloadCompleted += OptiFine_DownloadCompleted;
vars.Launcher.GlacierClient.DownloadCompleted += GlacierClient_DownloadCompleted;
vars.Launcher.VersionLoaderChanged += Launcher_VersionLoaderChanged;
+ vars.VerSelctorChanged += Vars_VerSelctorChanged;
+ MCVerManager = new MenuItemsCreator();
+ MCVerManager.ItemInvoked += MCVerManager_ItemInvoked;
LogsPage = new ChangeLogsPage();
navViewFrame.Content = LogsPage;
LittleHelp.CompleteTask(taskID);
await vars.Launcher.RefreshVersions();
+ btnAdvMCVer.Flyout = MCVerManager.CreateVersions();
UI(true);
if (await vars.Launcher.LoadStore() == true)
{
@@ -110,11 +114,78 @@ public async void InitializeLauncher()
await vars.Launcher.LoadChangeLogs();
}
+ private async void MCVerManager_ItemInvoked(object sender, MenuItemsCreator.ItemInvokedArgs e)
+ {
+ if(vars.VerSelectors == VerSelectors.Advanced)
+ {
+ if(e.MCType == MenuItemsCreator.MCType.Vanilla)
+ {
+ launchVer = e.Ver;
+ btnAdvMCVer.Content = e.DisplayVer;
+ }
+ else
+ {
+ int taskID = LittleHelp.AddTask("Get Fabric");
+ try
+ {
+ UI(false);
+ var fabric = vars.Launcher.FabricMCVersions.GetVersionMetadata(e.Ver);
+ await fabric.SaveAsync(vars.Launcher.Launcher.MinecraftPath);
+ UI(true);
+ btnAdvMCVer.Content = e.DisplayVer;
+ LittleHelp.CompleteTask(taskID, true);
+ }
+ catch
+ {
+ launchVer = "";
+ btnAdvMCVer.Content = "Pick a Version";
+ LittleHelp.CompleteTask(taskID, false);
+ }
+ }
+ }
+ }
+
+ private void Vars_VerSelctorChanged(object sender, EventArgs e)
+ {
+ switch (vars.VerSelectors)
+ {
+ case VerSelectors.Normal:
+ btnAdvMCVer.Visibility = Visibility.Collapsed;
+ cmbxVer.Visibility = Visibility.Collapsed;
+ btnMCVer.Visibility = Visibility.Visible;
+ break;
+ case VerSelectors.Advanced:
+ btnAdvMCVer.Visibility = Visibility.Visible;
+ cmbxVer.Visibility = Visibility.Collapsed;
+ btnMCVer.Visibility = Visibility.Collapsed;
+ break;
+ case VerSelectors.Classic:
+ btnAdvMCVer.Visibility = Visibility.Collapsed;
+ cmbxVer.Visibility = Visibility.Visible;
+ btnMCVer.Visibility = Visibility.Collapsed;
+ break;
+ }
+ }
+
+ private void Vars_SessionChanged(object sender, EventArgs e)
+ {
+ if (vars.session != null)
+ {
+ txtWelcome.Text = Localized.Welcome + ", " + vars.session.Username + "!";
+ }
+ else
+ {
+ txtWelcome.Text = Localized.Welcome;
+ }
+ }
+
private void Launcher_VersionLoaderChanged(object sender, EventArgs e)
{
if (vars.Launcher.UseOfflineLoader)
{
btnMCVer.Visibility = Visibility.Collapsed;
+ btnAdvMCVer.Visibility = Visibility.Collapsed;
+ vars.VerSelectors = VerSelectors.Classic;
cmbxVer.Visibility = Visibility.Visible;
}
}
@@ -186,19 +257,22 @@ private void Launcher_UIChangeRequested(object sender, SDLauncher.UIChangeReques
UI(e.UI);
}
- private void Timer_Tick(object sender, object e)
+ public void ShowTips()
{
- if (vars.ShowLaunchTips)
+ if(vars.VerSelectors == VerSelectors.Normal)
{
- vars.ShowLaunchTips = false;
- tipVer.IsOpen = true;
+ tipVer.Target = btnMCVer;
}
- if (vars.UserName != null)
+ else if (vars.VerSelectors == VerSelectors.Classic)
{
- txtWelcome.Text = Localized.Welcome + ", " + vars.UserName + "!";
+ tipVer.Target = cmbxVer;
}
+ else
+ {
+ tipVer.Target = btnAdvMCVer;
+ }
+ tipVer.IsOpen = true;
}
-
private async void BtnLaunch_Click(object sender, RoutedEventArgs e)
{
UI(false);
@@ -221,10 +295,14 @@ private async void BtnLaunch_Click(object sender, RoutedEventArgs e)
{
btnMCVer.Focus(FocusState.Keyboard);
}
- else
+ else if(cmbxVer.Visibility == Visibility.Visible)
{
cmbxVer.Focus(FocusState.Keyboard);
}
+ else
+ {
+ btnAdvMCVer.Focus(FocusState.Keyboard);
+ }
return;
}
if (vars.MinRam == 0) { _ = await MessageBox.Show(Localized.Error, Localized.WrongRAM, MessageBoxButtons.Ok); return; }
@@ -249,9 +327,16 @@ private async void BtnLaunch_Click(object sender, RoutedEventArgs e)
l.JVMArguments = vars.JVMArgs.ToArray();
vars.Launcher.CreateToast();
int taskID = LittleHelp.AddTask("Launch Minecraft");
- var process = await vars.Launcher.Launcher.CreateProcessAsync(launchVer, l);
+ try
+ {
+ var process = await vars.Launcher.Launcher.CreateProcessAsync(launchVer, l);
LittleHelp.CompleteTask(taskID);
StartProcess(process);
+ }
+ catch
+ {
+ LittleHelp.CompleteTask(taskID, false);
+ }
}
catch (WebException)
{
@@ -333,19 +418,7 @@ private void CreateToast(string Title,string description,bool clearBefore)
private void Page_Loaded(object sender, RoutedEventArgs e)
{
LogsPage.UpdateLogs();
- if (vars.Launcher.UseOfflineLoader)
- return;
-
- if (vars.UseOldVerSeletor)
- {
- btnMCVer.Visibility = Visibility.Collapsed;
- cmbxVer.Visibility = Visibility.Visible;
- }
- else
- {
- cmbxVer.Visibility = Visibility.Collapsed;
- btnMCVer.Visibility = Visibility.Visible;
- }
+ Vars_VerSelctorChanged(null, null);
}
private void tip_CloseButtonClick(TeachingTip sender, object args)
@@ -369,7 +442,7 @@ private void MenuFlyoutItem_Click(object sender, RoutedEventArgs e)
{
flyVer.Hide();
}
- if (sender is MenuFlyoutItem mitem && !vars.UseOldVerSeletor && !vars.Launcher.UseOfflineLoader)
+ if (sender is MenuFlyoutItem mitem && vars.VerSelectors == VerSelectors.Normal && !vars.Launcher.UseOfflineLoader)
{
VersionCheck(mitem);
}
@@ -445,6 +518,7 @@ private async void VersionCheck(MenuFlyoutItem item)
}
}
//
+
public string SearchFabric(string ver)
{
var item = from t in vars.Launcher.FabricMCVersions where t.Name.EndsWith(ver) select t;
@@ -504,7 +578,7 @@ private void OptiFineFinish(OptFineVerReturns returned)
private void cmbxVer_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
- if (vars.UseOldVerSeletor || vars.Launcher.UseOfflineLoader)
+ if (vars.VerSelectors == VerSelectors.Classic || vars.Launcher.UseOfflineLoader)
{
launchVer = cmbxVer.SelectedItem.ToString();
}
diff --git a/SDLauncher UWP/Views/MainPage.xaml.cs b/SDLauncher UWP/Views/MainPage.xaml.cs
index 1cd21c9b..12301f0f 100644
--- a/SDLauncher UWP/Views/MainPage.xaml.cs
+++ b/SDLauncher UWP/Views/MainPage.xaml.cs
@@ -32,7 +32,6 @@
#pragma warning disable CS8305 // Type is for evaluation purposes only and is subject to change or removal in future updates.
#pragma warning disable CS8305 // Type is for evaluation purposes only and is subject to change or removal in future updates.
-// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
namespace SDLauncher_UWP
{
@@ -50,18 +49,53 @@ public MainPage()
settingsPage.UpdateBGRequested += SettingsPage_UpdateBGRequested;
settingsPage.BackRequested += SettingsPage_BackRequested;
launcher.UIchanged += Launcher_UIchanged;
- launcher.InitializeLauncher();
vars.Launcher.TasksHelper.TaskAddRequested += TasksHelper_TaskAddRequested;
vars.Launcher.TasksHelper.TaskCompleteRequested += TasksHelper_TaskCompleteRequested; ;
- if(!string.IsNullOrEmpty(vars.BackgroundImagePath))
+ vars.BackgroundUpdatd += Vars_BackgroundUpdatd;
+ vars.SessionChanged += Vars_SessionChanged;
+ Vars_SessionChanged(null, null);
+ Vars_BackgroundUpdatd(null, null);
+ if (!string.IsNullOrEmpty(vars.BackgroundImagePath))
{
settingsPage.GetAndSetBG();
}
}
- private void TasksHelper_TaskCompleteRequested(object sender, int e)
+ private void Vars_SessionChanged(object sender, EventArgs e)
{
- tasks.CompleteTask(e);
+ if (vars.session != null)
+ {
+ txtUsername.Text = vars.session.Username;
+ txtLogin.Text = vars.session.Username;
+ prpFly.DisplayName = vars.session.Username;
+ prpLogin.DisplayName = vars.session.Username;
+ btnLogin.Tag = "Change";
+ }
+ else
+ {
+ txtUsername.Text = Localizer.GetLocalizedString("MainPage_Login");
+ txtLogin.Text = Localizer.GetLocalizedString("MainPage_Login");
+ prpFly.DisplayName = "";
+ prpLogin.DisplayName = "";
+ btnLogin.Tag = "Login";
+ }
+ }
+
+ private void Vars_BackgroundUpdatd(object sender, EventArgs e)
+ {
+ if (vars.CustomBackground)
+ {
+ imgBack.ImageSource = vars.BackgroundImage;
+ }
+ else
+ {
+ Page_ActualThemeChanged(this, new EventArgs());
+ }
+ }
+
+ private void TasksHelper_TaskCompleteRequested(object sender, TaskCompletedEventArgs e)
+ {
+ tasks.CompleteTask(e.ID,e.Success);
}
private void TasksHelper_TaskAddRequested(object sender, UserControls.Task e)
@@ -126,6 +160,7 @@ private async void Page_Loaded(object sender, RoutedEventArgs e)
{
await MessageBox.Show(Localized.Error, Localized.RamFailed, MessageBoxButtons.Ok);
}
+ launcher.InitializeLauncher();
}
private void SettingsPage_BackRequested(object sender, EventArgs e)
@@ -152,43 +187,6 @@ private void Page_Loading(FrameworkElement sender, object args)
coreTitleBar.LayoutMetricsChanged += CoreTitleBar_LayoutMetricsChanged;
coreTitleBar.IsVisibleChanged += CoreTitleBar_IsVisibleChanged;
Window.Current.Activated += Current_Activated;
- DispatcherTimer timer = new DispatcherTimer();
- timer.Interval = new TimeSpan(0, 0, 0, 0, 1);
- timer.Tick += Timer_Tick;
- timer.Start();
- }
- BitmapImage bg;
- private async void Timer_Tick(object sender, object e)
- {
- if (!string.IsNullOrEmpty(vars.UserName))
- {
- txtUsername.Text = vars.UserName;
- txtLogin.Text = vars.UserName;
- prpFly.DisplayName = vars.UserName;
- prpLogin.DisplayName = vars.UserName;
- btnLogin.Tag = "Change";
- }
- else
- {
- txtUsername.Text = Localizer.GetLocalizedString("MainPage_Login");
- txtLogin.Text = Localizer.GetLocalizedString("MainPage_Login");
- prpFly.DisplayName = "";
- prpLogin.DisplayName = "";
- btnLogin.Tag = "Login";
- }
- if (vars.closing)
- {
- vars.closing = false;
- await settings.CreateSettingsFile(true);
- }
- if (vars.CustomBackground)
- {
- if (bg != vars.BackgroundImage)
- {
- imgBack.ImageSource = vars.BackgroundImage;
- bg = vars.BackgroundImage;
- }
- }
}
private void CoreTitleBar_LayoutMetricsChanged(CoreApplicationViewTitleBar sender, object args)
@@ -227,7 +225,7 @@ private void btnSettings_Click(object sender, RoutedEventArgs e)
{
loginFly.Hide();
btnBack.Visibility = Visibility.Visible;
- pnlTitle.Margin = new Thickness(50, pnlTitle.Margin.Top, pnlTitle.Margin.Right, pnlTitle.Margin.Bottom);
+ pnlTitle.Margin = new Thickness(40, pnlTitle.Margin.Top, pnlTitle.Margin.Right, pnlTitle.Margin.Bottom);
MainFrame.Content = settingsPage;
settingsPage.ScrollteToTop();
}
@@ -257,17 +255,11 @@ private void btnBack_Click(object sender, RoutedEventArgs e)
private void MainFrame_Navigated(object sender, NavigationEventArgs e)
{
- if (MainFrame.CanGoBack)
- {
- }
- else
- {
- }
}
private void tipacc_CloseButtonClick(Microsoft.UI.Xaml.Controls.TeachingTip sender, object args)
{
- vars.ShowLaunchTips = true;
+ launcher.ShowTips();
}
private void Page_ActualThemeChanged(FrameworkElement sender, object args)
diff --git a/SDLauncher UWP/Views/SettingsPage.xaml b/SDLauncher UWP/Views/SettingsPage.xaml
index 7d464f1e..352c2132 100644
--- a/SDLauncher UWP/Views/SettingsPage.xaml
+++ b/SDLauncher UWP/Views/SettingsPage.xaml
@@ -49,12 +49,17 @@
-
+
-
+
+
+ Classic
+ Normal
+ Advanced
+
+
-
@@ -106,7 +111,7 @@
-
+
@@ -116,7 +121,7 @@
-
+
@@ -150,7 +155,7 @@
-
+
Light
@@ -159,7 +164,7 @@
-
+
Default
@@ -201,11 +206,15 @@
Based on CMLLib by AlphaBs
-
+
-
-
+
+
+
+
+
+
diff --git a/SDLauncher UWP/Views/SettingsPage.xaml.cs b/SDLauncher UWP/Views/SettingsPage.xaml.cs
index 67ada4b1..3fee94e0 100644
--- a/SDLauncher UWP/Views/SettingsPage.xaml.cs
+++ b/SDLauncher UWP/Views/SettingsPage.xaml.cs
@@ -6,6 +6,7 @@
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Threading.Tasks;
+using Windows.ApplicationModel.Core;
using Windows.ApplicationModel.DataTransfer;
using Windows.Foundation;
using Windows.Foundation.Collections;
@@ -152,7 +153,6 @@ private void Page_Loaded(object sender, RoutedEventArgs e)
tglLogs.IsOn = vars.GameLogs;
cbHash.IsChecked = vars.HashCheck;
switchAutolog.IsOn = vars.autoLog;
- tglOldVerSelector.IsOn = vars.UseOldVerSeletor;
pageCount++;
if (pageCount == 1)
{
@@ -220,11 +220,6 @@ private void btnRefreshVers_Click(object sender, RoutedEventArgs e)
BackRequested(this, new EventArgs());
}
- private void tglOldVerSelector_Toggled(object sender, RoutedEventArgs e)
- {
- vars.UseOldVerSeletor = tglOldVerSelector.IsOn;
- BackRequested(this, new EventArgs());
- }
private void nbrbxWidth_ValueChanged(Microsoft.UI.Xaml.Controls.NumberBox sender, Microsoft.UI.Xaml.Controls.NumberBoxValueChangedEventArgs args)
@@ -367,18 +362,29 @@ private void tglLogs_Toggled(object sender, RoutedEventArgs e)
public async void GetAndSetBG()
{
- var file = await StorageFile.GetFileFromPathAsync(vars.BackgroundImagePath);
- vars.BackgroundImage = await Util.LoadImage(file);
+ StorageFile file;
+ string name;
+ if(vars.BackgroundImagePath == "null")
+ {
+ name = "None";
+ vars.BackgroundImage = new BitmapImage(new Uri("ms-appx:///Assets/BackDrops/Transparent.png"));
+ }
+ else
+ {
+ file = await StorageFile.GetFileFromPathAsync(vars.BackgroundImagePath);
+ name = file.DisplayName;
+ vars.BackgroundImage = await Util.LoadImage(file);
+ }
if (vars.CustomBackground)
{
if (cmbxBG.Items[3] == null)
{
- cmbxBG.Items.Add(file.DisplayName);
+ cmbxBG.Items.Add(name);
cmbxBG.SelectedIndex = 3;
}
else
{
- cmbxBG.Items[3] = file.DisplayName;
+ cmbxBG.Items[3] = name;
cmbxBG.SelectedIndex = 3;
}
}
@@ -428,6 +434,7 @@ private async void cmbxBG_SelectionChanged(object sender, SelectionChangedEventA
{
cmbxBG.Items.Remove(cmbxBG.Items[3]);
}
+ vars.BackgroundImagePath = "null";
vars.BackgroundImage = new BitmapImage(new Uri("ms-appx:///Assets/BackDrops/Transparent.png"));
vars.CustomBackground = true;
}
@@ -479,5 +486,46 @@ private async void tglChangeAdmin_Toggled(object sender, RoutedEventArgs e)
}
}
}
+
+ private void cmbxVerSelector_SelectionChanged(object sender, SelectionChangedEventArgs e)
+ {
+ vars.VerSelectors = (VerSelectors)Enum.Parse(typeof(VerSelectors), cmbxVerSelector.SelectedItem.ToString());
+ }
+
+ private async void btnExportXML_Click(object sender, RoutedEventArgs e)
+ {
+ FileSavePicker savePicker = new FileSavePicker();
+ savePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
+ savePicker.FileTypeChoices.Add("XML Settings", new List() { ".xml" });
+ savePicker.SuggestedFileName = "New Document";
+
+ StorageFile sfile = await savePicker.PickSaveFileAsync();
+ if (sfile != null)
+ {
+ await new SettingsDataManager().CreateSettingsFile(file: sfile);
+ }
+
+ }
+ private async void btnImportXML_Click(object sender, RoutedEventArgs e)
+ {
+ var picker = new FileOpenPicker();
+ picker.ViewMode = PickerViewMode.Thumbnail;
+ picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
+ picker.FileTypeFilter.Add(".xml");
+
+ StorageFile file = await picker.PickSingleFileAsync();
+ if (file != null)
+ {
+ await file.CopyAsync(ApplicationData.Current.RoamingFolder, "settings.xml", NameCollisionOption.ReplaceExisting);
+ await CoreApplication.RequestRestartAsync("");
+ }
+ }
+ }
+
+ public enum VerSelectors
+ {
+ Classic,
+ Normal,
+ Advanced
}
}
\ No newline at end of file
diff --git a/SDLauncher UWP/vars.cs b/SDLauncher UWP/vars.cs
index 5d5a7382..a5166c0e 100644
--- a/SDLauncher UWP/vars.cs
+++ b/SDLauncher UWP/vars.cs
@@ -9,24 +9,30 @@
using SDLauncher_UWP.Helpers;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Media.Imaging;
+using SDLauncher_UWP.Views;
namespace SDLauncher_UWP
{
public static class vars
{//some of these are not used (outdated)
+
+
+ //Events for the vars, a noob way
public static event EventHandler ThemeUpdated = delegate { };
public static event EventHandler BackgroundUpdatd = delegate { };
+ public static event EventHandler SessionChanged = delegate { };
+ public static event EventHandler VerSelctorChanged = delegate { };
//App
public static bool closing = false;
public static bool showXMLOnClose = false;
private static ElementTheme? theme = ElementTheme.Default;
public static ElementTheme? Theme { get { return theme; } set { theme = value; ThemeUpdated(theme, new EventArgs()); } }
- public static BitmapImage BackgroundImage;
+ private static BitmapImage bg;
+ public static BitmapImage BackgroundImage { get { return bg; } set { bg = value; BackgroundUpdatd(bg, new EventArgs()); } }
public static string BackgroundImagePath = "";
- public static bool ShowLaunchTips = false;
- public static bool CustomBackground = false;
+ private static bool cusbg = false;
+ public static bool CustomBackground { get { return cusbg; } set { cusbg = value; BackgroundUpdatd(bg, new EventArgs()); } }
public static bool ShowTips = true;
- public static bool UseOldVerSeletor = false;
public static bool AdminLaunch = true;
public static bool GameLogs = false;
public static bool autoLog = false;
@@ -34,14 +40,14 @@ public static class vars
public static int LoadedRam = 1024;
public static SDLauncher Launcher;
public static RPCHelper SDRPC;
+ private static VerSelectors verSelectors = VerSelectors.Normal;
+ public static VerSelectors VerSelectors { get { return verSelectors; } set { verSelectors = value; VerSelctorChanged(verSelectors, new EventArgs()); } }
public static ObservableCollection Accounts;
public static int AccountsCount;
-
public static int? CurrentAccountCount;
//CMLLIB
- public static MSession session;
- public static string UserName = "";
+ public static MSession session { get { return ss; } set { ss = value; SessionChanged(ss, new EventArgs()); } }
public static int MinRam;
public static int JVMScreenWidth = 0;
public static int JVMScreenHeight = 0;
@@ -57,5 +63,6 @@ public static class vars
public static bool HashCheck = true;
//
public static bool IsFixedDiscord = false;
+ private static MSession ss;
}
}