public async Task TimersCommand() { if (!SettingsManager.Settings.Config.ModuleTimers) { await APIHelper.DiscordAPI.ReplyMessageAsync(Context, LM.Get("timersModuleDisabled"), true); return; } if (!await APIHelper.DiscordAPI.IsBotPrivateChannel(Context.Channel)) { await APIHelper.DiscordAPI.ReplyMessageAsync(Context, LM.Get("onyBotPrivateCommand"), true); return; } if (await APIHelper.DiscordAPI.IsAdminAccess(Context) == null) { var timers = await TimersModule.GetUpcomingTimersString(); await APIHelper.DiscordAPI.ReplyMessageAsync(Context, $"```\n{timers}\n```", true); return; } var allys = SettingsManager.Settings.TimersModule.AccessList.Values.Where(a => a.IsAlliance && a.Id > 0).Select(a => a.Id); var corps = SettingsManager.Settings.TimersModule.AccessList.Values.Where(a => a.IsCorporation && a.Id > 0).Select(a => a.Id); var chars = SettingsManager.Settings.TimersModule.AccessList.Values.Where(a => a.IsCharacter && a.Id > 0).Select(a => a.Id); var skip = !allys.Any() && !corps.Any() && !chars.Any(); var dataList = (await SQLHelper.GetAuthUser(Context.User.Id))?.FirstOrDefault(); if (skip || (dataList != null && dataList.Count > 0 && dataList.ContainsKey("characterID"))) { var chId = Convert.ToInt64(dataList["characterID"]); var ch = await APIHelper.ESIAPI.GetCharacterData("Discord", chId, true); if (skip || ch != null) { if (!skip && (!ch.alliance_id.HasValue || !allys.Contains(ch.alliance_id.Value) && !corps.Contains(ch.corporation_id) && !chars.Contains((int)chId))) { await APIHelper.DiscordAPI.ReplyMessageAsync(Context, LM.Get("timersCmdAccessDenied"), true); return; } var timers = await TimersModule.GetUpcomingTimersString(); await APIHelper.DiscordAPI.ReplyMessageAsync(Context, $"```\n{timers}\n```", true); return; } } await APIHelper.DiscordAPI.ReplyMessageAsync(Context, LM.Get("timersCmdAccessDenied"), true); }
public static async Task ReadyAsync() { // TODO: better checking of whether its the first time ready handler is called. if (DataManager.AllGuildData.Count == 0) { await DataManager.LoadGuildDataFromFileAsync(); // TODO: This timer stuff needs to be moved out of here. ServerIconModule.InitializeAllTimers(); TimersModule.InitializeAllTimers(); Client.ReactionAdded += ReactionAddedAsync; Client.ReactionRemoved += ReactionRemovedAsync; Client.MessageReceived += MessageRecievedAsync; Client.MessageDeleted += MessageDeletedAsync; Client.JoinedGuild += JoinedGuildAsync; Client.LeftGuild += LeftGuildAsync; Client.ButtonExecuted += ButtonExecutedAsync; } }