コード例 #1
0
ファイル: Cleaner.cs プロジェクト: Barathar/MCLauncher
        public void Clean()
        {
            foreach (var directory in CleanupDirectories)
            {
                if (!Directory.Exists(directory.LocalDirectory))
                {
                    continue;
                }

                if (!IsValidSubDirectory(directory.LocalDirectory))
                {
                    continue;
                }

                foreach (string file in Directory.GetFiles(directory.LocalDirectory, "*.*", SearchOption.AllDirectories))
                {
                    if (PatchFiles.Any(e => file.Contains(e.LocalDirectory)))
                    {
                        continue;
                    }

                    OutputConsole.Print($"[Cleaning] {file}");
                    File.Delete(file);
                }
            }
            OutputConsole.Print($"[Cleaning done]");
        }
コード例 #2
0
ファイル: ServerControl.cs プロジェクト: Barathar/MCLauncher
        private void PatchLauncherProfile()
        {
            LauncherProfilePatcher patcher = new LauncherProfilePatcher(fileInfos.DefaultLauncherProfilesFile);

            patcher.Patch(fileInfos.LauncherProfilesFilename, server.LauncherProfileData);

            OutputConsole.Print($"[Patching] {fileInfos.LauncherProfilesFilename}");
        }
コード例 #3
0
ファイル: ServerControl.cs プロジェクト: Barathar/MCLauncher
 private void PatchMinecraftLauncher()
 {
     if (!File.Exists(fileInfos.MinecraftLauncherFilename) || fileInfos.MinecraftLauncherHash != MD5Hash.FromFile(fileInfos.MinecraftLauncherFilename))
     {
         Downloader.Download(fileInfos.DefaultMinecraftLauncherFile, fileInfos.MinecraftLauncherFilename);
         OutputConsole.Print($"[Patching] {fileInfos.MinecraftLauncherFilename}");
     }
 }
コード例 #4
0
ファイル: ServerControl.cs プロジェクト: Barathar/MCLauncher
        private void PatchOptions()
        {
            OptionsPatcher patcher  = new OptionsPatcher(fileInfos.DefaultOptionsFile);
            string         filename = Path.Combine(GetInstallationDirectory(), fileInfos.OptionsFilename);

            patcher.Patch(filename, server.Options);

            OutputConsole.Print($"[Patching] {filename}");
        }
コード例 #5
0
        private void UpdateLauncherProfile(string filename, LauncherProfileData data)
        {
            JObject json = ReadProfile(filename);

            UpdateProfile(ref json, data);

            WriteProfile(json, filename);

            OutputConsole.Print($"[Updated] {filename}.");
        }
コード例 #6
0
ファイル: ServerControl.cs プロジェクト: Barathar/MCLauncher
        private void LaunchMinecraft()
        {
            if (!File.Exists(fileInfos.MinecraftLauncherFilename))
            {
                return;
            }

            string parameters = $"--workDir {Paths.MinecraftDirectory}";

            Process.Start(fileInfos.MinecraftLauncherFilename, parameters);
            OutputConsole.Print($"[Running] {fileInfos.MinecraftLauncherFilename}'\n with parameters '{parameters}'");
        }
コード例 #7
0
ファイル: Settings.cs プロジェクト: Barathar/MCLauncher
        public void Save()
        {
            if (instance == null)
            {
                return;
            }

            Serialize();

            OutputConsole.Print(instance);
            OutputConsole.Print("[Settings saved]");
        }
コード例 #8
0
ファイル: Settings.cs プロジェクト: Barathar/MCLauncher
        public void Load()
        {
            if (!File.Exists(Paths.SettingsFile))
            {
                return;
            }

            Deserialize();

            OutputConsole.Print(instance);
            OutputConsole.Print("[Settings loaded]");
        }
コード例 #9
0
        public Mainform(Style style)
        {
            InitializeComponent();
            InitializeImages();

            Console.SetOut(new OutputConsole(this, consoleTextBox));
            OutputConsole.Print(typeof(Paths));

            AssemblyLoader.Load();
            Settings.Default.Load();

            UpdateControls(style);
        }
コード例 #10
0
        public void Uninstall(string directory)
        {
            if (!Directory.Exists(directory))
            {
                return;
            }

            if (!IsValidSubDirectory(directory))
            {
                return;
            }

            OutputConsole.Print($"[Uninstalling] {directory}");
            Directory.Delete(directory, true);
        }
コード例 #11
0
ファイル: Patcher.cs プロジェクト: Barathar/MCLauncher
        public void Patch()
        {
            List <PatchFile> updateableFiles = GetUpdateableFiles();

            int index = 1;

            foreach (var file in updateableFiles)
            {
                UpdateProgress?.Invoke((100 * index / updateableFiles.Count));
                OutputConsole.Print($"[Updating] [{index}/{updateableFiles.Count}] {file.LocalDirectory}");
                Downloader.Download(file.DownloadUri, file.LocalDirectory);
                index++;
            }
            OutputConsole.Print($"[Updating done]");
        }
コード例 #12
0
ファイル: ServerControl.cs プロジェクト: Barathar/MCLauncher
        private void CopyServersFile()
        {
            if (File.Exists(Paths.ServersFile))
            {
                File.Delete(Paths.ServersFile);
                OutputConsole.Print($"[Deleting] {Paths.ServersFile}");
            }

            string sourceFile = Path.Combine(GetInstallationDirectory(), "Servers.dat");

            if (File.Exists(sourceFile))
            {
                File.Copy(sourceFile, Paths.ServersFile);
                OutputConsole.Print($"[Copying] {sourceFile}");
            }
        }