Check if save folder exists for better error messages

This commit is contained in:
James Seibel
2026-06-08 07:15:44 -05:00
parent a6e94c39a7
commit ea4375b215
5 changed files with 17 additions and 8 deletions
@@ -28,6 +28,7 @@ import com.seibel.distanthorizons.core.wrapperInterfaces.world.IServerLevelWrapp
import com.seibel.distanthorizons.core.logging.DhLogger;
import org.jetbrains.annotations.NotNull;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
@@ -70,9 +71,11 @@ public abstract class AbstractDhServerLevel extends AbstractDhLevel implements I
boolean runRepoReliantSetup
) throws SQLException, IOException
{
if (saveStructure.getSaveFolder(serverLevelWrapper).mkdirs())
File saveFolder = saveStructure.getSaveFolder(serverLevelWrapper);
saveFolder.mkdirs();
if (!saveFolder.exists())
{
LOGGER.warn("unable to create data folder.");
throw new IOException("unable to create save folder at ["+saveFolder.getPath()+"]. If you're on Windows you may need to enable long file paths.");
}
this.serverLevelWrapper = serverLevelWrapper;
this.serverside = new ServerLevelModule(this, saveStructure);
@@ -115,16 +115,19 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel
File saveFolder = saveStructure.getSaveFolder(clientLevelWrapper);
File pre23Folder = saveStructure.getPre23SaveFolder(clientLevelWrapper);
saveFolder.mkdirs();
if (pre23Folder.exists())
{
if (!pre23Folder.renameTo(saveFolder))
{
throw new RuntimeException("Could not move old save data folder: " + pre23Folder.getAbsolutePath() + " to " + saveFolder.getAbsolutePath());
throw new RuntimeException("Could not move old save data folder: [" + pre23Folder.getAbsolutePath() + "] to [" + saveFolder.getAbsolutePath() + "].");
}
}
else if (saveStructure.getSaveFolder(clientLevelWrapper).mkdirs())
if (!saveFolder.exists())
{
LOGGER.warn("unable to create data folder.");
throw new IOException("unable to create save folder at ["+saveFolder.getPath()+"]. If you're on Windows you may need to enable long file paths.");
}
this.levelWrapper = clientLevelWrapper;
@@ -104,7 +104,8 @@ public class DhClientServerWorld extends AbstractDhServerWorld<DhClientServerLev
ClientApi.INSTANCE.showChatMessageNextFrame(// red text
r + "Distant Horizons: ClientServer level loading failed." + cf + "\n" +
"Unable to load level ["+y+levelWrapper.getDhIdentifier()+cf+"], LODs may not appear. See log for more information.");
"Unable to load level ["+y+levelWrapper.getDhIdentifier()+cf+"], LODs may not appear. See log for more information.\n" +
"");
return null;
}
@@ -152,7 +152,8 @@ public class DhClientWorld extends AbstractDhWorld implements IDhClientWorld
ClientApi.INSTANCE.showChatMessageNextFrame(
r + "Distant Horizons: Client level loading failed." + cf + "\n" +
"Unable to load level ["+y+clientLevelWrapper.getDhIdentifier()+cf+"], LODs may not appear. See log for more information.");
"Unable to load level ["+y+clientLevelWrapper.getDhIdentifier()+cf+"], LODs may not appear. See log for more information. \n" +
"");
return null;
}
@@ -81,7 +81,8 @@ public class DhServerWorld extends AbstractDhServerWorld<DhServerLevel>
ClientApi.INSTANCE.showChatMessageNextFrame(
r + "Distant Horizons: Server level loading failed." + cf + "\n" +
"Unable to load level ["+y+serverLevelWrapper.getDhIdentifier()+cf+"], LODs may not appear. See log for more information.");
"Unable to load level ["+y+serverLevelWrapper.getDhIdentifier()+cf+"], LODs may not appear. See log for more information.\n" +
"");
return null;
}