001    package net.minecraft.world.storage;
002    
003    import java.io.File;
004    import net.minecraft.nbt.NBTTagCompound;
005    import net.minecraft.world.MinecraftException;
006    import net.minecraft.world.WorldProvider;
007    import net.minecraft.world.chunk.storage.IChunkLoader;
008    
009    public interface ISaveHandler
010    {
011        /**
012         * Loads and returns the world info
013         */
014        WorldInfo loadWorldInfo();
015    
016        /**
017         * Checks the session lock to prevent save collisions
018         */
019        void checkSessionLock() throws MinecraftException;
020    
021        /**
022         * Returns the chunk loader with the provided world provider
023         */
024        IChunkLoader getChunkLoader(WorldProvider var1);
025    
026        /**
027         * Saves the given World Info with the given NBTTagCompound as the Player.
028         */
029        void saveWorldInfoWithPlayer(WorldInfo var1, NBTTagCompound var2);
030    
031        /**
032         * Saves the passed in world info.
033         */
034        void saveWorldInfo(WorldInfo var1);
035    
036        /**
037         * returns null if no saveHandler is relevent (eg. SMP)
038         */
039        IPlayerFileData getSaveHandler();
040    
041        /**
042         * Called to flush all changes to disk, waiting for them to complete.
043         */
044        void flush();
045    
046        /**
047         * Gets the file location of the given map
048         */
049        File getMapFileFromName(String var1);
050    
051        /**
052         * Returns the name of the directory where world information is saved.
053         */
054        String getSaveDirectoryName();
055    }