public static IServiceCollection WireUpDiscordFramework(this IServiceCollection services, string cmdPrefix)
        {
            services.AddSingleton <DiscordBotFramework>(s =>
            {
                var host   = s.GetRequiredService <IHost>();
                var config = s.GetRequiredService <IConfiguration>();
                var logger = s.GetRequiredService <ILogger <DiscordBotFramework> >();
                var bot    = new DiscordBotFramework(host, config, logger, cmdPrefix);
                return(bot);
            });

            services.AddSingleton <CommandService>(s =>
            {
                var bot = s.GetRequiredService <DiscordBotFramework>();
                return(bot.Commands);
            })
            .AddSingleton <GlobalPreferences>(s =>
            {
                var bot = s.GetRequiredService <DiscordBotFramework>();
                return(bot.Preferences);
            });


            return(services);
        }
 public ExtendedCommandContext(IDiscordClient client, IUserMessage message, DiscordBotFramework framework) : base(client, message)
 {
     FrameworkInstance = framework;
     if (Guild != null)
     {
         GuildSpecificPreferences = framework.Preferences.ServerSpecific.GetFor(Guild.Id);
         IsGuild = true;
     }
 }