server-master/srcs/_plugins/Plugin.PlayerLogs/Core/LogDependencyInjectionExtensions.cs
2026-02-10 18:21:30 +01:00

21 lines
No EOL
946 B
C#

using Microsoft.Extensions.DependencyInjection;
using PhoenixLib.Events;
using PhoenixLib.ServiceBus.Extensions;
using WingsEmu.Game._packetHandling;
namespace Plugin.PlayerLogs.Core
{
public static class LogDependencyInjectionExtensions
{
public static void AddPlayerLog<TEvent, TMessage, TEnricher>(this IServiceCollection services)
where TMessage : IPlayerActionLogMessage, new()
where TEvent : PlayerEvent
where TEnricher : class, ILogMessageEnricher<TEvent, TMessage>
{
services.AddSingleton<IAsyncEventProcessor<TEvent>, GenericPlayerGameEventToLogProcessor<TEvent, TMessage>>();
services.AddSingleton<IPlayerEventLogMessageFactory<TEvent, TMessage>, GenericPlayerEventLogMessageFactory<TEvent, TMessage>>();
services.AddSingleton<ILogMessageEnricher<TEvent, TMessage>, TEnricher>();
services.AddMessagePublisher<TMessage>();
}
}
}