]> git.deb.at Git - rhonda/impostor.git/commitdiff
Add replay to build script
authorAeonLucid <aeonlucid@outlook.com>
Sun, 1 Nov 2020 18:59:11 +0000 (19:59 +0100)
committerAeonLucid <aeonlucid@outlook.com>
Sun, 1 Nov 2020 18:59:11 +0000 (19:59 +0100)
build.cake
src/Impostor.Server/Net/State/ClientPlayer.cs
src/Impostor.Tools.ServerReplay/Program.cs
src/Impostor.Tools.ServerReplay/sessions/session_1604255331821.dat [new file with mode: 0644]

index 14491d6100854a2343ce8e110f5644aed6f56423..64bc0bde72e987b4afbe4688ed53e382ad2eb56f 100644 (file)
@@ -103,10 +103,23 @@ Task("Patch")
         ReplaceRegexInFiles("./src/**/*.props", @"<Version>.*?<\/Version>", "<Version>" + buildVersion + "</Version>");
     });
 
+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 {
index 9e7d80562596f1a9593835358d713488912ec4d0..addbf5f1a216981ac38ea128d02c03906eed8661 100644 (file)
@@ -85,4 +85,4 @@ namespace Impostor.Server.Net.State
             }
         }
     }
-}
\ No newline at end of file
+}
index 3fe40e65f82c51a1ba4f1eb89d8bfbbc14682a67..af2ffd92fd08d2b42db3adde4d470f8420913797 100644 (file)
@@ -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<int, IHazelConnection> Connections = new Dictionary<int, IHazelConnection>();
         private static readonly Dictionary<int, GameOptionsData> GameOptions = new Dictionary<int, GameOptionsData>();
@@ -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<ObjectPool<MessageReader>>();
-            _gameCodeFactory = _serviceProvider.GetRequiredService<MockGameCodeFactory>();
-            _clientManager = _serviceProvider.GetRequiredService<ClientManager>();
-            _gameManager = _serviceProvider.GetRequiredService<GameManager>();
+                // Create service provider.
+                _serviceProvider = BuildServices();
+
+                // Create required instances.
+                _readerPool = _serviceProvider.GetRequiredService<ObjectPool<MessageReader>>();
+                _gameCodeFactory = _serviceProvider.GetRequiredService<MockGameCodeFactory>();
+                _clientManager = _serviceProvider.GetRequiredService<ClientManager>();
+                _gameManager = _serviceProvider.GetRequiredService<GameManager>();
 
-            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<INodeLocator, NodeLocatorNoOp>();
             services.AddSingleton<IEventManager, EventManager>();
 
+            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 (file)
index 0000000..e5f441b
Binary files /dev/null and b/src/Impostor.Tools.ServerReplay/sessions/session_1604255331821.dat differ