DTLib updated

This commit is contained in:
Timerix22 2024-01-07 14:52:00 +06:00
parent 42431f0948
commit dec8fbef33
4 changed files with 16 additions and 11 deletions

View File

@ -55,21 +55,28 @@ public class Network
var manifestPath = Path.Concat(dirOnServer, "manifest.dtsod"); var manifestPath = Path.Concat(dirOnServer, "manifest.dtsod");
Logger.LogDebug(nameof(Network), manifestPath); Logger.LogDebug(nameof(Network), manifestPath);
string manifestContent = Fsp.DownloadFileToMemory(manifestPath).BytesToString(); string manifestContent = Fsp.DownloadFileToMemory(manifestPath).BytesToString();
Logger.LogDebug(nameof(Network), manifestContent);
var manifest = new DtsodV23(manifestContent); var manifest = new DtsodV23(manifestContent);
var hasher = new Hasher(); var hasher = new Hasher();
foreach (var fileOnServerData in manifest) foreach (var fileOnServerData in manifest)
{ {
IOPath fileOnClient = Path.Concat(dirOnClient, fileOnServerData.Key); IOPath fileOnClient = Path.Concat(dirOnClient, fileOnServerData.Key);
if (!File.Exists(fileOnClient) || (overwrite && hasher.HashFile(fileOnClient).HashToString() != fileOnServerData.Value)) 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); Fsp.DownloadFile(Path.Concat(dirOnServer, fileOnServerData.Key), fileOnClient);
}
} }
// удаление лишних файлов // удаление лишних файлов
if (delete_excess) if (delete_excess)
{ {
foreach (var file in Directory.GetAllFiles(dirOnClient)) foreach (var file in Directory.GetAllFiles(dirOnClient))
{ {
if (!manifest.ContainsKey(file.RemoveBase(dirOnClient).Str.Replace('\\','/'))) if (!manifest.ContainsKey(file.RemoveBase(dirOnClient).Str.Replace('\\','/')))
{
Logger.LogDebug(nameof(Network), $"deleting {file}");
File.Delete(file); File.Delete(file);
}
} }
} }
} }

View File

@ -23,8 +23,8 @@
<PackageReference Include="Costura.Fody" Version="5.7.0"> <PackageReference Include="Costura.Fody" Version="5.7.0">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
</PackageReference> </PackageReference>
<PackageReference Include="DTLib.Dtsod" Version="1.3.1" /> <PackageReference Include="DTLib.Dtsod" Version="1.3.3" />
<PackageReference Include="DTLib.Logging" Version="1.3.1" /> <PackageReference Include="DTLib.Logging" Version="1.3.3" />
<PackageReference Include="DTLib.Network" Version="1.3.3" /> <PackageReference Include="DTLib.Network" Version="1.4.1" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -24,11 +24,9 @@ static class Server
static readonly Socket mainSocket = new(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); static readonly Socket mainSocket = new(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
static ServerConfig Config = null!; static ServerConfig Config = null!;
public static readonly IOPath shared_dir = "public"; public static readonly IOPath shared_dir = "public";
static void Main(string[] args) static void Main(string[] args)
{ {
Timer? updateCheckTimer = null;
try try
{ {
Console.Title = "minecraft_launcher_server"; Console.Title = "minecraft_launcher_server";
@ -39,7 +37,7 @@ static class Server
CheckUpdates(); CheckUpdates();
// check for updates every 5 minutes // 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(); updateCheckTimer.Start();

View File

@ -12,8 +12,8 @@
<InvariantGlobalization>true</InvariantGlobalization> <InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="DTLib.Dtsod" Version="1.3.1" /> <PackageReference Include="DTLib.Dtsod" Version="1.3.3" />
<PackageReference Include="DTLib.Logging" Version="1.3.1" /> <PackageReference Include="DTLib.Logging" Version="1.3.3" />
<PackageReference Include="DTLib.Network" Version="1.3.3" /> <PackageReference Include="DTLib.Network" Version="1.4.1" />
</ItemGroup> </ItemGroup>
</Project> </Project>