From fccb542631c6ece0c905d4274a47a169ce6c6b33 Mon Sep 17 00:00:00 2001 From: AeonLucid Date: Sun, 1 Nov 2020 19:59:11 +0100 Subject: [PATCH] Add replay to build script --- build.cake | 13 +++++++++ src/Impostor.Server/Net/State/ClientPlayer.cs | 2 +- src/Impostor.Tools.ServerReplay/Program.cs | 27 +++++++++++------- .../sessions/session_1604255331821.dat | Bin 0 -> 47057 bytes 4 files changed, 30 insertions(+), 12 deletions(-) create mode 100644 src/Impostor.Tools.ServerReplay/sessions/session_1604255331821.dat diff --git a/build.cake b/build.cake index 14491d6..64bc0bd 100644 --- a/build.cake +++ b/build.cake @@ -103,10 +103,23 @@ Task("Patch") ReplaceRegexInFiles("./src/**/*.props", @".*?<\/Version>", "" + buildVersion + ""); }); +Task("Replay") + .Does(() => { + // D:\Projects\GitHub\Impostor\Impostor\src\Impostor.Tools.ServerReplay\sessions + DotNetCoreRun( + "./src/Impostor.Tools.ServerReplay/Impostor.Tools.ServerReplay.csproj", + "./src/Impostor.Tools.ServerReplay/sessions", new DotNetCoreRunSettings { + Configuration = configuration, + NoRestore = true, + Framework = "net5.0" + }); + }); + Task("Build") .IsDependentOn("Clean") .IsDependentOn("Patch") .IsDependentOn("Restore") + .IsDependentOn("Replay") .Does(() => { // Tests. DotNetCoreBuild("./src/Impostor.Tests/Impostor.Tests.csproj", new DotNetCoreBuildSettings { diff --git a/src/Impostor.Server/Net/State/ClientPlayer.cs b/src/Impostor.Server/Net/State/ClientPlayer.cs index 9e7d805..addbf5f 100644 --- a/src/Impostor.Server/Net/State/ClientPlayer.cs +++ b/src/Impostor.Server/Net/State/ClientPlayer.cs @@ -85,4 +85,4 @@ namespace Impostor.Server.Net.State } } } -} \ No newline at end of file +} diff --git a/src/Impostor.Tools.ServerReplay/Program.cs b/src/Impostor.Tools.ServerReplay/Program.cs index 3fe40e6..af2ffd9 100644 --- a/src/Impostor.Tools.ServerReplay/Program.cs +++ b/src/Impostor.Tools.ServerReplay/Program.cs @@ -12,6 +12,7 @@ using Impostor.Api.Net; using Impostor.Api.Net.Messages; using Impostor.Api.Net.Messages.C2S; using Impostor.Hazel; +using Impostor.Hazel.Extensions; using Impostor.Server.Events; using Impostor.Server.Net; using Impostor.Server.Net.Factories; @@ -29,8 +30,6 @@ namespace Impostor.Tools.ServerReplay { internal static class Program { - private const string GameRecorderPath = "C:\\DevData\\ImpostorSessions"; - private static readonly ILogger Logger = Log.ForContext(typeof(Program)); private static readonly Dictionary Connections = new Dictionary(); private static readonly Dictionary GameOptions = new Dictionary(); @@ -52,17 +51,21 @@ namespace Impostor.Tools.ServerReplay var stopwatch = Stopwatch.StartNew(); - // Create service provider. - _serviceProvider = BuildServices(); + foreach (var file in Directory.GetFiles(args[0])) + { + // Clear. + Connections.Clear(); + GameOptions.Clear(); - // Create required instances. - _readerPool = _serviceProvider.GetRequiredService>(); - _gameCodeFactory = _serviceProvider.GetRequiredService(); - _clientManager = _serviceProvider.GetRequiredService(); - _gameManager = _serviceProvider.GetRequiredService(); + // Create service provider. + _serviceProvider = BuildServices(); + + // Create required instances. + _readerPool = _serviceProvider.GetRequiredService>(); + _gameCodeFactory = _serviceProvider.GetRequiredService(); + _clientManager = _serviceProvider.GetRequiredService(); + _gameManager = _serviceProvider.GetRequiredService(); - foreach (var file in Directory.GetFiles(GameRecorderPath)) - { await using (var stream = File.Open(file, FileMode.Open, FileAccess.Read, FileShare.Read)) using (var reader = new BinaryReader(stream)) { @@ -96,6 +99,8 @@ namespace Impostor.Tools.ServerReplay services.AddSingleton(); services.AddSingleton(); + services.AddHazel(); + return services.BuildServiceProvider(); } diff --git a/src/Impostor.Tools.ServerReplay/sessions/session_1604255331821.dat b/src/Impostor.Tools.ServerReplay/sessions/session_1604255331821.dat new file mode 100644 index 0000000000000000000000000000000000000000..e5f441bb7c3890f6485d04b86bc1a77419906a43 GIT binary patch literal 47057 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 literal 0 HcmV?d00001 -- 2.39.5