Beispiel #1
0
        private async void DownloadMinecraftResourcesButton_Click(object sender, RoutedEventArgs e)
        {
            LockView();
            await MinecraftService.DownloadAllAsync();

            UnlockView();
        }
Beispiel #2
0
        public InputHandler(
            IDiscord discord,
            ILogger logger,
            INixProvider nixProvider,
            LavalinkService lavalink,
            MinecraftService minecraft)
        {
            this.discord     = discord;
            this.logger      = logger;
            this.nixProvider = nixProvider;

            services = new ServiceCollection()
                       .AddSingleton(discord)
                       .AddSingleton(discord.Client)
                       .AddSingleton(commands)
                       .AddSingleton(logger)
                       .AddSingleton(lavalink)
                       .AddSingleton(minecraft)
                       .AddSingleton <InteractiveService>()
                       .AddSingleton <AudioService>()
                       .AddSingleton <SpotifyService>()
                       .AddSingleton <EmbedService>()
                       .AddLavaNode(lava => lava.SelfDeaf = true)
                       .BuildServiceProvider();
        }
Beispiel #3
0
        private async void DownloadMinecraftVersionsButton_Click(object sender, RoutedEventArgs e)
        {
            LockView();
            await MinecraftService.InitializeAsync();

            UnlockView();
        }
Beispiel #4
0
 void OnShutdown()
 {
     Console.WriteLine("Application is shutting down");
     if (MinecraftService.IsRunning())
     {
         MinecraftService.Stop();
     }
 }
Beispiel #5
0
        public static async Task <string> DetectVersion(StorageFile resourcePackFile, bool onlyReleases = true)
        {
            if (resourcePackFile == null)
            {
                throw new ArgumentNullException(nameof(resourcePackFile));
            }

            Logger.WriteLine($"Detecting resource pack version of file {resourcePackFile.Name}.");

            var relations = await ResourceRelationService.GetOrCreateAsync();

            if (relations?.Count == 0)
            {
                throw new InvalidOperationException("Retrieved relation set is empty.");
            }

            if (!MinecraftService.IsInitialized)
            {
                await MinecraftService.InitializeAsync();
            }
            var versionCount = onlyReleases ? MinecraftAPI.Releases.ToDictionary(x => x.Id, x => 0) : MinecraftAPI.Versions.ToDictionary(x => x.Id, x => 0);

            using (var stream = await resourcePackFile.OpenStreamForReadAsync())
                using (var archive = new ZipArchive(stream, ZipArchiveMode.Read))
                {
                    foreach (var entry in archive.Entries.ToList())
                    {
                        var entryPath = entry.FullName.Replace("/", "\\");
                        foreach (var relation in relations)
                        {
                            foreach (var versionPathPair in relation)
                            {
                                if (versionPathPair.Value.Equals(entryPath) && versionCount.ContainsKey(versionPathPair.Key))
                                {
                                    versionCount[versionPathPair.Key]++;
                                }
                            }
                        }
                    }
                }

            var    maxCount = versionCount.Max(vp => vp.Value);
            var    mostNominatedVersions = versionCount.Where(r => r.Value == maxCount).Select(vp => vp.Key);
            string maxVersion            = null;

            foreach (var nominatedVersion in mostNominatedVersions)
            {
                if (maxVersion == null)
                {
                    maxVersion = nominatedVersion;
                }
                else
                {
                    maxVersion = MinecraftAPI.MaxVersion(maxVersion, nominatedVersion);
                }
            }
            return(maxVersion);
        }
Beispiel #6
0
 public Task IsRunning()
 {
     try
     {
         return(Clients.All.SendAsync("IsRunning", MinecraftService.IsRunning()));
     }
     catch
     {
     }
     return(Task.CompletedTask);
 }
Beispiel #7
0
        private async Task InitializeApplication()
        {
            NavigationService.Lock();

            // Sign in to database
            await AuthService.SignInAsync();

            // Ask user for permission
            await ResourcePackService.EnsureAccessToMinecraftDirectoryAsync();

            await MinecraftService.InitializeAsync();

            AppSettings.PrintSettings();

            NavigationService.Unlock();
        }
        private async void DownloadButton_Click(object sender, RoutedEventArgs e)
        {
            NavigationService.LockFrame();

            var option = (ExtractFiles.IsChecked.HasValue && ExtractFiles.IsChecked.Value)
                ? MinecraftService.DownloadOption.ExtractFiles : MinecraftService.DownloadOption.Default;

            if (DownloadAllCheckbox.IsChecked.HasValue && DownloadAllCheckbox.IsChecked.Value)
            {
                await MinecraftService.DownloadAllAsync(option);
            }
            else
            {
                await MinecraftService.DownloadAsync(VersionBox.SelectedItem as string, option);
            }

            NavigationService.UnlockFrame();
        }
Beispiel #9
0
        public ServicesController(LavalinkService lavalink, MinecraftService minecraft)
        {
            this.lavalink  = lavalink;
            this.minecraft = minecraft;

            Menu = new View(this)
            {
                Name      = "Services",
                Parent    = CurrentView,
                Behaviour = new Navigation
                {
                    Options = new()
                    {
                        new() { Name = "Lavalink", View = Lavalink },
                        new() { Name = "Minecraft", View = Minecraft },
                    }
                }
            };
        }
Beispiel #10
0
 public MinecraftModule(MinecraftService service) => _service = service;