~ruther/NosSmooth.Local

ce0260d5b61a99ecbbd13177283632c4a7a2e28c — František Boháček 2 years ago a59a6f8 2023.3
feat: update to managed and raw client
M src/Core/NosSmooth.LocalClient/NosSmooth.LocalClient.csproj => src/Core/NosSmooth.LocalClient/NosSmooth.LocalClient.csproj +4 -3
@@ 4,8 4,9 @@
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <LangVersion>10</LangVersion>
        <TargetFrameworks>net7.0</TargetFrameworks>
        <VersionPrefix>1.0.0</VersionPrefix>
        <TargetFramework>net7.0</TargetFramework>
        <VersionPrefix>1.1.0</VersionPrefix>
        <PackageReleaseNotes>Update to NosSmooth.Core with splitted raw and managed clients.</PackageReleaseNotes>
    </PropertyGroup>

    <ItemGroup>


@@ 13,7 14,7 @@
    </ItemGroup>

    <ItemGroup>
      <PackageReference Include="NosSmooth.Core" Version="3.3.1" />
      <PackageReference Include="NosSmooth.Core" Version="4.0.0" />
      <PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
      <PackageReference Include="Reloaded.Hooks" Version="4.2.1" />
      <PackageReference Include="Reloaded.Memory.Sigscan" Version="3.1.6" />

M src/Core/NosSmooth.LocalClient/NostaleLocalClient.cs => src/Core/NosSmooth.LocalClient/NostaleLocalClient.cs +5 -35
@@ 22,6 22,7 @@ using NosSmooth.PacketSerializer;
using NosSmooth.PacketSerializer.Abstractions.Attributes;
using NosSmooth.PacketSerializer.Errors;
using Remora.Results;
using PacketEventArgs = NosSmooth.LocalBinding.EventArgs.PacketEventArgs;

namespace NosSmooth.LocalClient;



@@ 37,8 38,7 @@ public class NostaleLocalClient : BaseNostaleClient
    private readonly NosThreadSynchronizer _synchronizer;
    private readonly IHookManager _hookManager;
    private readonly ControlCommands _controlCommands;
    private readonly IPacketSerializer _packetSerializer;
    private readonly PacketHandler _packetHandler;
    private readonly IPacketHandler _packetHandler;
    private readonly UserActionDetector _userActionDetector;
    private readonly ILogger _logger;
    private readonly IServiceProvider _provider;


@@ 53,7 53,6 @@ public class NostaleLocalClient : BaseNostaleClient
    /// <param name="hookManager">The hook manager.</param>
    /// <param name="controlCommands">The control commands.</param>
    /// <param name="commandProcessor">The command processor.</param>
    /// <param name="packetSerializer">The packet serializer.</param>
    /// <param name="packetHandler">The packet handler.</param>
    /// <param name="userActionDetector">The user action detector.</param>
    /// <param name="logger">The logger.</param>


@@ 65,20 64,18 @@ public class NostaleLocalClient : BaseNostaleClient
        IHookManager hookManager,
        ControlCommands controlCommands,
        CommandProcessor commandProcessor,
        IPacketSerializer packetSerializer,
        PacketHandler packetHandler,
        IPacketHandler packetHandler,
        UserActionDetector userActionDetector,
        ILogger<NostaleLocalClient> logger,
        IOptions<LocalClientOptions> options,
        IServiceProvider provider
    )
        : base(commandProcessor, packetSerializer)
        : base(commandProcessor)
    {
        _options = options.Value;
        _synchronizer = synchronizer;
        _hookManager = hookManager;
        _controlCommands = controlCommands;
        _packetSerializer = packetSerializer;
        _packetHandler = packetHandler;
        _userActionDetector = userActionDetector;
        _logger = logger;


@@ 202,34 199,7 @@ public class NostaleLocalClient : BaseNostaleClient
    {
        try
        {
            var packetResult = _packetSerializer.Deserialize(packetString, type);
            IPacket packet;
            if (!packetResult.IsSuccess)
            {
                if (packetResult.Error is not PacketConverterNotFoundError)
                {
                    _logger.LogWarning("Could not parse {Packet}. Reason:", packetString);
                    _logger.LogResultError(packetResult);
                    packet = new ParsingFailedPacket(packetResult, packetString);
                }
                else
                {
                    packet = new UnresolvedPacket(packetString.Split(' ')[0], packetString);
                }
            }
            else
            {
                packet = packetResult.Entity;
            }

            Result result = await _packetHandler.HandlePacketAsync
            (
                this,
                type,
                packet,
                packetString,
                _stopRequested ?? default
            );
            var result = await _packetHandler.HandlePacketAsync(this, type, packetString);

            if (!result.IsSuccess)
            {

M src/Extensions/NosSmooth.ChatCommands/FeedbackService.cs => src/Extensions/NosSmooth.ChatCommands/FeedbackService.cs +2 -2
@@ 18,13 18,13 @@ namespace NosSmooth.ChatCommands;
/// </summary>
public class FeedbackService
{
    private readonly INostaleClient _client;
    private readonly ManagedNostaleClient _client;

    /// <summary>
    /// Initializes a new instance of the <see cref="FeedbackService"/> class.
    /// </summary>
    /// <param name="client">The nostale client.</param>
    public FeedbackService(INostaleClient client)
    public FeedbackService(ManagedNostaleClient client)
    {
        _client = client;


M src/Extensions/NosSmooth.ChatCommands/NosSmooth.ChatCommands.csproj => src/Extensions/NosSmooth.ChatCommands/NosSmooth.ChatCommands.csproj +3 -2
@@ 4,12 4,13 @@
        <TargetFramework>net7.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <VersionPrefix>1.0.0</VersionPrefix>
        <VersionPrefix>1.1.0</VersionPrefix>
        <PackageReleaseNotes>Update to NosSmooth.Core with splitted raw and managed clients.</PackageReleaseNotes>
    </PropertyGroup>

    <ItemGroup>
      <PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="7.0.0" />
      <PackageReference Include="NosSmooth.Packets" Version="3.5.0" />
      <PackageReference Include="NosSmooth.Packets" Version="3.5.1" />
      <PackageReference Include="Remora.Commands" Version="10.0.3" />
    </ItemGroup>


M src/Extensions/NosSmooth.Extensions.SharedBinding/NosSmooth.Extensions.SharedBinding.csproj => src/Extensions/NosSmooth.Extensions.SharedBinding/NosSmooth.Extensions.SharedBinding.csproj +4 -3
@@ 4,13 4,14 @@
        <TargetFramework>net7.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <VersionPrefix>0.0.1</VersionPrefix>
        <VersionPrefix>0.1.0</VersionPrefix>
        <PackageReleaseNotes>Update to NosSmooth.Core with splitted raw and managed clients.</PackageReleaseNotes>
    </PropertyGroup>

    <ItemGroup>
      <PackageReference Include="NosSmooth.Core" Version="3.3.1" />
      <PackageReference Include="NosSmooth.Core" Version="4.0.0" />
      <PackageReference Include="NosSmooth.Data.NOSFiles" Version="2.2.2" />
      <PackageReference Include="NosSmooth.PacketSerializer" Version="2.2.5" />
      <PackageReference Include="NosSmooth.PacketSerializer" Version="2.2.6" />
    </ItemGroup>

    <ItemGroup>

M src/Samples/External/ExternalBrowser/ExternalBrowser.csproj => src/Samples/External/ExternalBrowser/ExternalBrowser.csproj +1 -1
@@ 12,7 12,7 @@
    </ItemGroup>

    <ItemGroup>
      <PackageReference Include="NosSmooth.Core" Version="3.3.0" />
      <PackageReference Include="NosSmooth.Core" Version="4.0.0" />
    </ItemGroup>

</Project>

M src/Samples/HighLevel/SimplePiiBot/SimplePiiBot.csproj => src/Samples/HighLevel/SimplePiiBot/SimplePiiBot.csproj +1 -1
@@ 12,7 12,7 @@
        <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="7.0.0" />
        <PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.0" />
        <PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="7.0.0" />
        <PackageReference Include="NosSmooth.Extensions.Combat" Version="1.2.0" />
        <PackageReference Include="NosSmooth.Extensions.Combat" Version="1.3.0" />
        <PackageReference Include="Remora.Commands" Version="10.0.3" />
        <PackageReference Include="Remora.Results" Version="7.2.3" />
        <PackageReference Include="Microsoft.Extensions.DependencyInjection">

M src/Samples/LowLevel/InterceptNameChanger/InterceptNameChanger.csproj => src/Samples/LowLevel/InterceptNameChanger/InterceptNameChanger.csproj +2 -2
@@ 18,8 18,8 @@
    <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="7.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="7.0.0" />
    <PackageReference Include="NosSmooth.Core" Version="3.3.1" />
    <PackageReference Include="NosSmooth.Packets" Version="3.5.0" />
    <PackageReference Include="NosSmooth.Core" Version="4.0.0" />
    <PackageReference Include="NosSmooth.Packets" Version="3.5.1" />
    <PackageReference Include="Remora.Results" Version="7.2.3" />
  </ItemGroup>
  <ItemGroup>

M src/Samples/LowLevel/InterceptNameChanger/NameChangeInterceptor.cs => src/Samples/LowLevel/InterceptNameChanger/NameChangeInterceptor.cs +2 -2
@@ 20,7 20,7 @@ namespace InterceptNameChanger
    /// </summary>
    public class NameChangeInterceptor : IPacketInterceptor
    {
        private readonly INostaleClient _client;
        private readonly ManagedNostaleClient _client;
        private readonly ILogger<NameChangeInterceptor> _logger;
        private string _name = "Intercept";



@@ 29,7 29,7 @@ namespace InterceptNameChanger
        /// </summary>
        /// <param name="client">The nostale client.</param>
        /// <param name="logger">The logger.</param>
        public NameChangeInterceptor(INostaleClient client, ILogger<NameChangeInterceptor> logger)
        public NameChangeInterceptor(ManagedNostaleClient client, ILogger<NameChangeInterceptor> logger)
        {
            _client = client;
            _logger = logger;

M src/Samples/LowLevel/InterceptNameChanger/NameChanger.cs => src/Samples/LowLevel/InterceptNameChanger/NameChanger.cs +2 -1
@@ 35,6 35,7 @@ namespace InterceptNameChanger
        {
            var provider = new ServiceCollection()
                .AddLocalClient()
                .AddManagedNostaleCore()
                .ShareNosSmooth()

                // .AddPacketResponder<SayResponder>()


@@ 70,7 71,7 @@ namespace InterceptNameChanger
                logger.LogResultError(packetAddResult);
            }

            var client = provider.GetRequiredService<INostaleClient>();
            var client = provider.GetRequiredService<ManagedNostaleClient>();

            var sayResult = await client.ReceivePacketAsync
            (

M src/Samples/LowLevel/SimpleChat/SayResponder.cs => src/Samples/LowLevel/SimpleChat/SayResponder.cs +2 -2
@@ 19,13 19,13 @@ namespace SimpleChat;
/// </summary>
public class SayResponder : IPacketResponder<SayPacket>, IPacketResponder<MsgPacket>
{
    private readonly INostaleClient _client;
    private readonly ManagedNostaleClient _client;

    /// <summary>
    /// Initializes a new instance of the <see cref="SayResponder"/> class.
    /// </summary>
    /// <param name="client">The nostale client.</param>
    public SayResponder(INostaleClient client)
    public SayResponder(ManagedNostaleClient client)
    {
        _client = client;
    }

M src/Samples/LowLevel/SimpleChat/SimpleChat.cs => src/Samples/LowLevel/SimpleChat/SimpleChat.cs +2 -1
@@ 33,6 33,7 @@ public class SimpleChat
    {
        var provider = new ServiceCollection()
            .AddLocalClient()
            .AddManagedNostaleCore()
            .ShareNosSmooth()
            .AddPacketResponder<SayResponder>()
            .AddLogging


@@ 65,7 66,7 @@ public class SimpleChat
            logger.LogResultError(packetAddResult);
        }

        var client = provider.GetRequiredService<INostaleClient>();
        var client = provider.GetRequiredService<ManagedNostaleClient>();

        await client.ReceivePacketAsync
        (

M src/Samples/LowLevel/SimpleChat/SimpleChat.csproj => src/Samples/LowLevel/SimpleChat/SimpleChat.csproj +1 -1
@@ 18,7 18,7 @@
    <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="7.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="7.0.0" />
    <PackageReference Include="NosSmooth.Core" Version="3.3.1" />
    <PackageReference Include="NosSmooth.Core" Version="4.0.0" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\..\..\Core\NosSmooth.LocalClient\NosSmooth.LocalClient.csproj" />

M src/Samples/LowLevel/WalkCommands/Commands/WalkCommands.cs => src/Samples/LowLevel/WalkCommands/Commands/WalkCommands.cs +2 -2
@@ 25,7 25,7 @@ namespace WalkCommands.Commands;
/// </summary>
public class WalkCommands : CommandGroup
{
    private readonly INostaleClient _client;
    private readonly ManagedNostaleClient _client;
    private readonly WalkManager _walkManager;
    private readonly FeedbackService _feedbackService;



@@ 35,7 35,7 @@ public class WalkCommands : CommandGroup
    /// <param name="client">The nostale client.</param>
    /// <param name="walkManager">The walk manager.</param>
    /// <param name="feedbackService">The feedback service.</param>
    public WalkCommands(INostaleClient client, WalkManager walkManager, FeedbackService feedbackService)
    public WalkCommands(ManagedNostaleClient client, WalkManager walkManager, FeedbackService feedbackService)
    {
        _client = client;
        _walkManager = walkManager;

M src/Samples/LowLevel/WalkCommands/Startup.cs => src/Samples/LowLevel/WalkCommands/Startup.cs +1 -0
@@ 34,6 34,7 @@ public class Startup
    {
        var collection = new ServiceCollection()
            .AddLocalClient()
            .AddManagedNostaleCore()
            .ShareNosSmooth()

            // hook pet and player walk to

M src/Samples/LowLevel/WalkCommands/WalkCommands.csproj => src/Samples/LowLevel/WalkCommands/WalkCommands.csproj +2 -2
@@ 31,7 31,7 @@
      <Version>7.0.0</Version>
    </PackageReference>
    <PackageReference Include="NosSmooth.Core">
      <Version>3.3.1</Version>
      <Version>4.0.0</Version>
    </PackageReference>
    <PackageReference Include="NosSmooth.Data.Abstractions">
      <Version>2.2.1</Version>


@@ 40,7 40,7 @@
      <Version>1.2.0</Version>
    </PackageReference>
    <PackageReference Include="NosSmooth.Packets">
      <Version>3.5.0</Version>
      <Version>3.5.1</Version>
    </PackageReference>
    <PackageReference Include="Remora.Results">
      <Version>7.2.3</Version>

Do not follow this link