M src/Core/NosSmooth.Comms.Abstractions/NosSmooth.Comms.Abstractions.csproj => src/Core/NosSmooth.Comms.Abstractions/NosSmooth.Comms.Abstractions.csproj +4 -4
@@ 5,15 5,15 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>NosSmooth.Comms.Data</RootNamespace>
- <VersionPrefix>1.1.0</VersionPrefix>
+ <VersionPrefix>1.2.0</VersionPrefix>
<PackageReleaseNotes>Add result to handshake response.</PackageReleaseNotes>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="7.0.0" />
- <PackageReference Include="NosSmooth.Core" Version="3.3.1" />
- <PackageReference Include="NosSmooth.Packets" Version="3.5.0" />
- <PackageReference Include="NosSmooth.PacketSerializer.Abstractions" Version="1.3.0" />
+ <PackageReference Include="NosSmooth.Core" Version="4.0.0" />
+ <PackageReference Include="NosSmooth.Packets" Version="3.5.1" />
+ <PackageReference Include="NosSmooth.PacketSerializer.Abstractions" Version="1.3.1" />
</ItemGroup>
</Project>
M src/Core/NosSmooth.Comms.Core/ClientNostaleClient.cs => src/Core/NosSmooth.Comms.Core/ClientNostaleClient.cs +0 -18
@@ 40,15 40,6 @@ public class ClientNostaleClient : INostaleClient
}
/// <inheritdoc />
- public async Task<Result> SendPacketAsync(IPacket packet, CancellationToken ct = default)
- {
- var messageResponse = await _connection.ContractSendMessage
- (new PacketMessage(PacketSource.Client, packet))
- .WaitForAsync(DefaultStates.ResponseObtained, ct: ct);
- return messageResponse.IsSuccess ? messageResponse.Entity : Result.FromError(messageResponse);
- }
-
- /// <inheritdoc />
public async Task<Result> SendPacketAsync(string packetString, CancellationToken ct = default)
{
var messageResponse = await _connection.ContractSendMessage
@@ 67,15 58,6 @@ public class ClientNostaleClient : INostaleClient
}
/// <inheritdoc />
- public async Task<Result> ReceivePacketAsync(IPacket packet, CancellationToken ct = default)
- {
- var messageResponse = await _connection.ContractSendMessage
- (new PacketMessage(PacketSource.Server, packet))
- .WaitForAsync(DefaultStates.ResponseObtained, ct: ct);
- return messageResponse.IsSuccess ? messageResponse.Entity : Result.FromError(messageResponse);
- }
-
- /// <inheritdoc />
public async Task<Result> SendCommandAsync(ICommand command, CancellationToken ct = default)
{
var messageResponse = await _connection.ContractSendMessage
M src/Core/NosSmooth.Comms.Core/NosSmooth.Comms.Core.csproj => src/Core/NosSmooth.Comms.Core/NosSmooth.Comms.Core.csproj +2 -2
@@ 4,13 4,13 @@
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
- <VersionPrefix>1.0.0</VersionPrefix>
+ <VersionPrefix>1.1.0</VersionPrefix>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MessagePack" Version="2.4.59" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="7.0.0" />
- <PackageReference Include="NosSmooth.Core" Version="3.3.1" />
+ <PackageReference Include="NosSmooth.Core" Version="4.0.0" />
</ItemGroup>
<ItemGroup>
M src/Local/NosSmooth.Comms.Inject/DllMain.cs => src/Local/NosSmooth.Comms.Inject/DllMain.cs +1 -1
@@ 116,7 116,7 @@ public class DllMain
s
.AddSingleton<ClientState>()
.AddSingleton<CallbackConfigRepository>()
- .AddNostaleCore()
+ .AddManagedNostaleCore()
.AddLocalClient()
.ShareNosSmooth()
.AddNamedPipeServer(p => $"NosSmooth_{Process.GetCurrentProcess().Id}")
M src/Local/NosSmooth.Comms.Inject/MessageResponders/PacketResponder.cs => src/Local/NosSmooth.Comms.Inject/MessageResponders/PacketResponder.cs +2 -2
@@ 17,13 17,13 @@ namespace NosSmooth.Comms.Inject.MessageResponders;
/// </summary>
public class PacketResponder : IMessageResponder<RawPacketMessage>, IMessageResponder<PacketMessage>
{
- private readonly INostaleClient _client;
+ private readonly ManagedNostaleClient _client;
/// <summary>
/// Initializes a new instance of the <see cref="PacketResponder"/> class.
/// </summary>
/// <param name="client">The NosTale client.</param>
- public PacketResponder(INostaleClient client)
+ public PacketResponder(ManagedNostaleClient client)
{
_client = client;
}
M src/Local/NosSmooth.Comms.Inject/NosSmooth.Comms.Inject.csproj => src/Local/NosSmooth.Comms.Inject/NosSmooth.Comms.Inject.csproj +3 -3
@@ 5,7 5,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<EnableDynamicLoading>true</EnableDynamicLoading>
- <VersionPrefix>1.1.1</VersionPrefix>
+ <VersionPrefix>1.2.0</VersionPrefix>
<PackageReleaseNotes>Add support for reporting errors using HandshakeResponse.
Do not open a console by default, add a support for opening a console using a command or by calling OpenConsole, CloseConsole inside of DllMain.</PackageReleaseNotes>
</PropertyGroup>
@@ 13,9 13,9 @@ Do not open a console by default, add a support for opening a console using a co
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="7.0.0" />
- <PackageReference Include="NosSmooth.Extensions.SharedBinding" Version="0.0.1" />
+ <PackageReference Include="NosSmooth.Extensions.SharedBinding" Version="0.1.0" />
<PackageReference Include="NosSmooth.LocalBinding" Version="1.0.0" />
- <PackageReference Include="NosSmooth.LocalClient" Version="1.0.0" />
+ <PackageReference Include="NosSmooth.LocalClient" Version="1.1.0" />
</ItemGroup>
<ItemGroup>
M src/Local/NosSmooth.Comms.Local/Extensions/ServiceCollectionExtensions.cs => src/Local/NosSmooth.Comms.Local/Extensions/ServiceCollectionExtensions.cs +4 -0
@@ 7,7 7,9 @@
using Microsoft.Extensions.DependencyInjection;
using NosSmooth.Comms.Core.Extensions;
using NosSmooth.Comms.Local.MessageResponders;
+using NosSmooth.Core.Contracts;
using NosSmooth.Injector;
+using NosSmooth.PacketSerializer.Extensions;
namespace NosSmooth.Comms.Local.Extensions;
@@ 24,6 26,8 @@ public static class ServiceCollectionExtensions
public static IServiceCollection AddLocalComms(this IServiceCollection serviceCollection)
{
return serviceCollection
+ .AddPacketSerialization()
+ .AddSingleton<Contractor>()
.AddMultiClientHandling()
.AddMessageResponder<PacketResponder>()
.AddMessageResponder<RawPacketResponder>()
M src/Local/NosSmooth.Comms.Local/MessageResponders/PacketResponder.cs => src/Local/NosSmooth.Comms.Local/MessageResponders/PacketResponder.cs +2 -3
@@ 19,7 19,7 @@ namespace NosSmooth.Comms.Local.MessageResponders;
public class PacketResponder : IMessageResponder<PacketMessage>
{
private readonly INostaleClient _client;
- private readonly PacketHandler _packetHandler;
+ private readonly IPacketHandler _packetHandler;
private readonly IPacketSerializer _serializer;
/// <summary>
@@ 28,7 28,7 @@ public class PacketResponder : IMessageResponder<PacketMessage>
/// <param name="client">The nostale client.</param>
/// <param name="packetHandler">The packet handler.</param>
/// <param name="serializer">The serializer.</param>
- public PacketResponder(INostaleClient client, PacketHandler packetHandler, IPacketSerializer serializer)
+ public PacketResponder(INostaleClient client, IPacketHandler packetHandler, IPacketSerializer serializer)
{
_client = client;
_packetHandler = packetHandler;
@@ 48,7 48,6 @@ public class PacketResponder : IMessageResponder<PacketMessage>
(
_client,
message.Source,
- message.Packet,
serialized,
ct
);
M src/Local/NosSmooth.Comms.Local/MessageResponders/RawPacketResponder.cs => src/Local/NosSmooth.Comms.Local/MessageResponders/RawPacketResponder.cs +2 -24
@@ 23,7 23,7 @@ namespace NosSmooth.Comms.Local.MessageResponders;
public class RawPacketResponder : IMessageResponder<RawPacketMessage>
{
private readonly INostaleClient _client;
- private readonly PacketHandler _packetHandler;
+ private readonly IPacketHandler _packetHandler;
private readonly IPacketSerializer _serializer;
private readonly ILogger<RawPacketResponder> _logger;
@@ 34,7 34,7 @@ public class RawPacketResponder : IMessageResponder<RawPacketMessage>
/// <param name="packetHandler">The packet handler.</param>
/// <param name="serializer">The serializer.</param>
/// <param name="logger">The logger.</param>
- public RawPacketResponder(INostaleClient client, PacketHandler packetHandler, IPacketSerializer serializer, ILogger<RawPacketResponder> logger)
+ public RawPacketResponder(INostaleClient client, IPacketHandler packetHandler, IPacketSerializer serializer, ILogger<RawPacketResponder> logger)
{
_client = client;
_packetHandler = packetHandler;
@@ 45,32 45,10 @@ public class RawPacketResponder : IMessageResponder<RawPacketMessage>
/// <inheritdoc />
public Task<Result> Respond(RawPacketMessage message, CancellationToken ct = default)
{
- var deserializedResult = _serializer.Deserialize(message.Packet, message.Source);
- IPacket packet;
-
- if (!deserializedResult.IsSuccess)
- {
- if (deserializedResult.Error is not PacketConverterNotFoundError)
- {
- _logger.LogWarning("Could not parse {Packet}. Reason:", message.Packet);
- _logger.LogResultError(deserializedResult);
- packet = new ParsingFailedPacket(deserializedResult, message.Packet);
- }
- else
- {
- packet = new UnresolvedPacket(message.Packet.Split(' ')[0], message.Packet);
- }
- }
- else
- {
- packet = deserializedResult.Entity;
- }
-
return _packetHandler.HandlePacketAsync
(
_client,
message.Source,
- packet,
message.Packet,
ct
);
M src/Local/NosSmooth.Comms.Local/NosSmooth.Comms.Local.csproj => src/Local/NosSmooth.Comms.Local/NosSmooth.Comms.Local.csproj +1 -1
@@ 4,7 4,7 @@
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
- <VersionPrefix>1.1.1</VersionPrefix>
+ <VersionPrefix>1.2.0</VersionPrefix>
<PackageReleaseNotes>Update Inject version to 1.1.0.</PackageReleaseNotes>
</PropertyGroup>
M src/Samples/ConsolePacketLogger/EveryPacketResponder.cs => src/Samples/ConsolePacketLogger/EveryPacketResponder.cs +2 -3
@@ 12,11 12,10 @@ using Remora.Results;
namespace ConsolePacketLogger;
/// <inheritdoc />
-public class EveryPacketResponder : IEveryPacketResponder
+public class EveryPacketResponder : IRawPacketResponder
{
/// <inheritdoc />
- public Task<Result> Respond<TPacket>(PacketEventArgs<TPacket> packetArgs, CancellationToken ct = default)
- where TPacket : IPacket
+ public Task<Result> Respond(PacketEventArgs packetArgs, CancellationToken ct = default)
{
Console.WriteLine((packetArgs.Source == PacketSource.Server ? "[Recv]\t" : "[Sent]\t") + packetArgs.PacketString);
return Task.FromResult(Result.FromSuccess());
M src/Samples/ConsolePacketLogger/Program.cs => src/Samples/ConsolePacketLogger/Program.cs +2 -1
@@ 12,6 12,7 @@ using NosSmooth.Comms.Core.Extensions;
using NosSmooth.Comms.Local;
using NosSmooth.Comms.Local.Extensions;
using NosSmooth.Core.Extensions;
+using NosSmooth.Core.Packets;
using NosSmooth.Data.Abstractions;
using NosSmooth.LocalBinding;
using Spectre.Console;
@@ 66,7 67,7 @@ public static class Program
.AddSingleClientHandling()
.AddLocalComms()
.AddHostedService<ClientService>()
- .AddPacketResponder<EveryPacketResponder>()
+ .AddScoped<IRawPacketResponder, EveryPacketResponder>()
)
.Build();