Fix saved data being stored in wrong location.

This commit is contained in:
raoulvdberge
2020-07-14 16:28:09 +02:00
parent d2cf8667eb
commit e353ec252d
2 changed files with 13 additions and 4 deletions

View File

@@ -70,36 +70,44 @@ public class SaveDataManager {
if (saveData.isMarkedForSaving()) {
CompoundNBT nbt = new CompoundNBT();
saveData.write(nbt);
try {
writeTagToFile(world, saveData.getName(), nbt);
} catch (IOException e) {
LOGGER.error("Unable to save " + saveData.getName(), e);
}
}
}
}
saveData.markSaved();
}
}
private File getDataDirectory(ServerWorld world) {
return world.getChunkProvider().getSavedData().folder;
}
private void writeTagToFile(ServerWorld world, String fileName, CompoundNBT nbt) throws IOException {
String dataDirectory = world.getServer().func_240776_a_(new FolderName("data")).toString();
File dataDirectory = getDataDirectory(world);
File backupFile = new File(dataDirectory, fileName + "_backup.dat");
File file = new File(dataDirectory, fileName + ".dat");
if (backupFile.exists()) {
backupFile.delete();
}
CompressedStreamTools.writeCompressed(nbt, new FileOutputStream(backupFile));
if (file.exists()) {
if (!file.delete()) {
throw new IOException("Cannot delete " + file.getAbsolutePath() + " aborting");
throw new IOException("Cannot delete original file " + file.getAbsolutePath() + " to rename the backup file, aborting");
}
}
backupFile.renameTo(file);
}
private CompoundNBT readTagFromFile(ServerWorld world, String fileName) {
String dataDirectory = world.getServer().func_240776_a_(new FolderName("data")).toString();
File dataDirectory = getDataDirectory(world);
File backupFile = new File(dataDirectory, fileName + "_backup.dat");
File file = new File(dataDirectory, fileName + ".dat");

View File

@@ -2,3 +2,4 @@ protected net.minecraft.inventory.container.Container field_75153_a # inventoryI
protected net.minecraft.inventory.container.Container field_75149_d # listeners
protected net.minecraft.client.gui.widget.TextFieldWidget field_146212_n # canLoseFocus
public net.minecraft.client.gui.widget.button.CheckboxButton field_212943_a # checked
public net.minecraft.world.storage.DimensionSavedDataManager field_215759_d # folder