public async Task <bool> DeleteDimensionAsync(MinecraftDimension dimension, Server server) { Task <bool> t = new Task <bool>(() => DeleteDimension(dimension, server)); t.Start(); bool result = await t; return(result); }
private bool DeleteDimension(MinecraftDimension dimension, Server server) { DirectoryInfo dimensionDir = GetDimensionFolder(dimension, server); if (!dimensionDir.Exists) { return(true); } DirectoryInfo dimBackups = Directory.CreateDirectory(Path.Combine(App.ServerPath, server.Name, "DimensionBackups")); string timeStamp = DateTime.Now.Day + "-" + DateTime.Now.Month + "-" + DateTime.Now.Year + "_" + DateTime.Now.Hour + "-" + DateTime.Now.Minute; ZipFile.CreateFromDirectory(dimensionDir.FullName, Path.Combine(dimBackups.FullName, dimension + "_" + timeStamp + ".zip")); dimensionDir.Delete(true); return(!dimensionDir.Exists); }
private DirectoryInfo GetDimensionFolder(MinecraftDimension dimension, Server server) { //TODO Select folder of current world... switch (server.Version.Type) { case ServerVersion.VersionType.Vanilla: switch (dimension) { case MinecraftDimension.Nether: return(new DirectoryInfo(Path.Combine(App.ServerPath, server.Name, server.Name, "DIM-1"))); case MinecraftDimension.End: return(new DirectoryInfo( Path.Combine(App.ServerPath, server.Name, server.Name, "DIM1"))); default: throw new ArgumentException("No implementation for deletion of dimension " + dimension + " on Vanilla servers"); } case ServerVersion.VersionType.Paper: switch (dimension) { case MinecraftDimension.Nether: return(new DirectoryInfo(Path.Combine(App.ServerPath, server.Name, server.Name + "_nether"))); case MinecraftDimension.End: return(new DirectoryInfo(Path.Combine(App.ServerPath, server.Name, server.Name + "_the_end"))); default: throw new ArgumentException("No implementation for deletion of dimension " + dimension + " on Paper servers"); } default: throw new ArgumentException("No implementation for deletion of " + server.Version.Type + " dimensions"); } }
private DirectoryInfo GetDimensionFolder(MinecraftDimension dimension, Server server) { string worldFolder = Path.Combine(App.ServerPath, server.Name, server.ServerSettings.LevelName); switch (server.Version.Type) { case ServerVersion.VersionType.Vanilla: switch (dimension) { case MinecraftDimension.Nether: return(new DirectoryInfo(Path.Combine(worldFolder, "DIM-1"))); case MinecraftDimension.End: return(new DirectoryInfo( Path.Combine(worldFolder, "DIM1"))); default: throw new ArgumentException("No implementation for deletion of dimension " + dimension + " on Vanilla servers"); } case ServerVersion.VersionType.Paper: case ServerVersion.VersionType.Spigot: switch (dimension) { case MinecraftDimension.Nether: return(new DirectoryInfo(worldFolder + "_nether")); case MinecraftDimension.End: return(new DirectoryInfo(worldFolder + "_the_end")); default: throw new ArgumentException("No implementation for deletion of dimension " + dimension + " on Paper servers"); } default: throw new ArgumentException("No implementation for deletion of " + server.Version.Type + " dimensions"); } }