패키지 업데이트 분리 작업

This commit is contained in:
2025-09-04 19:49:18 +09:00
parent c7aeee4eee
commit 33b64b619a
2 changed files with 72 additions and 12 deletions

View File

@@ -148,6 +148,15 @@ namespace Mitria_Minecraft_Launcher.Updater
packageInitialization = false;
CommonLibrary.Log.INFO("[Package] update.");
}
// 패키지 다운로드
var downloadUrl = CommonLibrary.Extensions.PathCombineL(Settings.ServerBaseUrl, "Servers", Settings.NowProfile.ServerName, dataPatchInformation.PackageUrl, dataPatchInformation.PackageFileName);
var targetPath = System.IO.Path.Combine(tempDirectory, dataPatchInformation.PackageFileName);
GameUpdateManagerMessage(this, new GameUpdateManagerMessageEventArgs(GameUpdateManagerMessageType.First, 5, 9, "[5/9] Package Download"));
Log.INFO("[Package] Download Start");
downloader.DownloadFile(downloadUrl, targetPath);
Log.INFO("[Package] Download End");
var rootDirectoryInfo = new System.IO.DirectoryInfo(System.IO.Path.GetFullPath(CommonLibrary.Extensions.PathCombineW(Settings.UserLauncherConfig.GameDirectory, Settings.NowProfile.ServerName)));
if (!rootDirectoryInfo.Exists)
@@ -157,6 +166,7 @@ namespace Mitria_Minecraft_Launcher.Updater
}
else if(packageInitialization)
{
Log.INFO("[Package] Empty GameDirectory Start");
// 비우기 전에 스크린샷폴더 보존 /screenshots
string oldScreenshotsDirectory = CommonLibrary.Extensions.PathCombineW(Settings.UserLauncherConfig.GameDirectory, Settings.NowProfile.ServerName, "screenshots");
string newScreenshotsDirectory = System.IO.Path.GetFullPath("screenshots_" + DateTime.Now.ToString("yyyyMMddHHmmss"));
@@ -171,16 +181,32 @@ namespace Mitria_Minecraft_Launcher.Updater
Extensions.EmptyDirectory(rootDirectoryInfo.FullName);
Log.INFO("[Package] Empty GameDirectory");
}
else
{
Log.INFO("[Package] Partial Clean GameDirectory Start");
var tempPacker = new ProgressPacker();
var list = tempPacker.GetTopLevelItem(targetPath);
// 리스트에 있는 디렉토리와 파일 삭제
foreach (var item in list)
{
string target = CommonLibrary.Extensions.PathCombineW(Settings.UserLauncherConfig.GameDirectory, Settings.NowProfile.ServerName, item.Name);
if (item.IsDirectory)
{
Extensions.DeleteDirectory(target);
Log.INFO("[Package] -[D] " + target);
}
else
{
Extensions.DeleteFile(target);
Log.INFO("[Package] -[F] " + target);
}
}
Log.INFO("[Package] Partial Clean GameDirectory End");
}
var downloadUrl = CommonLibrary.Extensions.PathCombineL(Settings.ServerBaseUrl, "Servers", Settings.NowProfile.ServerName, dataPatchInformation.PackageUrl, dataPatchInformation.PackageFileName);
var targetPath = System.IO.Path.Combine(tempDirectory, dataPatchInformation.PackageFileName);
GameUpdateManagerMessage(this, new GameUpdateManagerMessageEventArgs(GameUpdateManagerMessageType.First, 5, 9, "[5/9] Package Download"));
Log.INFO("[Package] Download Start");
downloader.DownloadFile(downloadUrl, targetPath);
Log.INFO("[Package] Download End");
// 용도가 뭐지/???
if (Settings.UserClientVersion.PackageDirectorys != null)
{
foreach (var item in Settings.UserClientVersion.PackageDirectorys)