Auto-move old save data to new location

This commit is contained in:
s809
2025-02-02 15:38:01 +05:00
parent f02ea68b6f
commit 5e137ee10d
5 changed files with 31 additions and 1 deletions
@@ -106,6 +106,19 @@ public class ClientOnlySaveStructure implements ISaveStructure
});
}
@Override
public File getPre23SaveFolder(ILevelWrapper levelWrapper)
{
// Allow API users to override the save folder
IDhApiSaveStructure saveStructureOverride = OverrideInjector.INSTANCE.get(IDhApiSaveStructure.class);
if (saveStructureOverride != null)
{
return this.getSaveFolder(levelWrapper);
}
return getSaveFolderByLevelId(levelWrapper.getDimensionType().getName());
}
//================//
@@ -34,5 +34,7 @@ public interface ISaveStructure extends AutoCloseable
*/
File getSaveFolder(ILevelWrapper levelWrapper);
File getPre23SaveFolder(ILevelWrapper levelWrapper);
}
@@ -75,6 +75,8 @@ public class LocalSaveStructure implements ISaveStructure
});
}
@Override
public File getPre23SaveFolder(ILevelWrapper levelWrapper) { return this.getSaveFolder(levelWrapper); }
//==================//
@@ -98,10 +98,21 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel
{ this(saveStructure, clientLevelWrapper, null, true, networkState); }
public DhClientLevel(ISaveStructure saveStructure, IClientLevelWrapper clientLevelWrapper, @Nullable File fullDataSaveDirOverride, boolean enableRendering, @Nullable ClientNetworkState networkState)
{
if (saveStructure.getSaveFolder(clientLevelWrapper).mkdirs())
File saveFolder = saveStructure.getSaveFolder(clientLevelWrapper);
File pre23Folder = saveStructure.getPre23SaveFolder(clientLevelWrapper);
if (pre23Folder.exists())
{
if (!pre23Folder.renameTo(saveFolder))
{
throw new RuntimeException("Could not move old save data folder: " + pre23Folder.getAbsolutePath() + " to " + saveFolder.getAbsolutePath());
}
}
else if (saveStructure.getSaveFolder(clientLevelWrapper).mkdirs())
{
LOGGER.warn("unable to create data folder.");
}
this.levelWrapper = clientLevelWrapper;
this.levelWrapper.setParentLevel(this);
this.saveStructure = saveStructure;
@@ -27,6 +27,8 @@ public interface IDimensionTypeWrapper extends IDhApiDimensionTypeWrapper, IBind
@Override
boolean hasCeiling();
String getName();
@Override
boolean hasSkyLight();