~ruther/NosSmooth

5aeecb8d7dcf4ce09dc9a6beee77acc9d0221d46 — František Boháček 3 years ago 02ad389
fix: run handlers if interceptor is attached
1 files changed, 13 insertions(+), 4 deletions(-)

M Local/NosSmooth.LocalClient/NostaleLocalClient.cs
M Local/NosSmooth.LocalClient/NostaleLocalClient.cs => Local/NosSmooth.LocalClient/NostaleLocalClient.cs +13 -4
@@ 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;

    /// <summary>


@@ 39,6 43,7 @@ public class NostaleLocalClient : BaseNostaleClient
    /// <param name="commandProcessor">The command processor.</param>
    /// <param name="packetSerializer">The packet serializer.</param>
    /// <param name="packetSerializerProvider">The packet serializer provider.</param>
    /// <param name="hookManager">The hooking manager.</param>
    /// <param name="packetHandler">The packet handler.</param>
    /// <param name="logger">The logger.</param>
    /// <param name="options">The options for the client.</param>


@@ 49,6 54,7 @@ public class NostaleLocalClient : BaseNostaleClient
        CommandProcessor commandProcessor,
        IPacketSerializer packetSerializer,
        PacketSerializerProvider packetSerializerProvider,
        NostaleHookManager hookManager,
        IPacketHandler packetHandler,
        ILogger<NostaleLocalClient> logger,
        IOptions<LocalClientOptions> 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<IPacketInterceptor>();
            }

            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<IPacketInterceptor>();
            }

            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)

Do not follow this link