diff --git a/src/main/java/com/backsun/lod/handlers/LodDimensionFileHandler.java b/src/main/java/com/backsun/lod/handlers/LodDimensionFileHandler.java
index dbd545f60..1b522a582 100644
--- a/src/main/java/com/backsun/lod/handlers/LodDimensionFileHandler.java
+++ b/src/main/java/com/backsun/lod/handlers/LodDimensionFileHandler.java
@@ -18,7 +18,7 @@ import com.backsun.lod.objects.LodRegion;
* to file.
*
* @author James Seibel
- * @version 05-29-2021
+ * @version 05-31-2021
*/
public class LodDimensionFileHandler
{
@@ -207,7 +207,10 @@ public class LodDimensionFileHandler
/**
* Save a specific region to disk.
- * Note: it will save to the LodDimension that this
+ * Note:
+ * 1. If a file already exists for a newer version
+ * the file won't be written.
+ * 2. This will save to the LodDimension that this
* handler is associated with.
*/
private void saveRegionToDisk(LodRegion region)
@@ -223,9 +226,52 @@ public class LodDimensionFileHandler
{
// make sure the file and folder exists
if (!f.exists())
+ {
+ // the file doesn't exist,
+ // create it and the folder if need be
if(!f.getParentFile().exists())
f.getParentFile().mkdirs();
f.createNewFile();
+ }
+ else
+ {
+ // the file exists, make sure it
+ // is the correct version.
+ // (to make sure we don't overwrite a newer
+ // version file if it exists)
+
+ BufferedReader br = new BufferedReader(new FileReader(f));
+ String s = br.readLine();
+ int fileVersion = LOD_SAVE_FILE_VERSION;
+
+ if(s != null && !s.isEmpty())
+ {
+ // try to get the file version
+ try
+ {
+ fileVersion = Integer.parseInt(s.substring(s.indexOf(' ')).trim());
+ }
+ catch(NumberFormatException | StringIndexOutOfBoundsException e)
+ {
+ // this file doesn't have a correctly formated version
+ // just overwrite the file
+ }
+ }
+ br.close();
+
+ // check if this file can be written to by the file handler
+ if(fileVersion <= LOD_SAVE_FILE_VERSION)
+ {
+ // we are good to continue and overwrite the old file
+ }
+ else //if(fileVersion > LOD_SAVE_FILE_VERSION)
+ {
+ // the file we are reading is a newer version,
+ // don't write anything, we don't want to accidently
+ // delete anything the user may want.
+ return;
+ }
+ }
FileWriter fw = new FileWriter(f);