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} 카테고리를 비활성화했어요"); }
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), });