public void saveChunk(World worldIn, Chunk chunkIn) throws MinecraftException, IOException { worldIn.checkSessionLock(); try { NBTTagCompound nbttagcompound = new NBTTagCompound(); NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound.setTag("Level", nbttagcompound1); this.writeChunkToNBT(chunkIn, worldIn, nbttagcompound1); this.addChunkToPending(chunkIn.getChunkCoordIntPair(), nbttagcompound); } catch (Exception exception) { logger.error((String)"Failed to save chunk", (Throwable)exception); } }
private void saveChunkData(Chunk p_73242_1_) { if (this.chunkLoader != null) { try { p_73242_1_.setLastSaveTime(this.worldObj.getTotalWorldTime()); this.chunkLoader.saveChunk(this.worldObj, p_73242_1_); } catch (IOException ioexception) { logger.error((String)"Couldn\'t save chunk", (Throwable)ioexception); } catch (MinecraftException minecraftexception) { logger.error((String)"Couldn\'t save chunk; already in use by another instance of Minecraft?", (Throwable)minecraftexception); } } }
/** * Checks the session lock to prevent save collisions */ public void checkSessionLock() throws MinecraftException { try { File file1 = new File(this.worldDirectory, "session.lock"); DataInputStream datainputstream = new DataInputStream(new FileInputStream(file1)); try { if (datainputstream.readLong() != this.initializationTime) { throw new MinecraftException("The save is being accessed from another location, aborting"); } } finally { datainputstream.close(); } } catch (IOException var7) { throw new MinecraftException("Failed to check session lock, aborting"); } }
/** * par1 indicates if a log message should be output. */ protected void saveAllWorlds(boolean dontLog) { if (!this.worldIsBeingDeleted) { for (WorldServer worldserver : this.worldServers) { if (worldserver != null) { if (!dontLog) { logger.info("Saving chunks for level \'" + worldserver.getWorldInfo().getWorldName() + "\'/" + worldserver.provider.getDimensionName()); } try { worldserver.saveAllChunks(true, (IProgressUpdate)null); } catch (MinecraftException minecraftexception) { logger.warn(minecraftexception.getMessage()); } } } } }
public void saveChunk(World worldIn, Chunk chunkIn) throws MinecraftException, IOException { worldIn.checkSessionLock(); try { NBTTagCompound nbttagcompound = new NBTTagCompound(); NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound.setTag("Level", nbttagcompound1); nbttagcompound.setInteger("DataVersion", 922); this.writeChunkToNBT(chunkIn, worldIn, nbttagcompound1); this.addChunkToPending(chunkIn.getChunkCoordIntPair(), nbttagcompound); } catch (Exception exception) { LOGGER.error((String)"Failed to save chunk", (Throwable)exception); } }
private void saveChunkData(Chunk chunkIn) { try { chunkIn.setLastSaveTime(this.worldObj.getTotalWorldTime()); this.chunkLoader.saveChunk(this.worldObj, chunkIn); } catch (IOException ioexception) { LOGGER.error((String)"Couldn\'t save chunk", (Throwable)ioexception); } catch (MinecraftException minecraftexception) { LOGGER.error((String)"Couldn\'t save chunk; already in use by another instance of Minecraft?", (Throwable)minecraftexception); } }
/** * par1 indicates if a log message should be output. */ public void saveAllWorlds(boolean isSilent) { for (WorldServer worldserver : this.worldServers) { if (worldserver != null) { if (!isSilent) { LOG.info("Saving chunks for level \'{}\'/{}", new Object[] {worldserver.getWorldInfo().getWorldName(), worldserver.provider.getDimensionType().getName()}); } try { worldserver.saveAllChunks(true, (IProgressUpdate)null); } catch (MinecraftException minecraftexception) { LOG.warn(minecraftexception.getMessage()); } } } }
public void saveChunk(World worldIn, Chunk chunkIn) throws MinecraftException, IOException { worldIn.checkSessionLock(); try { NBTTagCompound nbttagcompound = new NBTTagCompound(); NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound.setTag("Level", nbttagcompound1); nbttagcompound.setInteger("DataVersion", 512); this.writeChunkToNBT(chunkIn, worldIn, nbttagcompound1); net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.event.world.ChunkDataEvent.Save(chunkIn, nbttagcompound)); this.addChunkToPending(chunkIn.getChunkCoordIntPair(), nbttagcompound); } catch (Exception exception) { LOGGER.error((String)"Failed to save chunk", (Throwable)exception); } }
/** * Checks the session lock to prevent save collisions */ public void checkSessionLock() throws MinecraftException { try { File file1 = new File(this.worldDirectory, "session.lock"); DataInputStream datainputstream = new DataInputStream(new FileInputStream(file1)); try { if (datainputstream.readLong() != this.initializationTime) { throw new MinecraftException("The save is being accessed from another location, aborting"); } } finally { datainputstream.close(); } } catch (IOException ioexception) { throw new MinecraftException("Failed to check session lock, aborting"); } }
private static void saveChunkData(ChunkProviderServer chunkProviderServer, Chunk chunkIn) { try { chunkIn.setLastSaveTime(chunkIn.getWorld().getTotalWorldTime()); chunkProviderServer.chunkLoader.saveChunk(chunkIn.getWorld(), chunkIn); } catch (IOException ioexception) { //LOGGER.error((String)"Couldn\'t save chunk", (Throwable)ioexception); } catch (MinecraftException minecraftexception) { //LOGGER.error((String)"Couldn\'t save chunk; already in use by another instance of Minecraft?", (Throwable)minecraftexception); } try { chunkProviderServer.chunkLoader.saveExtraChunkData(chunkIn.getWorld(), chunkIn); } catch (Exception exception) { //LOGGER.error((String)"Couldn\'t save entities", (Throwable)exception); } }
/** * Saves all chunks to disk while updating progress bar. */ public void saveAllChunks(final boolean saveAll, final IProgressUpdate progress) throws MinecraftException { if (this.chunkProvider.canSave()) { if (progress != null) { progress.displayProgressMessage("Saving level"); } this.saveLevel(); if (progress != null) { progress.resetProgresAndWorkingMessage("Saving chunks"); } this.chunkProvider.saveChunks(saveAll, progress); MinecraftForge.EVENT_BUS.post(new WorldEvent.Save(this)); for (final Chunk chunk : this.theChunkProviderServer.func_152380_a()) { if (chunk != null && !this.thePlayerManager.func_152621_a(chunk.xPosition, chunk.zPosition)) { this.theChunkProviderServer.unloadChunksIfNotNearSpawn(chunk.xPosition, chunk.zPosition); } } } }
public void saveChunk(final World world, final Chunk chunk) throws MinecraftException, IOException { try { final NBTTagCompound nbt1 = new NBTTagCompound(); final NBTTagCompound nbt2 = new NBTTagCompound(); nbt1.setTag("Level", nbt2); // This will generate the chunk into an NBTTagCompound. Compression // doesn't occur until IO. writeChunkToNBT(chunk, world, nbt2); MinecraftForge.EVENT_BUS.post(new ChunkDataEvent.Save(chunk, nbt1)); // Put the write onto the pending list and queue // up an IO request. final ChunkCoordIntPair coords = chunk.getChunkCoordIntPair(); pendingIO.put(coords, nbt1); ThreadedFileIOBase.getThreadedIOInstance().queue(new WriteChunkStream(coords)); } catch (final Exception exception) { exception.printStackTrace(); } }
public void saveChunk(World par1World, Chunk par2Chunk) throws MinecraftException, IOException { par1World.checkSessionLock(); try { NBTTagCompound var3 = new NBTTagCompound(); NBTTagCompound var4 = new NBTTagCompound(); var3.setTag("Level", var4); this.writeChunkToNBT(par2Chunk, par1World, var4); this.addChunkToPending(par2Chunk.getChunkCoordIntPair(), var3); } catch (Exception var5) { var5.printStackTrace(); } }
/** * used by saveChunks, but catches any exceptions if the save fails. */ private void safeSaveChunk(Chunk par1Chunk) { if (this.currentChunkLoader != null) { try { par1Chunk.lastSaveTime = this.worldObj.getTotalWorldTime(); this.currentChunkLoader.saveChunk(this.worldObj, par1Chunk); } catch (IOException var3) { logger.error("Couldn\'t save chunk", var3); } catch (MinecraftException var4) { logger.error("Couldn\'t save chunk; already in use by another instance of Minecraft?", var4); } } }
/** * Checks the session lock to prevent save collisions */ public void checkSessionLock() throws MinecraftException { try { File var1 = new File(this.worldDirectory, "session.lock"); DataInputStream var2 = new DataInputStream(new FileInputStream(var1)); try { if (var2.readLong() != this.initializationTime) { throw new MinecraftException("The save is being accessed from another location, aborting"); } } finally { var2.close(); } } catch (IOException var7) { throw new MinecraftException("Failed to check session lock, aborting"); } }
/** * @author jamierocks - 25th October 2016 * @reason Disable vanilla ChunkGC */ @Overwrite public void saveAllChunks(boolean p_73044_1_, IProgressUpdate progressCallback) throws MinecraftException { if (this.chunkProvider.canSave()) { if (progressCallback != null) { progressCallback.displaySavingString("Saving level"); } this.saveLevel(); if (progressCallback != null) { progressCallback.displayLoadingString("Saving chunks"); } this.chunkProvider.saveChunks(p_73044_1_, progressCallback); // Neptune - Disable vanilla ChunkGC // for (net.minecraft.world.chunk.Chunk chunk : Lists.newArrayList(this.theChunkProviderServer.func_152380_a())) { // if (chunk != null && !this.thePlayerManager.hasPlayerInstance(chunk.xPosition, chunk.zPosition)) { // this.theChunkProviderServer.dropChunk(chunk.xPosition, chunk.zPosition); // } // } // Neptune - end } }
public static void stopIntegratedServer() { if (theMinecraft != null) { IntegratedServer integratedserver = theMinecraft.getIntegratedServer(); if (integratedserver != null) { try { integratedserver.stopServer(); } catch (MinecraftException e) { e.printStackTrace(); } } } }
public void saveChunk(World p_75816_1_, Chunk p_75816_2_) throws MinecraftException, IOException { p_75816_1_.checkSessionLock(); try { NBTTagCompound nbttagcompound = new NBTTagCompound(); NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound.setTag("Level", nbttagcompound1); this.writeChunkToNBT(p_75816_2_, p_75816_1_, nbttagcompound1); MinecraftForge.EVENT_BUS.post(new ChunkDataEvent.Save(p_75816_2_, nbttagcompound)); this.addChunkToPending(p_75816_2_.getChunkCoordIntPair(), nbttagcompound); } catch (Exception exception) { exception.printStackTrace(); } }
private void safeSaveChunk(Chunk p_73242_1_) { if (this.currentChunkLoader != null) { try { p_73242_1_.lastSaveTime = this.worldObj.getTotalWorldTime(); this.currentChunkLoader.saveChunk(this.worldObj, p_73242_1_); } catch (IOException ioexception) { logger.error("Couldn\'t save chunk", ioexception); } catch (MinecraftException minecraftexception) { logger.error("Couldn\'t save chunk; already in use by another instance of Minecraft?", minecraftexception); } } }
public void checkSessionLock() throws MinecraftException { try { File file1 = new File(this.worldDirectory, "session.lock"); DataInputStream datainputstream = new DataInputStream(new FileInputStream(file1)); try { if (datainputstream.readLong() != this.initializationTime) { throw new MinecraftException("The save is being accessed from another location, aborting"); } } finally { datainputstream.close(); } } catch (IOException ioexception) { throw new MinecraftException("Failed to check session lock, aborting"); } }
public void func_75762_c() throws MinecraftException { try { File var1 = new File(this.field_75770_b, "session.lock"); DataInputStream var2 = new DataInputStream(new FileInputStream(var1)); try { if(var2.readLong() != this.field_75769_e) { throw new MinecraftException("The save is being accessed from another location, aborting"); } } finally { var2.close(); } } catch (IOException var7) { throw new MinecraftException("Failed to check session lock, aborting"); } }
protected void func_71267_a(boolean p_71267_1_) { if(!this.field_71290_O) { WorldServer[] var2 = this.field_71305_c; int var3 = var2.length; for(int var4 = 0; var4 < var3; ++var4) { WorldServer var5 = var2[var4]; if(var5 != null) { if(!p_71267_1_) { this.func_98033_al().func_98233_a("Saving chunks for level \'" + var5.func_72912_H().func_76065_j() + "\'/" + var5.field_73011_w.func_80007_l()); } try { var5.func_73044_a(true, (IProgressUpdate)null); } catch (MinecraftException var7) { this.func_98033_al().func_98236_b(var7.getMessage()); } } } } }
public void saveChunk(World par1World, Chunk par2Chunk) throws MinecraftException, IOException { par1World.checkSessionLock(); try { NBTTagCompound nbttagcompound = new NBTTagCompound(); NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound.setTag("Level", nbttagcompound1); this.writeChunkToNBT(par2Chunk, par1World, nbttagcompound1); MinecraftForge.EVENT_BUS.post(new ChunkDataEvent.Save(par2Chunk, nbttagcompound)); this.addChunkToPending(par2Chunk.getChunkCoordIntPair(), nbttagcompound); } catch (Exception exception) { exception.printStackTrace(); } }
/** * used by saveChunks, but catches any exceptions if the save fails. */ private void safeSaveChunk(Chunk par1Chunk) { if (this.currentChunkLoader != null) { try { par1Chunk.lastSaveTime = this.worldObj.getTotalWorldTime(); this.currentChunkLoader.saveChunk(this.worldObj, par1Chunk); } catch (IOException ioexception) { ioexception.printStackTrace(); } catch (MinecraftException minecraftexception) { minecraftexception.printStackTrace(); } } }