Package 버전에 따라 무삭제 기능 추가 시작점
This commit is contained in:
@@ -27,7 +27,7 @@ namespace Mitria_Minecraft_Launcher.Updater
|
|||||||
|
|
||||||
// Version File Download
|
// Version File Download
|
||||||
CommonLibrary.Log.INFO("download version file.");
|
CommonLibrary.Log.INFO("download version file.");
|
||||||
var verionData = downloader.DownloadString(CommonLibrary.Extensions.PathCombineL(Settings.ServerBaseUrl,"Servers", Settings.NowProfile.ServerName, Settings.ServerDataPatchInformationFile));
|
var verionData = downloader.DownloadString(CommonLibrary.Extensions.PathCombineL(Settings.ServerBaseUrl, "Servers", Settings.NowProfile.ServerName, Settings.ServerDataPatchInformationFile));
|
||||||
|
|
||||||
// Versoin File 받기에 실패하였을때 업데이트 전체 실패처리
|
// Versoin File 받기에 실패하였을때 업데이트 전체 실패처리
|
||||||
if (verionData == string.Empty)
|
if (verionData == string.Empty)
|
||||||
@@ -74,7 +74,7 @@ namespace Mitria_Minecraft_Launcher.Updater
|
|||||||
CommonLibrary.Log.INFO("Runtime delete it for update.");
|
CommonLibrary.Log.INFO("Runtime delete it for update.");
|
||||||
|
|
||||||
// 런타임 폴더 경로 가져오기
|
// 런타임 폴더 경로 가져오기
|
||||||
var rootDirectoryInfo = new System.IO.DirectoryInfo(System.IO.Path.GetFullPath(CommonLibrary.Extensions.PathCombineW(Settings.RuntimeLocation,Settings.NowProfile.ServerName)));
|
var rootDirectoryInfo = new System.IO.DirectoryInfo(System.IO.Path.GetFullPath(CommonLibrary.Extensions.PathCombineW(Settings.RuntimeLocation, Settings.NowProfile.ServerName)));
|
||||||
|
|
||||||
// 런타임 폴더 삭제후 새로만들기
|
// 런타임 폴더 삭제후 새로만들기
|
||||||
if (!rootDirectoryInfo.Exists)
|
if (!rootDirectoryInfo.Exists)
|
||||||
@@ -124,6 +124,7 @@ namespace Mitria_Minecraft_Launcher.Updater
|
|||||||
CommonLibrary.Log.INFO("[Package] LocalVersion : " + thisVersion);
|
CommonLibrary.Log.INFO("[Package] LocalVersion : " + thisVersion);
|
||||||
CommonLibrary.Log.INFO("[Package] RemoteVersion : " + remoteVersion);
|
CommonLibrary.Log.INFO("[Package] RemoteVersion : " + remoteVersion);
|
||||||
result = remoteVersion.CompareTo(thisVersion);
|
result = remoteVersion.CompareTo(thisVersion);
|
||||||
|
|
||||||
//TODO: 만약 Major 버전이 바뀌면 전부삭제, 아니면 있는 폴더면 선별후 삭제
|
//TODO: 만약 Major 버전이 바뀌면 전부삭제, 아니면 있는 폴더면 선별후 삭제
|
||||||
// 1 : 리모트가 큼, 0 : 같음, -1 리모트가 적음
|
// 1 : 리모트가 큼, 0 : 같음, -1 리모트가 적음
|
||||||
if (result == 0)
|
if (result == 0)
|
||||||
@@ -133,10 +134,21 @@ namespace Mitria_Minecraft_Launcher.Updater
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
CommonLibrary.Log
|
CommonLibrary.Log
|
||||||
.INFO(string.Format("{0}", result == 1 ? "remote is the upper version" : "remote is the lower version"));
|
.INFO(string.Format("{0}", result == 1 ? "remote is the upper version" : "remote is the lower version"));
|
||||||
CommonLibrary.Log.INFO("[Package] delete it for update.");
|
|
||||||
|
|
||||||
var rootDirectoryInfo = new System.IO.DirectoryInfo(System.IO.Path.GetFullPath(CommonLibrary.Extensions.PathCombineW(Settings.UserLauncherConfig.GameDirectory,Settings.NowProfile.ServerName)));
|
bool packageInitialization = true;
|
||||||
|
|
||||||
|
if (thisVersion.Major < remoteVersion.Major ||
|
||||||
|
(thisVersion.Major == remoteVersion.Major && thisVersion.Minor < remoteVersion.Minor))
|
||||||
|
{
|
||||||
|
packageInitialization = false;
|
||||||
|
CommonLibrary.Log.INFO("[Package] update.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CommonLibrary.Log.INFO("[Package] delete it for update.");
|
||||||
|
}
|
||||||
|
var rootDirectoryInfo = new System.IO.DirectoryInfo(System.IO.Path.GetFullPath(CommonLibrary.Extensions.PathCombineW(Settings.UserLauncherConfig.GameDirectory, Settings.NowProfile.ServerName)));
|
||||||
|
|
||||||
if (!rootDirectoryInfo.Exists)
|
if (!rootDirectoryInfo.Exists)
|
||||||
{
|
{
|
||||||
@@ -241,7 +253,7 @@ namespace Mitria_Minecraft_Launcher.Updater
|
|||||||
}
|
}
|
||||||
foreach (var directory in resultDirectorys)
|
foreach (var directory in resultDirectorys)
|
||||||
{
|
{
|
||||||
var directoryPath = System.IO.Path.GetFullPath(CommonLibrary.Extensions.PathCombineW(Settings.UserLauncherConfig.GameDirectory,Settings.NowProfile.ServerName, directory));
|
var directoryPath = System.IO.Path.GetFullPath(CommonLibrary.Extensions.PathCombineW(Settings.UserLauncherConfig.GameDirectory, Settings.NowProfile.ServerName, directory));
|
||||||
|
|
||||||
if (System.IO.Directory.Exists(directoryPath))
|
if (System.IO.Directory.Exists(directoryPath))
|
||||||
{
|
{
|
||||||
@@ -270,7 +282,6 @@ namespace Mitria_Minecraft_Launcher.Updater
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var directory in dataPatchInformation.ComponentDirectorys)
|
foreach (var directory in dataPatchInformation.ComponentDirectorys)
|
||||||
@@ -284,7 +295,6 @@ namespace Mitria_Minecraft_Launcher.Updater
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var auditFile = new AuditFile();
|
var auditFile = new AuditFile();
|
||||||
var localFiles = auditFile.GetLocalFileList(dataPatchInformation.ComponentDirectorys);
|
var localFiles = auditFile.GetLocalFileList(dataPatchInformation.ComponentDirectorys);
|
||||||
var removeFiles = auditFile.GetRemoveFiles(localFiles, dataPatchInformation.ComponentList);
|
var removeFiles = auditFile.GetRemoveFiles(localFiles, dataPatchInformation.ComponentList);
|
||||||
@@ -294,8 +304,8 @@ namespace Mitria_Minecraft_Launcher.Updater
|
|||||||
|
|
||||||
foreach (var fileDetail in removeFiles)
|
foreach (var fileDetail in removeFiles)
|
||||||
{
|
{
|
||||||
var filePath = CommonLibrary.Extensions.PathCombineW(Settings.UserLauncherConfig.GameDirectory,Settings.NowProfile.ServerName, fileDetail.Directory, fileDetail.FileName);
|
var filePath = CommonLibrary.Extensions.PathCombineW(Settings.UserLauncherConfig.GameDirectory, Settings.NowProfile.ServerName, fileDetail.Directory, fileDetail.FileName);
|
||||||
FileInfo fileInfo= new FileInfo(filePath);
|
FileInfo fileInfo = new FileInfo(filePath);
|
||||||
fileInfo.IsReadOnly = false;
|
fileInfo.IsReadOnly = false;
|
||||||
if (fileInfo.Exists)
|
if (fileInfo.Exists)
|
||||||
{
|
{
|
||||||
@@ -309,7 +319,7 @@ namespace Mitria_Minecraft_Launcher.Updater
|
|||||||
for (int i = 0; i < needFiles.Count; i++)
|
for (int i = 0; i < needFiles.Count; i++)
|
||||||
{
|
{
|
||||||
var url = CommonLibrary.Extensions.PathCombineL(Settings.ServerBaseUrl, "Servers", Settings.NowProfile.ServerName, dataPatchInformation.ComponentUrl, needFiles[i].Directory, needFiles[i].FileName);
|
var url = CommonLibrary.Extensions.PathCombineL(Settings.ServerBaseUrl, "Servers", Settings.NowProfile.ServerName, dataPatchInformation.ComponentUrl, needFiles[i].Directory, needFiles[i].FileName);
|
||||||
var path = CommonLibrary.Extensions.PathCombineW(Settings.UserLauncherConfig.GameDirectory,Settings.NowProfile.ServerName, needFiles[i].Directory, needFiles[i].FileName);
|
var path = CommonLibrary.Extensions.PathCombineW(Settings.UserLauncherConfig.GameDirectory, Settings.NowProfile.ServerName, needFiles[i].Directory, needFiles[i].FileName);
|
||||||
downloader.DownloadFile(url, path);
|
downloader.DownloadFile(url, path);
|
||||||
Log.INFO("[Component] +[F] " + path);
|
Log.INFO("[Component] +[F] " + path);
|
||||||
}
|
}
|
||||||
@@ -322,10 +332,11 @@ namespace Mitria_Minecraft_Launcher.Updater
|
|||||||
// 커스텀 폴더, Config
|
// 커스텀 폴더, Config
|
||||||
|
|
||||||
#region CustomData
|
#region CustomData
|
||||||
|
|
||||||
// 삭제된 파일 찾기
|
// 삭제된 파일 찾기
|
||||||
|
|
||||||
string rootCustomPath = System.IO.Path.GetFullPath(CommonLibrary.Extensions.PathCombineW(Settings.CustomDataDirectory, Settings.NowProfile.ServerName));
|
string rootCustomPath = System.IO.Path.GetFullPath(CommonLibrary.Extensions.PathCombineW(Settings.CustomDataDirectory, Settings.NowProfile.ServerName));
|
||||||
if(!System.IO.Directory.Exists(CommonLibrary.Extensions.PathCombineW(rootCustomPath, "config")))
|
if (!System.IO.Directory.Exists(CommonLibrary.Extensions.PathCombineW(rootCustomPath, "config")))
|
||||||
{
|
{
|
||||||
System.IO.Directory.CreateDirectory(CommonLibrary.Extensions.PathCombineW(rootCustomPath, "config"));
|
System.IO.Directory.CreateDirectory(CommonLibrary.Extensions.PathCombineW(rootCustomPath, "config"));
|
||||||
}
|
}
|
||||||
@@ -339,14 +350,12 @@ namespace Mitria_Minecraft_Launcher.Updater
|
|||||||
for (int i = 0; i < files.Count; i++)
|
for (int i = 0; i < files.Count; i++)
|
||||||
{
|
{
|
||||||
files[i] = files[i].Replace(rootCustomPath + '\\', string.Empty);
|
files[i] = files[i].Replace(rootCustomPath + '\\', string.Empty);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var file in files)
|
foreach (var file in files)
|
||||||
{
|
{
|
||||||
string sourcePath = CommonLibrary.Extensions.PathCombineW(rootCustomPath, file);
|
string sourcePath = CommonLibrary.Extensions.PathCombineW(rootCustomPath, file);
|
||||||
string targetPath = CommonLibrary.Extensions.PathCombineW( Settings.UserLauncherConfig.GameDirectory, Settings.NowProfile.ServerName,file);
|
string targetPath = CommonLibrary.Extensions.PathCombineW(Settings.UserLauncherConfig.GameDirectory, Settings.NowProfile.ServerName, file);
|
||||||
|
|
||||||
|
|
||||||
if (System.IO.File.Exists(targetPath))
|
if (System.IO.File.Exists(targetPath))
|
||||||
{
|
{
|
||||||
@@ -354,9 +363,8 @@ namespace Mitria_Minecraft_Launcher.Updater
|
|||||||
System.IO.FileInfo targetFile = new System.IO.FileInfo(targetPath);
|
System.IO.FileInfo targetFile = new System.IO.FileInfo(targetPath);
|
||||||
if (sourceFile.GetFileHashCode() != targetFile.GetFileHashCode())
|
if (sourceFile.GetFileHashCode() != targetFile.GetFileHashCode())
|
||||||
{
|
{
|
||||||
System.IO.File.Copy(sourcePath, targetPath,true);
|
System.IO.File.Copy(sourcePath, targetPath, true);
|
||||||
Log.INFO("[CustomData] +[F] " + targetPath);
|
Log.INFO("[CustomData] +[F] " + targetPath);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -387,33 +395,35 @@ namespace Mitria_Minecraft_Launcher.Updater
|
|||||||
GameUpdateManagerMessage?.Invoke(this, e);
|
GameUpdateManagerMessage?.Invoke(this, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public enum GameUpdateStatus
|
public enum GameUpdateStatus
|
||||||
|
|
||||||
|
{
|
||||||
|
Success,
|
||||||
|
Fail
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum GameUpdateManagerMessageType
|
||||||
|
{
|
||||||
|
First,
|
||||||
|
Second,
|
||||||
|
Message
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GameUpdateManagerMessageEventArgs : EventArgs
|
||||||
|
{
|
||||||
|
public GameUpdateManagerMessageType MessageType { get; set; }
|
||||||
|
public long MinValue { get; set; }
|
||||||
|
public long MaxValue { get; set; }
|
||||||
|
public string Message { get; set; }
|
||||||
|
|
||||||
|
public GameUpdateManagerMessageEventArgs(GameUpdateManagerMessageType messageType, long minValue, long maxValue, string message)
|
||||||
{
|
{
|
||||||
Success,
|
MessageType = messageType;
|
||||||
Fail
|
MinValue = minValue;
|
||||||
}
|
MaxValue = maxValue;
|
||||||
|
Message = message;
|
||||||
public enum GameUpdateManagerMessageType
|
|
||||||
{
|
|
||||||
First,
|
|
||||||
Second,
|
|
||||||
Message
|
|
||||||
}
|
|
||||||
|
|
||||||
public class GameUpdateManagerMessageEventArgs : EventArgs
|
|
||||||
{
|
|
||||||
public GameUpdateManagerMessageType MessageType { get; set; }
|
|
||||||
public long MinValue { get; set; }
|
|
||||||
public long MaxValue { get; set; }
|
|
||||||
public string Message { get; set; }
|
|
||||||
|
|
||||||
public GameUpdateManagerMessageEventArgs(GameUpdateManagerMessageType messageType, long minValue, long maxValue, string message)
|
|
||||||
{
|
|
||||||
MessageType = messageType;
|
|
||||||
MinValue = minValue;
|
|
||||||
MaxValue = maxValue;
|
|
||||||
Message = message;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user