From 6b8a32d09018f5014d5b92aa4ae025565fa7f50f Mon Sep 17 00:00:00 2001 From: miniduikboot Date: Sun, 30 Jun 2024 23:29:01 +0200 Subject: [PATCH] Add extra debug log statements To help debugging Impostor, this commit prints a message every time a GameData message arrives, and one more if it's an Rpc or a Data update. Most other interesting Gamedata tags already have log statements attached, but these two didn't as they're very frequent. They only show up when the Debug verbosity is used, which production servers shouldn't have enabled. --- src/Impostor.Server/Net/State/Game.Data.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Impostor.Server/Net/State/Game.Data.cs b/src/Impostor.Server/Net/State/Game.Data.cs index 65632d50..1a76ff3f 100644 --- a/src/Impostor.Server/Net/State/Game.Data.cs +++ b/src/Impostor.Server/Net/State/Game.Data.cs @@ -83,6 +83,8 @@ namespace Impostor.Server.Net.State { using var reader = parent.ReadMessage(); + _logger.LogTrace("Client {SenderId} sent GameData {Tag}", sender.Client.Id, reader.Tag); + switch (reader.Tag) { case GameDataTag.DataFlag: @@ -90,6 +92,7 @@ namespace Impostor.Server.Net.State var netId = reader.ReadPackedUInt32(); if (_allObjectsFast.TryGetValue(netId, out var obj)) { + _logger.LogTrace("Received Data for {NetId}, which is of type {Type}", netId, obj.GetType().Name); await obj.DeserializeAsync(sender, target, reader, false); } else @@ -105,7 +108,15 @@ namespace Impostor.Server.Net.State var netId = reader.ReadPackedUInt32(); if (_allObjectsFast.TryGetValue(netId, out var obj)) { - if (!await obj.HandleRpcAsync(sender, target, (RpcCalls)reader.ReadByte(), reader)) + var call = (RpcCalls)reader.ReadByte(); + _logger.LogTrace( + "Client {SenderId} called Rpc {Call} on NetId {CallerId} and sent it to {Target}", + sender.Client.Id, + call, + obj.NetId, + target?.Client.Id.ToString() ?? "everyone"); + + if (!await obj.HandleRpcAsync(sender, target, call, reader)) { parent.RemoveMessage(reader); continue;