mirror of
https://github.com/gwdevhub/Daybreak.git
synced 2026-07-24 03:56:30 +00:00
46 lines
2.2 KiB
C#
46 lines
2.2 KiB
C#
using System.Diagnostics.CodeAnalysis;
|
|
using Daybreak.API.Services.Interop;
|
|
using Daybreak.Shared.Services.BuildTemplates;
|
|
using Daybreak.Shared.Services.BuildTemplates.Parsers;
|
|
|
|
namespace Daybreak.API.Services;
|
|
|
|
public static class WebApplicationBuilderExtensions
|
|
{
|
|
public static WebApplicationBuilder WithDaybreakServices(this WebApplicationBuilder builder)
|
|
{
|
|
builder.Services.AddSingleton<ITemplateParser, LegacySkillTemplateParser>();
|
|
builder.Services.AddSingleton<ITemplateParser, SkillTemplateParser>();
|
|
builder.Services.AddSingleton<ITemplateParser, PartyLoadoutTemplateParser>();
|
|
builder.Services.AddSingleton<IBuildTemplateManager, BuildTemplateManager>();
|
|
builder.Services.AddSingleton<MemoryScanningService>();
|
|
builder.Services.AddSingleton<ChatService>();
|
|
builder.Services.AddSingleton<MainPlayerService>();
|
|
builder.Services.AddSingleton<CharacterSelectService>();
|
|
builder.Services.AddSingleton<UIService>();
|
|
builder.Services.AddSingleton<LoginService>();
|
|
builder.Services.AddSingleton<InventoryService>();
|
|
builder.Services.AddSingleton<GameThreadService>();
|
|
builder.Services.AddSingleton<GameContextService>();
|
|
builder.Services.AddSingleton<InstanceContextService>();
|
|
builder.Services.AddSingleton<AgentContextService>();
|
|
builder.Services.AddSingleton<PlatformContextService>();
|
|
builder.Services.AddSingleton<PartyContextService>();
|
|
builder.Services.AddSingleton<PreferencesService>();
|
|
builder.Services.AddSingleton<UIContextService>();
|
|
builder.Services.AddHostedSingleton<PartyService>();
|
|
builder.Services.AddHostedSingleton<SkillbarContextService>();
|
|
builder.Services.AddSingleton<IInteropHealthService>(sp => sp.GetRequiredService<SkillbarContextService>());
|
|
|
|
return builder;
|
|
}
|
|
|
|
public static IServiceCollection AddHostedSingleton<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] TService>(this IServiceCollection services)
|
|
where TService : class, IHostedService
|
|
{
|
|
services.AddSingleton<TService>();
|
|
services.AddHostedService(sp => sp.GetRequiredService<TService>());
|
|
return services;
|
|
}
|
|
}
|