using System; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using MRBot.PassiveTasks; namespace MRBot.Api; internal sealed class BotApi { private readonly IPassiveTaskList _passiveTaskList; private readonly ILogger _logger; private readonly IServiceProvider _serviceProvider; public BotApi(IPassiveTaskList passiveTaskList, ILogger logger, IServiceProvider serviceProvider) { _passiveTaskList = passiveTaskList; _logger = logger; _serviceProvider = serviceProvider; } public void FollowPlayer(string playerName) { _logger.LogInformation($"Following player {playerName}"); var task = ActivatorUtilities.CreateInstance(_serviceProvider, playerName); _passiveTaskList.AddTask(task); } }