using System; using System.Linq; using System.Threading.Tasks; using Avalonia.Controls; using Avalonia.Threading; using LauncherGUI.ViewModels; namespace LauncherGUI.Views; public partial class VersionSelectorWindow : Window { private MainWindowViewModel _mainViewModel; public VersionSelectorWindow(MainWindowViewModel mainViewModel) { InitializeComponent(); _mainViewModel = mainViewModel; //Load versions asynchronously var versionsList = Task.Run(() => BlightFlame.Utils.GetAllMcVersions().GetAwaiter().GetResult()); versions.ItemsSource = versionsList.Result; } private async void OnSelectionChanged(object sender, SelectionChangedEventArgs e) { var selectedVersion = versions.SelectedItem as string ?? throw new NullReferenceException("Null version selected!"); _mainViewModel.SelectedVersion = selectedVersion; System.Console.WriteLine($"Selected version: {selectedVersion}"); LoadingWindow loading = new(_mainViewModel.Usernick, _mainViewModel.SelectedVersion); loading.Show(this); await loading.InitLoading(); loading.Close(); this.Close(); await loading.RunMinecraft();; } }