Beispiel #1
0
        public async Task Disable([Name("카테고리")] string category)
        {
            if (!CategoryNames.Contains(category))
            {
                await Context.MsgReplyEmbedAsync($"알 수 없는 카테고리에요\n{string.Join(", ", CategoryNames.Select(c => $"`{c}`"))} 중 하나를 선택할 수 있어요");

                return;
            }

            OliveGuild.GuildSetting setting = OliveGuild.Get(Context.Guild.Id).Setting;
            CategoryType            cat     = StringToCategory(category);

            if (cat == CategoryType.Setting)
            {
                await Context.MsgReplyEmbedAsync($"비활성화 할 수 없는 카테고리에요");

                return;
            }

            if (!setting.EnabledCategories.Contains(cat))
            {
                await Context.MsgReplyEmbedAsync($"이미 비활성화돼있는 카테고리에요");

                return;
            }

            setting.EnabledCategories.Remove(cat);
            OliveGuild.Set(Context.Guild.Id, g => g.Setting, setting);

            await Context.MsgReplyEmbedAsync($"{category} 카테고리를 비활성화했어요");
        }
Beispiel #2
0
        public override Task <bool> ExecuteCheckAsync(CommandContext ctx, bool help)
        {
            if (ctx.Guild == null || ctx.Member == null)
            {
                return(Task.FromResult(false));
            }

            bool contains = CategoryNames.Contains(ctx.Channel.Parent.Name, StringComparer.OrdinalIgnoreCase);

            return(CheckMode switch
            {
                ChannelCheckMode.Any => Task.FromResult(contains),
                ChannelCheckMode.None => Task.FromResult(!contains),
                _ => Task.FromResult(false),
            });