summaryrefslogtreecommitdiff
path: root/DiscoBot/DSA_Game/Save/SaveCommand.cs
diff options
context:
space:
mode:
Diffstat (limited to 'DiscoBot/DSA_Game/Save/SaveCommand.cs')
-rw-r--r--DiscoBot/DSA_Game/Save/SaveCommand.cs41
1 files changed, 34 insertions, 7 deletions
diff --git a/DiscoBot/DSA_Game/Save/SaveCommand.cs b/DiscoBot/DSA_Game/Save/SaveCommand.cs
index 310d38a..07bcbac 100644
--- a/DiscoBot/DSA_Game/Save/SaveCommand.cs
+++ b/DiscoBot/DSA_Game/Save/SaveCommand.cs
@@ -15,27 +15,54 @@ namespace DiscoBot.DSA_Game.Save
public class SaveCommand : ModuleBase
{
- [Command("save"), Summary("Save Session")]
- public async Task ReportAsync()
+ [Command("load"), Summary("Load Session")]
+ public async Task LoadSessionAsync([Remainder, Summary("Session Name")] string name = "")
{
-
+ if (name.Equals("?") || name.Equals(string.Empty))
+ {
+ await this.ReplyAsync($"Gespeicherte Sessions:");
+ await this.ReplyAsync(this.ListSessions());
+ return;
+ }
+
+ var path = DSA_Game.Save.Session.DirectoryPath + @"\" + name;
+
+ var files = Directory.GetFiles(path);
+ var session = files.OrderByDescending(x => Convert.ToInt32(x.Split('-').Last().Split('.').First())).First();
+ Dsa.Session = Session.Load(session);
- await this.ReplyAsync($"Dein report wurde hinzugefĆ¼gt");
+ await this.ReplyAsync($"{name} wurde geladen");
}
[Command("save"), Summary("Save Session")]
- public async Task ReportAsync([Remainder, Summary("Session Name")] string name)
+ public async Task SessionSaveAsync([Remainder, Summary("Session Name")] string name = "")
{
- if (name.Equals("?"))
+ if (name.Equals("?") || name.Equals(string.Empty))
{
await this.ReplyAsync($"Gespeicherte Sessions:");
await this.ReplyAsync(this.ListSessions());
+ return;
}
+
+ var path = DSA_Game.Save.Session.DirectoryPath + @"\" + name;
+ if (Directory.Exists(path))
+ {
+ var files = Directory.GetFiles(path);
+ int current = files.Max(x => Convert.ToInt32(x.Split('-').Last().Split('.').First()));
+ Dsa.Session.Save(path + "\\" + name + $"-{++current}.json");
+ }
+ else
+ {
+ Directory.CreateDirectory(path);
+ Dsa.Session.Save(path + "\\" + name + $"-0.json");
+ }
+
+ await this.ReplyAsync($"{name} wurde gespeichert");
}
private string[] ListSessions()
{
- return Directory.GetDirectories(@"..\..\sessions");
+ return Directory.GetDirectories(Session.DirectoryPath);
}