mirror of
https://github.com/Impostor/Impostor.git
synced 2026-10-20 01:46:11 +00:00
Proper logging in game class
This commit is contained in:
1 parent
574b7e23b4
commit
e78329b9b1
6 files changed
+43
-20
No files matched your search
@@ -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))
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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>();
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
Reference in new issue
Block a user