From ce641b85ae1ec404836182329c91b611500ea38f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?= Date: Wed, 29 Dec 2021 22:43:30 +0100 Subject: [PATCH] feat: add packet types from the packets assembly to PacketTypesRepository --- .../Extensions/ServiceCollectionExtensions.cs | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/Core/NosSmooth.Packets/Extensions/ServiceCollectionExtensions.cs b/Core/NosSmooth.Packets/Extensions/ServiceCollectionExtensions.cs index 4e7e6b1..d40a2b2 100644 --- a/Core/NosSmooth.Packets/Extensions/ServiceCollectionExtensions.cs +++ b/Core/NosSmooth.Packets/Extensions/ServiceCollectionExtensions.cs @@ -34,7 +34,25 @@ public static class ServiceCollectionExtensions return serviceCollection .AddSingleton() .AddSingleton() - .AddSingleton() + .AddSingleton(p => + { + var repository = new PacketTypesRepository(p.GetRequiredService()); + var packetTypes = typeof(ServiceCollectionExtensions).Assembly + .GetExportedTypes() + .Where(x => x != typeof(UnresolvedPacket) && !x.IsAbstract && typeof(IPacket).IsAssignableFrom(x)); + foreach (var packetType in packetTypes) + { + var result = repository.AddPacketType(packetType); + if (!result.IsSuccess) + { + // TODO: figure out how to handle this. + throw new Exception(result.Error.Message); + } + } + + return repository; + }) + .AddGeneratedSerializers(typeof(ServiceCollectionExtensions).Assembly) .AddBasicConverters(); } -- 2.48.1