Пример #1
0
        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);
        }
Пример #2
0
        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;
            }
        }