From 5aeecb8d7dcf4ce09dc9a6beee77acc9d0221d46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?= Date: Thu, 23 Dec 2021 16:11:27 +0100 Subject: [PATCH] fix: run handlers if interceptor is attached --- .../NosSmooth.LocalClient/NostaleLocalClient.cs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Local/NosSmooth.LocalClient/NostaleLocalClient.cs b/Local/NosSmooth.LocalClient/NostaleLocalClient.cs index 62693fe..dd500ae 100644 --- a/Local/NosSmooth.LocalClient/NostaleLocalClient.cs +++ b/Local/NosSmooth.LocalClient/NostaleLocalClient.cs @@ -7,10 +7,12 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; +using NosCore.Packets; using NosSmooth.Core.Client; using NosSmooth.Core.Commands; using NosSmooth.Core.Extensions; using NosSmooth.Core.Packets; +using NosSmooth.LocalClient.Hooks; using NosSmoothCore; using Remora.Results; @@ -26,11 +28,13 @@ namespace NosSmooth.LocalClient; public class NostaleLocalClient : BaseNostaleClient { private readonly PacketSerializerProvider _packetSerializerProvider; + private readonly NostaleHookManager _hookManager; private readonly IPacketHandler _packetHandler; private readonly ILogger _logger; private readonly IServiceProvider _provider; private readonly NosClient _client; private readonly LocalClientOptions _options; + private CancellationToken? _stopRequested; private IPacketInterceptor? _interceptor; /// @@ -39,6 +43,7 @@ public class NostaleLocalClient : BaseNostaleClient /// The command processor. /// The packet serializer. /// The packet serializer provider. + /// The hooking manager. /// The packet handler. /// The logger. /// The options for the client. @@ -49,6 +54,7 @@ public class NostaleLocalClient : BaseNostaleClient CommandProcessor commandProcessor, IPacketSerializer packetSerializer, PacketSerializerProvider packetSerializerProvider, + NostaleHookManager hookManager, IPacketHandler packetHandler, ILogger logger, IOptions options, @@ -59,6 +65,7 @@ public class NostaleLocalClient : BaseNostaleClient { _options = options.Value; _packetSerializerProvider = packetSerializerProvider; + _hookManager = hookManager; _packetHandler = packetHandler; _logger = logger; _provider = provider; @@ -120,6 +127,7 @@ public class NostaleLocalClient : BaseNostaleClient private bool ReceiveCallback(string packet) { + bool accepted = true; if (_options.AllowIntercept) { if (_interceptor is null) @@ -127,16 +135,17 @@ public class NostaleLocalClient : BaseNostaleClient _interceptor = _provider.GetRequiredService(); } - return _interceptor.InterceptReceive(ref packet); + accepted = _interceptor.InterceptReceive(ref packet); } Task.Run(async () => await ProcessPacketAsync(PacketType.Received, packet)); - return true; + return accepted; } private bool SendCallback(string packet) { + bool accepted = true; if (_options.AllowIntercept) { if (_interceptor is null) @@ -144,12 +153,12 @@ public class NostaleLocalClient : BaseNostaleClient _interceptor = _provider.GetRequiredService(); } - return _interceptor.InterceptSend(ref packet); + accepted = _interceptor.InterceptSend(ref packet); } Task.Run(async () => await ProcessPacketAsync(PacketType.Sent, packet)); - return true; + return accepted; } private void SendPacket(string packetString) -- 2.49.0