001 package net.minecraftforge.common;
002
003 import java.io.File;
004
005 import net.minecraft.world.chunk.storage.IChunkLoader;
006 import net.minecraft.world.storage.IPlayerFileData;
007 import net.minecraft.world.storage.ISaveHandler;
008 import net.minecraft.world.MinecraftException;
009 import net.minecraft.nbt.NBTTagCompound;
010 import net.minecraft.world.storage.WorldInfo;
011 import net.minecraft.world.WorldProvider;
012 import net.minecraft.world.WorldServer;
013
014 //Class used internally to provide the world specific data directories.
015
016 public class WorldSpecificSaveHandler implements ISaveHandler
017 {
018 private WorldServer world;
019 private ISaveHandler parent;
020 private File dataDir;
021
022 public WorldSpecificSaveHandler(WorldServer world, ISaveHandler parent)
023 {
024 this.world = world;
025 this.parent = parent;
026 dataDir = new File(world.getChunkSaveLocation(), "data");
027 dataDir.mkdirs();
028 }
029
030 @Override public WorldInfo loadWorldInfo() { return parent.loadWorldInfo(); }
031 @Override public void checkSessionLock() throws MinecraftException { parent.checkSessionLock(); }
032 @Override public IChunkLoader getChunkLoader(WorldProvider var1) { return parent.getChunkLoader(var1); }
033 @Override public void saveWorldInfoWithPlayer(WorldInfo var1, NBTTagCompound var2) { parent.saveWorldInfoWithPlayer(var1, var2); }
034 @Override public void saveWorldInfo(WorldInfo var1){ parent.saveWorldInfo(var1); }
035 @Override public IPlayerFileData getSaveHandler() { return parent.getSaveHandler(); }
036 @Override public void flush() { parent.flush(); }
037 @Override public String getSaveDirectoryName() { return parent.getSaveDirectoryName(); }
038
039 @Override
040 public File getMapFileFromName(String name)
041 {
042 return new File(dataDir, name + ".dat");
043 }
044 }