package net.minecraft.world.chunk.storage; import java.io.File; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.WorldProvider; import net.minecraft.world.WorldProviderEnd; import net.minecraft.world.WorldProviderHell; import net.minecraft.world.storage.SaveHandler; import net.minecraft.world.storage.ThreadedFileIOBase; import net.minecraft.world.storage.WorldInfo; public class AnvilSaveHandler extends SaveHandler { private static final String __OBFID = "CL_00000581"; public AnvilSaveHandler(File p_i2142_1_, String p_i2142_2_, boolean p_i2142_3_) { super(p_i2142_1_, p_i2142_2_, p_i2142_3_); } /** * initializes and returns the chunk loader for the specified world provider */ public IChunkLoader getChunkLoader(WorldProvider p_75763_1_) { File var2 = this.getWorldDirectory(); File var3; if (p_75763_1_ instanceof WorldProviderHell) { var3 = new File(var2, "DIM-1"); var3.mkdirs(); return new AnvilChunkLoader(var3); } else if (p_75763_1_ instanceof WorldProviderEnd) { var3 = new File(var2, "DIM1"); var3.mkdirs(); return new AnvilChunkLoader(var3); } else { return new AnvilChunkLoader(var2); } } /** * Saves the given World Info with the given NBTTagCompound as the Player. */ public void saveWorldInfoWithPlayer(WorldInfo p_75755_1_, NBTTagCompound p_75755_2_) { p_75755_1_.setSaveVersion(19133); super.saveWorldInfoWithPlayer(p_75755_1_, p_75755_2_); } /** * Called to flush all changes to disk, waiting for them to complete. */ public void flush() { try { ThreadedFileIOBase.func_178779_a().waitForFinish(); } catch (InterruptedException var2) { var2.printStackTrace(); } RegionFileCache.clearRegionFileReferences(); } }