Beispiel #1
0
        static async Task AsyncMain()
        {
            _coreLogger.Info("Starting up bot");

            _coreLogger.Info("Reading Config");
            var config = CoreConfig.ReadConfig();

            var client = new DiscordSocketClient();

            client.Log += logging;

            _coreLogger.Info("Initializing Service Manager");
            var serviceDepMap = new ServiceDependencyMap(client);

            _coreLogger.Info("Initializing Command Handler");
            var cmdHandler = new CommandHandler(client, config.Prefix, config.OwnerIds, serviceDepMap);
            await cmdHandler.AddAllCommands();

            _coreLogger.Info("Beginning Login and Connection to Discord");
            await client.LoginAsync(TokenType.Bot, config.Token);

            await client.StartAsync();

            cmdHandler.StartListening();

            await Task.Delay(-1);
        }
 public static void SetDependencyMap(ServiceDependencyMap dependencyMap)
 {
     if (DepMap == null)
     {
         DepMap = dependencyMap;
     }
 }
Beispiel #3
0
        public CommandHandler(DiscordSocketClient client, string prefix, ulong[] ownerIds, ServiceDependencyMap dependencyMap)
        {
            _client        = client;
            _prefix        = prefix;
            _ownerIds      = ownerIds;
            _dependencyMap = dependencyMap;

            _commandService = new CommandService(new CommandServiceConfig()
            {
                // Private bots wouldn't really benefit from running Mixed or Async. Sync is recommended.
                DefaultRunMode        = RunMode.Sync,
                CaseSensitiveCommands = false
            });

            ExtendedModuleBase.SetDependencyMap(dependencyMap);

            _client.MessageReceived += handler;
        }