DTLib updated
This commit is contained in:
parent
42431f0948
commit
dec8fbef33
@ -55,24 +55,31 @@ public class Network
|
||||
var manifestPath = Path.Concat(dirOnServer, "manifest.dtsod");
|
||||
Logger.LogDebug(nameof(Network), manifestPath);
|
||||
string manifestContent = Fsp.DownloadFileToMemory(manifestPath).BytesToString();
|
||||
Logger.LogDebug(nameof(Network), manifestContent);
|
||||
var manifest = new DtsodV23(manifestContent);
|
||||
var hasher = new Hasher();
|
||||
foreach (var fileOnServerData in manifest)
|
||||
{
|
||||
IOPath fileOnClient = Path.Concat(dirOnClient, fileOnServerData.Key);
|
||||
if (!File.Exists(fileOnClient) || (overwrite && hasher.HashFile(fileOnClient).HashToString() != fileOnServerData.Value))
|
||||
{
|
||||
Logger.LogDebug(nameof(Network), $"downloading {fileOnClient}");
|
||||
Fsp.DownloadFile(Path.Concat(dirOnServer, fileOnServerData.Key), fileOnClient);
|
||||
}
|
||||
}
|
||||
// удаление лишних файлов
|
||||
if (delete_excess)
|
||||
{
|
||||
foreach (var file in Directory.GetAllFiles(dirOnClient))
|
||||
{
|
||||
if (!manifest.ContainsKey(file.RemoveBase(dirOnClient).Str.Replace('\\','/')))
|
||||
{
|
||||
Logger.LogDebug(nameof(Network), $"deleting {file}");
|
||||
File.Delete(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void UpdateGame()
|
||||
{
|
||||
|
||||
@ -23,8 +23,8 @@
|
||||
<PackageReference Include="Costura.Fody" Version="5.7.0">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="DTLib.Dtsod" Version="1.3.1" />
|
||||
<PackageReference Include="DTLib.Logging" Version="1.3.1" />
|
||||
<PackageReference Include="DTLib.Network" Version="1.3.3" />
|
||||
<PackageReference Include="DTLib.Dtsod" Version="1.3.3" />
|
||||
<PackageReference Include="DTLib.Logging" Version="1.3.3" />
|
||||
<PackageReference Include="DTLib.Network" Version="1.4.1" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@ -25,10 +25,8 @@ static class Server
|
||||
static ServerConfig Config = null!;
|
||||
public static readonly IOPath shared_dir = "public";
|
||||
|
||||
|
||||
static void Main(string[] args)
|
||||
{
|
||||
Timer? updateCheckTimer = null;
|
||||
try
|
||||
{
|
||||
Console.Title = "minecraft_launcher_server";
|
||||
@ -39,7 +37,7 @@ static class Server
|
||||
|
||||
CheckUpdates();
|
||||
// check for updates every 5 minutes
|
||||
updateCheckTimer = new Timer(true, 5*60 * 1000, CheckUpdates);
|
||||
var updateCheckTimer = new Timer(true, 5*60 * 1000, CheckUpdates);
|
||||
updateCheckTimer.Start();
|
||||
|
||||
|
||||
|
||||
@ -12,8 +12,8 @@
|
||||
<InvariantGlobalization>true</InvariantGlobalization>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="DTLib.Dtsod" Version="1.3.1" />
|
||||
<PackageReference Include="DTLib.Logging" Version="1.3.1" />
|
||||
<PackageReference Include="DTLib.Network" Version="1.3.3" />
|
||||
<PackageReference Include="DTLib.Dtsod" Version="1.3.3" />
|
||||
<PackageReference Include="DTLib.Logging" Version="1.3.3" />
|
||||
<PackageReference Include="DTLib.Network" Version="1.4.1" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
Loading…
Reference in New Issue
Block a user