示例#1
0
        public async Task InstallAsync(DiscordSocketClient discordClient,
                                       CommandService commandService)
        {
            _client         = discordClient;
            _commandService = commandService;
            var server = new Server(_client);

            server.Start();

            var drinkDao = await DrinkDao.CreateAsync();

            _services = new ServiceCollection();

            var messageService = new MessageService(_client);
            var eventService   = new EventService(messageService, new EventDao());

            // Add services to the ServiceCollection
            _services.AddSingleton(await CommentService.Create());
            _services.AddSingleton(new CommandDao());
            _services.AddSingleton(new QuoteService());
            _services.AddSingleton(new WeatherService());
            _services.AddSingleton(new UrbanService());
            _services.AddSingleton(new NHLService());
            _services.AddSingleton(new AromaService(new AromaDao()));
            _services.AddSingleton(new EPClient(BotSettings.Instance.EPAPIKey));
            _services.AddSingleton(messageService);
            _services.AddSingleton(eventService);
            _services.AddSingleton(new WolframService());
            _services.AddSingleton(new StartupTime());
            _services.AddSingleton(new F1Service());
            if (drinkDao != null)
            {
                _services.AddSingleton(drinkDao);
            }
            _oldLinkService      = new OldLinkService();
            _forbiddenMsgService = new ForbiddenMsgService();
            _spammer             = new Spammer();

            JobManager.Initialize(eventService);

            // Build ServiceProvider and add modules
            _serviceProvider = _services.BuildServiceProvider();
            await _commandService.AddModulesAsync(Assembly.GetEntryAssembly(), _serviceProvider);

            _client.MessageReceived += HandleCommandAsync;
            Log.Debug("CommandHandler installed.");
        }
示例#2
0
 public DrinkModule(DrinkDao drinkDao)
 {
     _drinkDao = drinkDao;
 }