public async Task AreaOption(string option, string areaname) { //サーバーID等の変数の宣言 string serverfolder = $@"R:\Project\RUMM.warehouse\{Context.Guild.Id}"; string datafolder = $@"{serverfolder}\Data"; string datafolder_area = $@"{datafolder}\Area"; string area_datafolder = $@"{datafolder_area}\{areaname}"; string area_text = $@"{area_datafolder}\{areaname}.txt"; string trimedfolder = $@"{serverfolder}\Trimed"; string trimedfolder_map = $@"{trimedfolder}\TrimedMap"; string completedfolder = $@"{serverfolder}\Completed"; string areafolder = $@"{completedfolder}\AreaMap\{areaname}"; string areafolder_backup = $@"{completedfolder}\AreaMap\{areaname}\{areaname}[Backup]"; string area_completedmap = $@"{areafolder}\{areaname}.png"; string area_completedmap_backup = $@"{areafolder_backup}\{DateTime.Now.ToString("yyyyMMdd")}.png"; switch (option) { case "add": if (!Directory.Exists(area_datafolder)) { Safe.CreateDirectory(area_datafolder); Safe.CreateDirectory(areafolder); Safe.CreateDirectory(areafolder_backup); using (var file = File.Create(area_text)) file.Close(); await Context.Channel.SendSuccessAsync("完了", "エリアを追加したよ!"); } else { await Context.Channel.SendErrorAsync("エラー", "もうすでにこのエリアは追加されているよ!"); } break; case "delete": if (File.Exists(area_text)) { var verification = await Context.Channel.SendVerifyAsync("確認", "本当にこのエリアの情報を削除しても大丈夫?`はい`か`いいえ`で答えてね!"); var answer = await NextMessageAsync(); switch (answer.Content) { case "はい": await Context.Channel.DeleteMessageAsync(verification); break; case "いいえ": await Context.Channel.DeleteMessageAsync(verification); await Context.Channel.SendErrorAsync("エラー", "削除をやめたよ!本当に消したいときは`はい`を答えてね!"); return; default: await Context.Channel.DeleteMessageAsync(verification); await Context.Channel.SendErrorAsync("エラー", "`はい`か`いいえ`で答えてね!"); return; } try { File.Delete(area_completedmap); Directory.Delete(areafolder_backup); Directory.Delete(areafolder); File.Delete(area_text); } catch (Exception) { } await Context.Channel.SendSuccessAsync("完了", $"{areaname}の情報を削除したよ!"); } else { await Context.Channel.SendErrorAsync("エラー", $"そんな名前のエリアはないよ...? \r\n `r.area add {areaname}`でエリアを追加してみよう!"); } break; case "download": //特定のサーバーからこのコマンドが実行されないようにする if (Context.Guild.Id == 725704901652381718) { await Context.Channel.SendErrorAsync("エラー", $"このコマンドは`{Context.Guild.Name}`では使えないよ!"); return; } if (File.Exists(area_text)) { Integrate.Original_Area(area_text, trimedfolder_map, area_completedmap); Integrate.Original_Area(area_text, trimedfolder_map, area_completedmap_backup); await Context.Channel.SendFileAsync(area_completedmap); await Context.Channel.SendSuccessAsync("完了", $"これが{areaname}の地図だよ!"); } else { await Context.Channel.SendErrorAsync("エラー", $"そんな名前のエリアはないよ...? \r\n `r.area add {areaname}`でエリアを追加してみよ!"); } break; //Realm3rd用引数 case "rdownload": if (File.Exists(area_text)) { Integrate.Designed_Realm3rd_Area(area_text, trimedfolder_map, area_completedmap); Integrate.Designed_Realm3rd_Area(area_text, trimedfolder_map, area_completedmap_backup); await Context.Channel.SendFileAsync(area_completedmap); await Context.Channel.SendSuccessAsync("完了", $"これが{areaname}の地図だよ!"); } else { await Context.Channel.SendErrorAsync("エラー", $"そんな名前のエリアはないよ...? \r\n `r.area add {areaname}`でエリアを追加してみよ!"); } break; default: await Context.Channel.SendErrorAsync("エラー", "引数が間違ってるよ!`r.about area`で詳しい使い方を見てね!"); return; } }