ModpackManifest deleted
This commit is contained in:
@@ -53,7 +53,7 @@ public class InstalledGameVersionProps : IComparable<InstalledGameVersionProps>,
|
||||
}
|
||||
|
||||
// Descriptor is downloaded here
|
||||
if (HashHelper.CheckFileSHA1(DescriptorPath, DescriptorProps?.sha1, checkForUpdates))
|
||||
if (!HashHelper.CheckFileSHA1(DescriptorPath, DescriptorProps?.sha1, checkForUpdates))
|
||||
{
|
||||
if (DescriptorProps is null)
|
||||
throw new NullReferenceException(
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
using Mlaumcherb.Client.Avalonia.холопы;
|
||||
|
||||
namespace Mlaumcherb.Client.Avalonia.классы;
|
||||
|
||||
public class ModpackFilesManifest
|
||||
{
|
||||
public class FileProps
|
||||
{
|
||||
[JsonRequired] public string sha1 { get; set; } = "";
|
||||
public bool allow_edit { get; set; } = false;
|
||||
}
|
||||
|
||||
/// relative_path, hash
|
||||
[JsonRequired] public Dictionary<string, FileProps> files { get; set; } = new();
|
||||
|
||||
public bool CheckFiles(IOPath basedir, bool checkHashes, HashSet<IOPath> unmatchedFilesLocalPaths)
|
||||
{
|
||||
foreach (var p in files)
|
||||
{
|
||||
var localPath = new IOPath(p.Key);
|
||||
var realPath = Path.Concat(basedir, localPath);
|
||||
if (!HashHelper.CheckFileSHA1(realPath, p.Value.sha1, checkHashes && !p.Value.allow_edit))
|
||||
{
|
||||
unmatchedFilesLocalPaths.Add(localPath);
|
||||
}
|
||||
}
|
||||
|
||||
return unmatchedFilesLocalPaths.Count == 0;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
namespace Mlaumcherb.Client.Avalonia.классы;
|
||||
using Mlaumcherb.Client.Avalonia.холопы;
|
||||
|
||||
namespace Mlaumcherb.Client.Avalonia.классы;
|
||||
|
||||
public class MyModpackRemoteProps
|
||||
{
|
||||
@@ -8,12 +10,40 @@ public class MyModpackRemoteProps
|
||||
|
||||
public class MyModpackV1
|
||||
{
|
||||
|
||||
// 1
|
||||
[JsonRequired] public int format_version { get; set; }
|
||||
[JsonRequired] public string name { get; set; } = "";
|
||||
// zip archive with all files
|
||||
[JsonRequired] public Artifact zip { get; set; } = null!;
|
||||
// ModpackFilesManifest
|
||||
[JsonRequired] public Artifact manifest { get; set; } = null!;
|
||||
/// relative_path, hash
|
||||
// ReSharper disable once CollectionNeverUpdated.Global
|
||||
[JsonRequired] public Dictionary<string, FileProps> files { get; set; } = new();
|
||||
|
||||
|
||||
public class FileProps
|
||||
{
|
||||
[JsonRequired] public string sha1 { get; set; } = "";
|
||||
// disable hash validation, allowing users to edit this file
|
||||
public bool allow_edit { get; set; }
|
||||
// don't re-download file if it was deleted by user
|
||||
public bool optional { get; set; }
|
||||
}
|
||||
|
||||
public bool CheckFiles(IOPath basedir, bool checkHashes, bool downloadOptionalFiles, HashSet<IOPath> unmatchedFilesLocalPaths)
|
||||
{
|
||||
foreach (var p in files)
|
||||
{
|
||||
if(!downloadOptionalFiles && p.Value.optional)
|
||||
continue;
|
||||
|
||||
var localPath = new IOPath(p.Key);
|
||||
var realPath = Path.Concat(basedir, localPath);
|
||||
if (!HashHelper.CheckFileSHA1(realPath, p.Value.sha1, checkHashes && !p.Value.allow_edit))
|
||||
{
|
||||
unmatchedFilesLocalPaths.Add(localPath);
|
||||
}
|
||||
}
|
||||
|
||||
return unmatchedFilesLocalPaths.Count == 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user