~ruther/NosSmooth.Local

6cfdaa9d0ad33f2781a232f00d77f8486a3a11c0 — Rutherther 2 years ago 28eccaf
chore: update dependencies
M src/Core/NosSmooth.LocalBinding/NosSmooth.LocalBinding.csproj => src/Core/NosSmooth.LocalBinding/NosSmooth.LocalBinding.csproj +1 -1
@@ 12,7 12,7 @@
    <ItemGroup>
      <PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="7.0.0" />
      <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="7.0.0" />
      <PackageReference Include="Microsoft.Extensions.Options" Version="7.0.0" />
      <PackageReference Include="Microsoft.Extensions.Options" Version="7.0.1" />
      <PackageReference Include="Reloaded.Hooks" Version="4.2.1" />
      <PackageReference Include="Reloaded.Memory.Sigscan" Version="3.1.6" />
      <PackageReference Include="Remora.Results" Version="7.2.3" />

R src/Core/NosSmooth.LocalClient/CommandHandlers/Walk/PetWalkCommandHandler.cs => src/Core/NosSmooth.LocalClient/CommandHandlers/Walk/MateWalkCommandHandler.cs +11 -11
@@ 1,5 1,5 @@
//
//  PetWalkCommandHandler.cs
//  MateWalkCommandHandler.cs
//
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.


@@ 20,7 20,7 @@ namespace NosSmooth.LocalClient.CommandHandlers.Walk;
/// <summary>
/// Handles <see cref="PetWalkCommand"/>.
/// </summary>
public class PetWalkCommandHandler : ICommandHandler<PetWalkCommand>
public class MateWalkCommandHandler : ICommandHandler<MateWalkCommand>
{
    /// <summary>
    /// Group that is used for <see cref="TakeControlCommand"/>.


@@ 35,7 35,7 @@ public class PetWalkCommandHandler : ICommandHandler<PetWalkCommand>
    private readonly WalkCommandHandlerOptions _options;

    /// <summary>
    /// Initializes a new instance of the <see cref="PetWalkCommandHandler"/> class.
    /// Initializes a new instance of the <see cref="MateWalkCommandHandler"/> class.
    /// </summary>
    /// <param name="petWalkHook">The pet walk hook.</param>
    /// <param name="petManagerList">The pet manager list.</param>


@@ 43,7 43,7 @@ public class PetWalkCommandHandler : ICommandHandler<PetWalkCommand>
    /// <param name="userActionDetector">The user action detector.</param>
    /// <param name="nostaleClient">The nostale client.</param>
    /// <param name="options">The options.</param>
    public PetWalkCommandHandler
    public MateWalkCommandHandler
    (
        IPetWalkHook petWalkHook,
        PetManagerList petManagerList,


@@ 62,13 62,13 @@ public class PetWalkCommandHandler : ICommandHandler<PetWalkCommand>
    }

    /// <inheritdoc/>
    public async Task<Result> HandleCommand(PetWalkCommand command, CancellationToken ct = default)
    public async Task<Result> HandleCommand(MateWalkCommand command, CancellationToken ct = default)
    {
        if (_petManagerList.Length < command.PetSelector + 1)
        PetManager? selectedPet = _petManagerList.FirstOrDefault(x => x.Pet.Id == command.MateId);
        if (selectedPet is null)
        {
            return new NotFoundError("Could not find the pet using the given selector.");
            return new NotFoundError($"Mate with id {command.MateId} was not found in the pet manager list.");
        }
        var petManager = _petManagerList[command.PetSelector];

        var handler = new ControlCommandWalkHandler
        (


@@ 78,11 78,11 @@ public class PetWalkCommandHandler : ICommandHandler<PetWalkCommand>
                (
                    () => _userActionDetector.NotUserAction<Result<bool>>
                    (
                        () => _petWalkHook.WrapperFunction.Get()(petManager, (ushort)x, (ushort)y)
                        () => _petWalkHook.WrapperFunction.Get()(selectedPet, (ushort)x, (ushort)y)
                    ),
                    ct
                ),
            petManager,
            selectedPet,
            _options
        );



@@ 92,7 92,7 @@ public class PetWalkCommandHandler : ICommandHandler<PetWalkCommand>
            command.TargetY,
            command.ReturnDistanceTolerance,
            command,
            PetWalkControlGroup + "_" + command.PetSelector,
            PetWalkControlGroup + "_" + command.MateId,
            ct
        );
    }

M src/Core/NosSmooth.LocalClient/Extensions/ServiceCollectionExtensions.cs => src/Core/NosSmooth.LocalClient/Extensions/ServiceCollectionExtensions.cs +1 -1
@@ 33,7 33,7 @@ public static class ServiceCollectionExtensions
            .AddTakeControlCommand()
            .AddCommandHandler<AttackCommandHandler>()
            .AddCommandHandler<PlayerWalkCommandHandler>()
            .AddCommandHandler<PetWalkCommandHandler>();
            .AddCommandHandler<MateWalkCommandHandler>();
        serviceCollection.TryAddSingleton<NostaleLocalClient>();
        serviceCollection.TryAddSingleton<INostaleClient>(p => p.GetRequiredService<NostaleLocalClient>());


M src/Core/NosSmooth.LocalClient/NosSmooth.LocalClient.csproj => src/Core/NosSmooth.LocalClient/NosSmooth.LocalClient.csproj +4 -3
@@ 5,8 5,8 @@
        <Nullable>enable</Nullable>
        <LangVersion>10</LangVersion>
        <TargetFramework>net7.0</TargetFramework>
        <VersionPrefix>2.0.1</VersionPrefix>
        <PackageReleaseNotes>Add support for optional hooks and bindings.</PackageReleaseNotes>
        <VersionPrefix>2.1.0</VersionPrefix>
        <PackageReleaseNotes>Add support for new MateWalkCommand.</PackageReleaseNotes>
    </PropertyGroup>

    <ItemGroup>


@@ 14,8 14,9 @@
    </ItemGroup>

    <ItemGroup>
      <PackageReference Include="NosSmooth.Core" Version="4.0.2" />
      <PackageReference Include="NosSmooth.Core" Version="5.0.0" />
      <PackageReference Include="Microsoft.Extensions.Logging" Version="7.0.0" />
      <PackageReference Include="NosSmooth.PacketSerializer.Abstractions" Version="1.3.2" />
      <PackageReference Include="Reloaded.Hooks" Version="4.2.1" />
      <PackageReference Include="Reloaded.Memory.Sigscan" Version="3.1.6" />
    </ItemGroup>

M src/Extensions/NosSmooth.ChatCommands/NosSmooth.ChatCommands.csproj => src/Extensions/NosSmooth.ChatCommands/NosSmooth.ChatCommands.csproj +1 -1
@@ 10,7 10,7 @@

    <ItemGroup>
      <PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="7.0.0" />
      <PackageReference Include="NosSmooth.Packets" Version="3.5.1" />
      <PackageReference Include="NosSmooth.Packets" Version="3.6.0" />
      <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 +6 -5
@@ 4,14 4,15 @@
        <TargetFramework>net7.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <VersionPrefix>1.0.1</VersionPrefix>
        <PackageReleaseNotes>Add support for optional hooks and bindings.</PackageReleaseNotes>
        <VersionPrefix>1.0.2</VersionPrefix>
        <PackageReleaseNotes>Update dependencies.</PackageReleaseNotes>
    </PropertyGroup>

    <ItemGroup>
      <PackageReference Include="NosSmooth.Core" Version="4.0.2" />
      <PackageReference Include="NosSmooth.Data.NOSFiles" Version="2.2.2" />
      <PackageReference Include="NosSmooth.PacketSerializer" Version="2.2.6" />
      <PackageReference Include="NosSmooth.Core" Version="5.0.0" />
      <PackageReference Include="NosSmooth.Data.NOSFiles" Version="2.3.0" />
      <PackageReference Include="NosSmooth.PacketSerializer" Version="2.2.7" />
      <PackageReference Include="NosSmooth.PacketSerializer.Abstractions" Version="1.3.2" />
    </ItemGroup>

    <ItemGroup>

M src/Inject/NosSmooth.Injector/NosSmooth.Injector.csproj => src/Inject/NosSmooth.Injector/NosSmooth.Injector.csproj +1 -1
@@ 10,7 10,7 @@
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.Extensions.Options" Version="7.0.0" />
    <PackageReference Include="Microsoft.Extensions.Options" Version="7.0.1" />
    <PackageReference Include="Remora.Results" Version="7.2.3" />

    <PackageReference Include="Reloaded.Injector" Version="1.2.5">

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

    <ItemGroup>
      <PackageReference Include="NosSmooth.Core" Version="4.0.2" />
      <PackageReference Include="NosSmooth.Core" Version="5.0.0" />
      <PackageReference Include="NosSmooth.PacketSerializer.Abstractions" Version="1.3.2" />
    </ItemGroup>

</Project>

M src/Samples/HighLevel/SimplePiiBot/SimplePiiBot.csproj => src/Samples/HighLevel/SimplePiiBot/SimplePiiBot.csproj +2 -2
@@ 10,9 10,9 @@

    <ItemGroup>
        <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="7.0.0" />
        <PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.0" />
        <PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.1" />
        <PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="7.0.0" />
        <PackageReference Include="NosSmooth.Extensions.Combat" Version="1.3.0" />
        <PackageReference Include="NosSmooth.Extensions.Combat" Version="1.3.1" />
        <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="4.0.2" />
    <PackageReference Include="NosSmooth.Packets" Version="3.5.1" />
    <PackageReference Include="NosSmooth.Core" Version="5.0.0" />
    <PackageReference Include="NosSmooth.Packets" Version="3.6.0" />
    <PackageReference Include="Remora.Results" Version="7.2.3" />
  </ItemGroup>
  <ItemGroup>

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="4.0.2" />
    <PackageReference Include="NosSmooth.Core" Version="5.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 +39 -10
@@ 10,6 10,8 @@ using NosSmooth.Core.Commands;
using NosSmooth.Core.Commands.Walking;
using NosSmooth.Core.Extensions;
using NosSmooth.Extensions.Pathfinding;
using NosSmooth.LocalBinding;
using NosSmooth.LocalBinding.Structs;
using NosSmooth.Packets.Enums;
using NosSmooth.Packets.Enums.Chat;
using NosSmooth.Packets.Enums.Entities;


@@ 26,6 28,7 @@ namespace WalkCommands.Commands;
public class WalkCommands : CommandGroup
{
    private readonly ManagedNostaleClient _client;
    private readonly PetManagerList _petManagerList;
    private readonly WalkManager _walkManager;
    private readonly FeedbackService _feedbackService;



@@ 33,11 36,13 @@ public class WalkCommands : CommandGroup
    /// Initializes a new instance of the <see cref="WalkCommands"/> class.
    /// </summary>
    /// <param name="client">The nostale client.</param>
    /// <param name="petManagerList">The pet manager list.</param>
    /// <param name="walkManager">The walk manager.</param>
    /// <param name="feedbackService">The feedback service.</param>
    public WalkCommands(ManagedNostaleClient client, WalkManager walkManager, FeedbackService feedbackService)
    public WalkCommands(ManagedNostaleClient client, PetManagerList petManagerList, WalkManager walkManager, FeedbackService feedbackService)
    {
        _client = client;
        _petManagerList = petManagerList;
        _walkManager = walkManager;
        _feedbackService = feedbackService;
    }


@@ 71,12 76,16 @@ public class WalkCommands : CommandGroup
            return receiveResult;
        }

        var pets = petSelectors
            .Select(i => _petManagerList[i].Entity.Id)
            .Select(id => (id, x, y));

        var command = new WalkCommand
        (
            x,
            y,
            petSelectors.Select(i => (i, x, y)).ToArray(),
            2,
            pets.ToArray(),
            AllowUserCancel: isCancellable
        );
        var walkResult = await _client.SendCommandAsync(command, CancellationToken);


@@ 127,25 136,45 @@ public class WalkCommands : CommandGroup
        {
            return receiveResult;
        }
        
        var pets = petSelectors
            .Select(i => _petManagerList[i].Entity.Id)
            .Select(id => (id, x, y));

        var tasks = new List<Task<Result>>();

        var walkResult = await _walkManager.GoToAsync
        tasks.Add(_walkManager.PlayerGoToAsync
        (
            x,
            y,
            isCancellable,
            CancellationToken,
            petSelectors.Select(i => (i, x, y)).ToArray()
        );
        if (!walkResult.IsSuccess)
            CancellationToken
        ));

        foreach (var pet in pets)
        {
            tasks.Add(_walkManager.MateWalkToAsync(pet.id, pet.x, pet.y, isCancellable, CancellationToken));
        }

        var results = await Task.WhenAll(tasks);
        var errorfulResults = results.Where(x => !x.IsSuccess).OfType<IResult>().ToArray();
        if (errorfulResults.Length > 0)
        {
            await _feedbackService.SendErrorMessageAsync
                ($"Could not finish walking. {walkResult.ToFullString()}", CancellationToken);
            await _client.ReceivePacketAsync
            (
                new SayPacket(EntityType.Map, 1, SayColor.Red, "Could not finish walking."),
                CancellationToken
            );
            return walkResult;

            var result = errorfulResults.Length switch
            {
                1 => (Result)errorfulResults[0],
                _ => new AggregateError(errorfulResults)
            };
            await _feedbackService.SendErrorMessageAsync
                ($"Could not finish walking. {result.ToFullString()}", CancellationToken);
            
            return result;
        }

        return await _client.ReceivePacketAsync

M src/Samples/LowLevel/WalkCommands/WalkCommands.csproj => src/Samples/LowLevel/WalkCommands/WalkCommands.csproj +13 -5
@@ 31,25 31,33 @@
      <Version>7.0.0</Version>
    </PackageReference>
    <PackageReference Include="NosSmooth.Core">
      <Version>4.0.2</Version>
      <Version>5.0.0</Version>
    </PackageReference>
    <PackageReference Include="NosSmooth.Data.Abstractions">
      <Version>2.2.1</Version>
      <Version>2.3.0</Version>
    </PackageReference>
    <PackageReference Include="NosSmooth.Extensions.Pathfinding">
      <Version>1.2.0</Version>
      <Version>2.0.0</Version>
    </PackageReference>
    <PackageReference Include="NosSmooth.Packets">
      <Version>3.5.1</Version>
      <Version>3.6.0</Version>
    </PackageReference>
    <PackageReference Include="Remora.Results">
      <Version>7.2.3</Version>
    </PackageReference>
    <PackageReference Include="NosSmooth.Data.NOSFiles" Version="2.2.2" />
    <PackageReference Include="NosSmooth.Data.NOSFiles" Version="2.3.0" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\..\..\Core\NosSmooth.LocalClient\NosSmooth.LocalClient.csproj" />
    <ProjectReference Include="..\..\..\Extensions\NosSmooth.ChatCommands\NosSmooth.ChatCommands.csproj" />
    <ProjectReference Include="..\..\..\Extensions\NosSmooth.Extensions.SharedBinding\NosSmooth.Extensions.SharedBinding.csproj" />
  </ItemGroup>
  <ItemGroup>
    <Reference Include="NosSmooth.Core">
      <HintPath>..\..\..\..\..\NosSmooth\Core\NosSmooth.Core\bin\Debug\net7.0\NosSmooth.Core.dll</HintPath>
    </Reference>
    <Reference Include="NosSmooth.Packets">
      <HintPath>..\..\..\..\..\NosSmooth\Packets\NosSmooth.Packets\bin\Debug\net7.0\NosSmooth.Packets.dll</HintPath>
    </Reference>
  </ItemGroup>
</Project>
\ No newline at end of file

Do not follow this link