]> git.deb.at Git - rhonda/impostor.git/commitdiff
Proper logging in game class
authorAeonLucid <aeonlucid@outlook.com>
Thu, 22 Oct 2020 22:28:29 +0000 (00:28 +0200)
committerAeonLucid <aeonlucid@outlook.com>
Thu, 22 Oct 2020 22:28:29 +0000 (00:28 +0200)
src/Impostor.Server/Net/Client.cs
src/Impostor.Server/Net/State/Game.Data.cs
src/Impostor.Server/Net/State/Game.Incoming.cs
src/Impostor.Server/Net/State/Game.State.cs
src/Impostor.Server/Net/State/Game.cs
src/Impostor.Tools.ServerReplay/Program.cs

index 361906bbfdc6e3b2395347974e67acdb03eef252..e1e35128273da40796215806de3623a0221c43e9 100644 (file)
@@ -149,7 +149,7 @@ namespace Impostor.Server.Net
                     var readerCopy = reader.Slice(reader.Position);
 
                     // TODO: Return value, either a bool (to cancel) or a writer (to cancel (null) or modify/overwrite).
-                    // await Player.Game.HandleGameData(readerCopy, Player, toPlayer);
+                    await Player.Game.HandleGameDataAsync(readerCopy, Player, toPlayer);
 
                     // Broadcast packet to all other players.
                     using (var writer = MessageWriter.Get(messageType))
index aff5ce624fb5cbeed5b9fa24ffc551064a403b56..66a331c30e555ea1253e997caf18ddf9f3b51b8c 100644 (file)
@@ -1,11 +1,13 @@
 using System;
 using System.Collections.Generic;
+using System.Threading;
 using System.Threading.Tasks;
 using Impostor.Api.Innersloth.GameData;
 using Impostor.Api.Net.Messages;
 using Impostor.Server.GameData;
 using Impostor.Server.GameData.Objects;
 using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
 
 namespace Impostor.Server.Net.State
 {
@@ -26,7 +28,19 @@ namespace Impostor.Server.Net.State
         private readonly List<InnerNetObject> _allObjects = new List<InnerNetObject>();
         private readonly Dictionary<uint, InnerNetObject> _allObjectsFast = new Dictionary<uint, InnerNetObject>();
 
-        public async ValueTask HandleGameData(IMessageReader parent, ClientPlayer sender, bool toPlayer)
+        private int _gamedataInitialized;
+
+        public void InitGameData()
+        {
+            if (Interlocked.Exchange(ref _gamedataInitialized, 1) != 0)
+            {
+                return;
+            }
+
+
+        }
+
+        public async ValueTask HandleGameDataAsync(IMessageReader parent, ClientPlayer sender, bool toPlayer)
         {
             // Find target player.
             ClientPlayer target = null;
@@ -50,10 +64,15 @@ namespace Impostor.Server.Net.State
                 {
                     case GameDataTag.DataFlag:
                     {
-                        if (_allObjectsFast.TryGetValue(reader.ReadPackedUInt32(), out var obj))
+                        var netId = reader.ReadPackedUInt32();
+                        if (_allObjectsFast.TryGetValue(netId, out var obj))
                         {
                             obj.Deserialize(reader, false);
                         }
+                        else
+                        {
+                            _logger.LogWarning("Received DataFlag for unregistered NetId {0}.", netId);
+                        }
 
                         break;
                     }
@@ -83,7 +102,7 @@ namespace Impostor.Server.Net.State
 
                             if (componentsCount != components.Count)
                             {
-                                Logger.Error(
+                                _logger.LogError(
                                     "Children didn't match for spawnable {0}, name {1} ({2} != {3})",
                                     objectId,
                                     innerNetObject.GetType().Name,
@@ -101,7 +120,7 @@ namespace Impostor.Server.Net.State
 
                                 if (!AddNetObject(obj))
                                 {
-                                    Logger.Verbose("Failed to AddNetObject.");
+                                    _logger.LogTrace("Failed to AddNetObject.");
 
                                     obj.NetId = uint.MaxValue;
                                     break;
@@ -118,25 +137,25 @@ namespace Impostor.Server.Net.State
                             {
                                 if (TryGetPlayer(id, out var clientById))
                                 {
-                                    Logger.Verbose("Spawn character");
+                                    _logger.LogTrace("Spawn character");
                                 }
                                 else
                                 {
-                                    Logger.Verbose("Spawn unowned character");
+                                    _logger.LogTrace("Spawn unowned character");
                                 }
                             }
 
                             continue;
                         }
 
-                        Logger.Error("Couldn't find spawnable object {0}.", objectId);
+                        _logger.LogError("Couldn't find spawnable object {0}.", objectId);
                         break;
                     }
 
                     case GameDataTag.DespawnFlag:
                     {
                         var objectNetId = reader.ReadPackedUInt32();
-                        Logger.Verbose("> Destroy {0}", objectNetId);
+                        _logger.LogTrace("> Destroy {0}", objectNetId);
                         break;
                     }
 
@@ -144,20 +163,20 @@ namespace Impostor.Server.Net.State
                     {
                         var clientId = reader.ReadPackedInt32();
                         var targetScene = reader.ReadString();
-                        Logger.Verbose("> Scene {0} to {1}", clientId, targetScene);
+                        _logger.LogTrace("> Scene {0} to {1}", clientId, targetScene);
                         break;
                     }
 
                     case GameDataTag.ReadyFlag:
                     {
                         var clientId = reader.ReadPackedInt32();
-                        Logger.Verbose("> IsReady {0}", clientId);
+                        _logger.LogTrace("> IsReady {0}", clientId);
                         break;
                     }
 
                     default:
                     {
-                        Logger.Debug("Bad GameData tag {0}", reader.Tag);
+                        _logger.LogTrace("Bad GameData tag {0}", reader.Tag);
                         break;
                     }
                 }
index 2613098cdf1c96d67bd7074b19cc5fe9f3bcc849..0f2b9fcaf363c73747db2ccf9506b00b16cfa951 100644 (file)
@@ -4,6 +4,7 @@ using Impostor.Api.Innersloth.Data;
 using Impostor.Api.Net;
 using Impostor.Api.Net.Messages;
 using Impostor.Hazel;
+using Microsoft.Extensions.Logging;
 
 namespace Impostor.Server.Net.State
 {
@@ -122,7 +123,7 @@ namespace Impostor.Server.Net.State
 
         public async ValueTask HandleKickPlayer(int playerId, bool isBan)
         {
-            Logger.Information("{0} - Player {1} has left.", Code, playerId);
+            _logger.LogInformation("{0} - Player {1} has left.", Code, playerId);
 
             using var message = MessageWriter.Get(MessageType.Reliable);
 
@@ -144,7 +145,7 @@ namespace Impostor.Server.Net.State
 
         private async ValueTask HandleJoinGameNew(ClientPlayer sender, bool isNew)
         {
-            Logger.Information("{0} - Player {1} ({2}) is joining.", Code, sender.Client.Name, sender.Client.Id);
+            _logger.LogInformation("{0} - Player {1} ({2}) is joining.", Code, sender.Client.Name, sender.Client.Id);
 
             // Add player to the game.
             if (isNew)
@@ -166,7 +167,7 @@ namespace Impostor.Server.Net.State
 
         private async ValueTask HandleJoinGameNext(ClientPlayer sender, bool isNew)
         {
-            Logger.Information("{0} - Player {1} ({2}) is rejoining.", Code, sender.Client.Name, sender.Client.Id);
+            _logger.LogInformation("{0} - Player {1} ({2}) is rejoining.", Code, sender.Client.Name, sender.Client.Id);
 
             // Add player to the game.
             if (isNew)
index ee3184ed1adbaf5400145a4aaabd5761830b31d1..b5fcffb39a0ca74112bf6b3bffe196b3c24217ea 100644 (file)
@@ -6,6 +6,7 @@ using Impostor.Api.Innersloth.Data;
 using Impostor.Api.Net;
 using Impostor.Api.Net.Messages;
 using Impostor.Hazel;
+using Microsoft.Extensions.Logging;
 
 namespace Impostor.Server.Net.State
 {
@@ -35,7 +36,7 @@ namespace Impostor.Server.Net.State
                 return false;
             }
 
-            Logger.Information("{0} - Player {1} ({2}) has left.", Code, player.Client.Name, playerId);
+            _logger.LogInformation("{0} - Player {1} ({2}) has left.", Code, player.Client.Name, playerId);
 
             player.Client.Player = null;
 
@@ -79,7 +80,7 @@ namespace Impostor.Server.Net.State
             }
 
             HostId = host.Client.Id;
-            Logger.Information("{0} - Assigned {1} ({2}) as new host.", Code, host.Client.Name, host.Client.Id);
+            _logger.LogInformation("{0} - Assigned {1} ({2}) as new host.", Code, host.Client.Name, host.Client.Id);
 
             // Check our current game state.
             if (GameState == GameStates.Ended && host.Limbo == LimboStates.WaitingForHost)
index 2110c0442388fc3d2fb329de375c18b4bd11ab27..c3283df3813fcdf77ce856904d2ad5cf1867b56a 100644 (file)
@@ -15,6 +15,7 @@ using Impostor.Hazel;
 using Impostor.Server.Net.Hazel;
 using Impostor.Server.Net.Manager;
 using Impostor.Server.Net.Redirector;
+using Microsoft.Extensions.Logging;
 using Serilog;
 using ILogger = Serilog.ILogger;
 
@@ -22,8 +23,7 @@ namespace Impostor.Server.Net.State
 {
     internal partial class Game : IGame
     {
-        private static readonly ILogger Logger = Log.ForContext<Game>();
-
+        private readonly ILogger<Game> _logger;
         private readonly IServiceProvider _serviceProvider;
         private readonly GameManager _gameManager;
         private readonly ClientManager _clientManager;
@@ -32,6 +32,7 @@ namespace Impostor.Server.Net.State
         private readonly IEventManager _eventManager;
 
         public Game(
+            ILogger<Game> logger,
             IServiceProvider serviceProvider,
             GameManager gameManager,
             IPEndPoint publicIp,
@@ -40,6 +41,7 @@ namespace Impostor.Server.Net.State
             ClientManager clientManager,
             IEventManager eventManager)
         {
+            _logger = logger;
             _serviceProvider = serviceProvider;
             _gameManager = gameManager;
             _players = new ConcurrentDictionary<int, ClientPlayer>();
index 7cc20fb175bd2159bb0fbd9daf30f7a676d0789e..ebae6bf6cc55d8bc2f62bd8d41fd0956e50f3004 100644 (file)
@@ -43,7 +43,7 @@ namespace Impostor.Tools.ServerReplay
         private static async Task Main(string[] args)
         {
             Log.Logger = new LoggerConfiguration()
-                .MinimumLevel.Information()
+                .MinimumLevel.Verbose()
                 .WriteTo.Console()
                 .CreateLogger();