Migrate DI container to Autofac
This commit is contained in:
@@ -3,6 +3,9 @@ using System.Threading.Tasks;
|
||||
|
||||
using App.Metrics;
|
||||
|
||||
using Autofac;
|
||||
using Autofac.Core;
|
||||
|
||||
using Discord;
|
||||
using Discord.WebSocket;
|
||||
|
||||
@@ -12,7 +15,7 @@ namespace PluralKit.Bot.CommandSystem
|
||||
{
|
||||
public class Context
|
||||
{
|
||||
private IServiceProvider _provider;
|
||||
private ILifetimeScope _provider;
|
||||
|
||||
private readonly DiscordShardedClient _client;
|
||||
private readonly SocketUserMessage _message;
|
||||
@@ -24,14 +27,14 @@ namespace PluralKit.Bot.CommandSystem
|
||||
|
||||
private Command _currentCommand;
|
||||
|
||||
public Context(IServiceProvider provider, SocketUserMessage message, int commandParseOffset,
|
||||
public Context(ILifetimeScope provider, SocketUserMessage message, int commandParseOffset,
|
||||
PKSystem senderSystem)
|
||||
{
|
||||
_client = provider.GetRequiredService<IDiscordClient>() as DiscordShardedClient;
|
||||
_client = provider.Resolve<DiscordShardedClient>();
|
||||
_message = message;
|
||||
_data = provider.GetRequiredService<IDataStore>();
|
||||
_data = provider.Resolve<IDataStore>();
|
||||
_senderSystem = senderSystem;
|
||||
_metrics = provider.GetRequiredService<IMetrics>();
|
||||
_metrics = provider.Resolve<IMetrics>();
|
||||
_provider = provider;
|
||||
_parameters = new Parameters(message.Content.Substring(commandParseOffset));
|
||||
}
|
||||
@@ -86,7 +89,7 @@ namespace PluralKit.Bot.CommandSystem
|
||||
|
||||
try
|
||||
{
|
||||
await handler(_provider.GetRequiredService<T>());
|
||||
await handler(_provider.Resolve<T>());
|
||||
_metrics.Measure.Meter.Mark(BotMetrics.CommandsRun);
|
||||
}
|
||||
catch (PKSyntaxError e)
|
||||
|
Reference in New Issue
Block a user