using System; using System.Linq; using System.Threading.Tasks; using Avalonia.Controls; using Avalonia.Threading; using LauncherGUI.ViewModels; using Plombir; 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(() => Plombir.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}"); LauncherUtils.CreateMinecraftInstance(_mainViewModel, this); Close(); } }