001 package net.minecraft.world.chunk.storage; 002 003 import java.io.File; 004 import net.minecraft.nbt.NBTTagCompound; 005 import net.minecraft.world.WorldProvider; 006 import net.minecraft.world.WorldProviderEnd; 007 import net.minecraft.world.WorldProviderHell; 008 import net.minecraft.world.storage.SaveHandler; 009 import net.minecraft.world.storage.ThreadedFileIOBase; 010 import net.minecraft.world.storage.WorldInfo; 011 012 public class AnvilSaveHandler extends SaveHandler 013 { 014 public AnvilSaveHandler(File par1File, String par2Str, boolean par3) 015 { 016 super(par1File, par2Str, par3); 017 } 018 019 /** 020 * Returns the chunk loader with the provided world provider 021 */ 022 public IChunkLoader getChunkLoader(WorldProvider par1WorldProvider) 023 { 024 File var2 = this.getSaveDirectory(); 025 File var3; 026 027 if (par1WorldProvider.getSaveFolder() != null) 028 { 029 var3 = new File(var2, par1WorldProvider.getSaveFolder()); 030 var3.mkdirs(); 031 return new AnvilChunkLoader(var3); 032 } 033 else 034 { 035 return new AnvilChunkLoader(var2); 036 } 037 } 038 039 /** 040 * Saves the given World Info with the given NBTTagCompound as the Player. 041 */ 042 public void saveWorldInfoWithPlayer(WorldInfo par1WorldInfo, NBTTagCompound par2NBTTagCompound) 043 { 044 par1WorldInfo.setSaveVersion(19133); 045 super.saveWorldInfoWithPlayer(par1WorldInfo, par2NBTTagCompound); 046 } 047 048 /** 049 * Called to flush all changes to disk, waiting for them to complete. 050 */ 051 public void flush() 052 { 053 try 054 { 055 ThreadedFileIOBase.threadedIOInstance.waitForFinish(); 056 } 057 catch (InterruptedException var2) 058 { 059 var2.printStackTrace(); 060 } 061 062 RegionFileCache.clearRegionFileReferences(); 063 } 064 }