using MareSynchronos.API.Dto.User; using MareSynchronos.FileCache; using MareSynchronos.Interop; using MareSynchronos.PlayerData.Handlers; using MareSynchronos.PlayerData.Pairs; using MareSynchronos.Services; using MareSynchronos.Services.Mediator; using MareSynchronos.Services.ServerConfiguration; using Microsoft.Extensions.Logging; namespace MareSynchronos.PlayerData.Factories; public class PairHandlerFactory { private readonly DalamudUtilService _dalamudUtilService; private readonly FileCacheManager _fileCacheManager; private readonly FileDownloadManagerFactory _fileDownloadManagerFactory; private readonly GameObjectHandlerFactory _gameObjectHandlerFactory; private readonly CancellationToken _dalamudLifetimeToken; private readonly IpcManager _ipcManager; private readonly ILoggerFactory _loggerFactory; private readonly MareMediator _mareMediator; private readonly PluginWarningNotificationService _pluginWarningNotificationManager; private readonly ServerConfigurationManager _serverConfigurationManager; public PairHandlerFactory(ILoggerFactory loggerFactory, GameObjectHandlerFactory gameObjectHandlerFactory, IpcManager ipcManager, FileDownloadManagerFactory fileDownloadManagerFactory, DalamudUtilService dalamudUtilService, PluginWarningNotificationService pluginWarningNotificationManager, ServerConfigurationManager serverConfigurationManager, CancellationToken dalamudLifetime, FileCacheManager fileCacheManager, MareMediator mareMediator) { _loggerFactory = loggerFactory; _gameObjectHandlerFactory = gameObjectHandlerFactory; _ipcManager = ipcManager; _fileDownloadManagerFactory = fileDownloadManagerFactory; _dalamudUtilService = dalamudUtilService; _pluginWarningNotificationManager = pluginWarningNotificationManager; _serverConfigurationManager = serverConfigurationManager; _dalamudLifetimeToken = dalamudLifetime; _fileCacheManager = fileCacheManager; _mareMediator = mareMediator; } public PairHandler Create(OnlineUserIdentDto onlineUserIdentDto) { return new PairHandler(_loggerFactory.CreateLogger(), onlineUserIdentDto, _gameObjectHandlerFactory, _ipcManager, _fileDownloadManagerFactory.Create(), _pluginWarningNotificationManager, _serverConfigurationManager, _dalamudUtilService, _dalamudLifetimeToken, _fileCacheManager, _mareMediator); } }