Example #1
0
        /// <summary>
        /// ボットの起動処理
        /// </summary>
        /// <returns></returns>
        public async Task MainAsync()
        {
            var jsonSettingData = new JsonDataManager(ConfigPath);

            m_config = new DiscordSocketConfig
            {
                MessageCacheSize = 10
            };

            var initialize = new BotInitialize();

            initialize.UpdateRediveDatabase();

            m_client = new DiscordSocketClient(m_config);
            m_client.MessageReceived        += CommandRecieved;
            m_client.GuildMembersDownloaded += GuildMembersDownloaded;
            m_client.UserLeft           += UserLeft;
            m_client.GuildMemberUpdated += GuildMemberUpdated;
            m_client.ReactionAdded      += ReactionAdded;
            m_client.Log += Log;

            var commands = new CommandService();
            var services = new ServiceCollection().BuildServiceProvider();

            await commands.AddModulesAsync(Assembly.GetEntryAssembly(), services);

            await m_client.LoginAsync(TokenType.Bot, jsonSettingData.Token);

            await m_client.StartAsync();

            await RefreshInUpdateDate();

            await Task.Delay(-1);
        }
Example #2
0
        private async Task RefreshInUpdateDate()
        {
            DateTime nowDateTime;
            TimeSpan nowTime;
            TimeSpan updateTimeSpan;

            var initialize = new BotInitialize();
            var updateTime = new TimeSpan(5, 0, 0);

            while (true)
            {
                nowDateTime = DateTime.Now;
                nowTime     = nowDateTime.TimeOfDay;

                if (updateTime - nowTime < new TimeSpan(0, 0, 0))
                {
                    updateTimeSpan = updateTime - nowTime + new TimeSpan(1, 0, 0, 0);
                }
                else
                {
                    updateTimeSpan = updateTime - nowTime;
                }

                await Task.Run(() => Thread.Sleep(updateTimeSpan));

                initialize.UpdateRediveDatabase();
                ;
            }
        }