/// <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); }
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(); ; } }