QoL changes
This commit is contained in:
@ -45,6 +45,13 @@ namespace NadekoBot
|
||||
public BotConfig BotConfig { get; }
|
||||
public DbService Db { get; }
|
||||
public CommandService CommandService { get; }
|
||||
public CommandHandler CommandHandler { get; private set; }
|
||||
public Localization Localization { get; }
|
||||
public NadekoStrings Strings { get; }
|
||||
public StatsService Stats { get; }
|
||||
public ImagesService Images { get; }
|
||||
public CurrencyService Currency { get; }
|
||||
public GoogleApiService GoogleApi { get; }
|
||||
|
||||
public DiscordShardedClient Client { get; }
|
||||
public bool Ready { get; private set; }
|
||||
@ -56,7 +63,7 @@ namespace NadekoBot
|
||||
{
|
||||
SetupLogger();
|
||||
_log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
|
||||
Credentials = new BotCredentials();
|
||||
Db = new DbService(Credentials);
|
||||
|
||||
@ -83,6 +90,15 @@ namespace NadekoBot
|
||||
DefaultRunMode = RunMode.Sync,
|
||||
});
|
||||
|
||||
//foundation services
|
||||
Localization = new Localization(BotConfig.Locale, AllGuildConfigs.ToDictionary(x => x.GuildId, x => x.Locale), Db);
|
||||
Strings = new NadekoStrings(Localization);
|
||||
CommandHandler = new CommandHandler(Client, Db, BotConfig, AllGuildConfigs, CommandService, Credentials, this);
|
||||
Stats = new StatsService(Client, CommandHandler, Credentials);
|
||||
Images = new ImagesService();
|
||||
Currency = new CurrencyService(BotConfig, Db);
|
||||
GoogleApi = new GoogleApiService(Credentials);
|
||||
|
||||
#if GLOBAL_NADEKO
|
||||
Client.Log += Client_Log;
|
||||
#endif
|
||||
@ -90,14 +106,7 @@ namespace NadekoBot
|
||||
|
||||
private void AddServices()
|
||||
{
|
||||
var googleApiService = new GoogleApiService(Credentials);
|
||||
var soundcloudApiService = new SoundCloudApiService(Credentials);
|
||||
var localization = new Localization(BotConfig.Locale, AllGuildConfigs.ToDictionary(x => x.GuildId, x => x.Locale), Db);
|
||||
var strings = new NadekoStrings(localization);
|
||||
var commandHandler = new CommandHandler(Client, Db, BotConfig, AllGuildConfigs, CommandService, Credentials, this);
|
||||
var stats = new StatsService(Client, commandHandler, Credentials);
|
||||
var images = new ImagesService();
|
||||
var currencyService = new CurrencyService(BotConfig, Db);
|
||||
|
||||
//module services
|
||||
//todo 90 - autodiscover, DI, and add instead of manual like this
|
||||
@ -107,11 +116,11 @@ namespace NadekoBot
|
||||
var repeaterService = new MessageRepeaterService(Client, AllGuildConfigs);
|
||||
var converterService = new ConverterService(Db);
|
||||
var commandMapService = new CommandMapService(AllGuildConfigs);
|
||||
var patreonRewardsService = new PatreonRewardsService(Credentials, Db, currencyService);
|
||||
var patreonRewardsService = new PatreonRewardsService(Credentials, Db, Currency);
|
||||
#endregion
|
||||
|
||||
#region permissions
|
||||
var permissionsService = new PermissionService(Db, BotConfig, commandHandler);
|
||||
var permissionsService = new PermissionService(Db, BotConfig, CommandHandler);
|
||||
var blacklistService = new BlacklistService(BotConfig);
|
||||
var cmdcdsService = new CmdCdService(AllGuildConfigs);
|
||||
var filterService = new FilterService(Client, AllGuildConfigs);
|
||||
@ -119,51 +128,51 @@ namespace NadekoBot
|
||||
#endregion
|
||||
|
||||
#region Searches
|
||||
var searchesService = new SearchesService(Client, googleApiService, Db);
|
||||
var streamNotificationService = new StreamNotificationService(Db, Client, strings);
|
||||
var searchesService = new SearchesService(Client, GoogleApi, Db);
|
||||
var streamNotificationService = new StreamNotificationService(Db, Client, Strings);
|
||||
#endregion
|
||||
|
||||
var clashService = new ClashOfClansService(Client, Db, localization, strings);
|
||||
var musicService = new MusicService(googleApiService, strings, localization, Db, soundcloudApiService, Credentials, AllGuildConfigs);
|
||||
var crService = new CustomReactionsService(permissionsService, Db, Client, commandHandler);
|
||||
var clashService = new ClashOfClansService(Client, Db, Localization, Strings);
|
||||
var musicService = new MusicService(GoogleApi, Strings, Localization, Db, soundcloudApiService, Credentials, AllGuildConfigs);
|
||||
var crService = new CustomReactionsService(permissionsService, Db, Client, CommandHandler);
|
||||
var helpService = new HelpService(BotConfig);
|
||||
|
||||
#region Games
|
||||
var gamesService = new GamesService(Client, BotConfig, AllGuildConfigs, strings, images, commandHandler);
|
||||
var chatterBotService = new ChatterBotService(Client, permissionsService, AllGuildConfigs, commandHandler);
|
||||
var pollService = new PollService(Client, strings);
|
||||
var gamesService = new GamesService(Client, BotConfig, AllGuildConfigs, Strings, Images, CommandHandler);
|
||||
var chatterBotService = new ChatterBotService(Client, permissionsService, AllGuildConfigs, CommandHandler);
|
||||
var pollService = new PollService(Client, Strings);
|
||||
#endregion
|
||||
|
||||
#region administration
|
||||
var administrationService = new AdministrationService(AllGuildConfigs, commandHandler);
|
||||
var administrationService = new AdministrationService(AllGuildConfigs, CommandHandler);
|
||||
var greetSettingsService = new GreetSettingsService(Client, AllGuildConfigs, Db);
|
||||
var selfService = new SelfService(Client, this, commandHandler, Db, BotConfig, localization, strings, Credentials);
|
||||
var selfService = new SelfService(Client, this, CommandHandler, Db, BotConfig, Localization, Strings, Credentials);
|
||||
var vcRoleService = new VcRoleService(Client, AllGuildConfigs, Db);
|
||||
var vPlusTService = new VplusTService(Client, AllGuildConfigs, strings, Db);
|
||||
var vPlusTService = new VplusTService(Client, AllGuildConfigs, Strings, Db);
|
||||
var muteService = new MuteService(Client, AllGuildConfigs, Db);
|
||||
var ratelimitService = new SlowmodeService(Client, AllGuildConfigs);
|
||||
var protectionService = new ProtectionService(Client, AllGuildConfigs, muteService);
|
||||
var playingRotateService = new PlayingRotateService(Client, BotConfig, musicService);
|
||||
var gameVcService = new GameVoiceChannelService(Client, Db, AllGuildConfigs);
|
||||
var autoAssignRoleService = new AutoAssignRoleService(Client, AllGuildConfigs);
|
||||
var logCommandService = new LogCommandService(Client, strings, AllGuildConfigs, Db, muteService, protectionService);
|
||||
var logCommandService = new LogCommandService(Client, Strings, AllGuildConfigs, Db, muteService, protectionService);
|
||||
#endregion
|
||||
|
||||
|
||||
//initialize Services
|
||||
Services = new NServiceProvider.ServiceProviderBuilder()
|
||||
.Add<ILocalization>(localization)
|
||||
.Add<IStatsService>(stats)
|
||||
.Add<IImagesService>(images)
|
||||
.Add<IGoogleApiService>(googleApiService)
|
||||
.Add<IStatsService>(stats)
|
||||
.Add<ILocalization>(Localization)
|
||||
.Add<IStatsService>(Stats)
|
||||
.Add<IImagesService>(Images)
|
||||
.Add<IGoogleApiService>(GoogleApi)
|
||||
.Add<IStatsService>(Stats)
|
||||
.Add<IBotCredentials>(Credentials)
|
||||
.Add<CommandService>(CommandService)
|
||||
.Add<NadekoStrings>(strings)
|
||||
.Add<NadekoStrings>(Strings)
|
||||
.Add<DiscordShardedClient>(Client)
|
||||
.Add<BotConfig>(BotConfig)
|
||||
.Add<CurrencyService>(currencyService)
|
||||
.Add<CommandHandler>(commandHandler)
|
||||
.Add<CurrencyService>(Currency)
|
||||
.Add<CommandHandler>(CommandHandler)
|
||||
.Add<DbService>(Db)
|
||||
//modules
|
||||
.Add(crossServerTextService)
|
||||
@ -199,12 +208,12 @@ namespace NadekoBot
|
||||
.Add(globalPermsService)
|
||||
.Build();
|
||||
|
||||
commandHandler.AddServices(Services);
|
||||
CommandHandler.AddServices(Services);
|
||||
|
||||
//setup typereaders
|
||||
CommandService.AddTypeReader<PermissionAction>(new PermissionActionTypeReader());
|
||||
CommandService.AddTypeReader<CommandInfo>(new CommandTypeReader(CommandService, commandHandler));
|
||||
CommandService.AddTypeReader<CommandOrCrInfo>(new CommandOrCrTypeReader(crService, CommandService, commandHandler));
|
||||
CommandService.AddTypeReader<CommandInfo>(new CommandTypeReader(CommandService, CommandHandler));
|
||||
CommandService.AddTypeReader<CommandOrCrInfo>(new CommandOrCrTypeReader(crService, CommandService, CommandHandler));
|
||||
CommandService.AddTypeReader<ModuleInfo>(new ModuleTypeReader(CommandService));
|
||||
CommandService.AddTypeReader<ModuleOrCrInfo>(new ModuleOrCrTypeReader(CommandService));
|
||||
CommandService.AddTypeReader<IGuild>(new GuildTypeReader(Client));
|
||||
|
Reference in New Issue
Block a user