From 36d7d767ddfd350b71b3c191a3bd39d416d60063 Mon Sep 17 00:00:00 2001 From: LAX1DUDE Date: Tue, 2 Aug 2022 01:55:42 -0700 Subject: [PATCH] compression speed improvements --- .../net/lax1dude/eaglercraft/sp/EPKCompiler.java | 1 - .../lax1dude/eaglercraft/sp/VFSChunkLoader.java | 2 +- .../net/minecraft/src/CompressedStreamTools.java | 14 ++++++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/sp-server/src/main/java/net/lax1dude/eaglercraft/sp/EPKCompiler.java b/sp-server/src/main/java/net/lax1dude/eaglercraft/sp/EPKCompiler.java index df65b29..3449ed8 100644 --- a/sp-server/src/main/java/net/lax1dude/eaglercraft/sp/EPKCompiler.java +++ b/sp-server/src/main/java/net/lax1dude/eaglercraft/sp/EPKCompiler.java @@ -16,7 +16,6 @@ public class EPKCompiler { public EPKCompiler(String name) { try { - d = new Deflater(9); os = new DataOutputStream(osb); os.write("EAGPKG!!".getBytes(Charset.forName("UTF-8"))); os.writeUTF("\n\n # eaglercraft package file - " + name + "\n # eagler eagler eagler eagler eagler eagler eagler\n\n"); diff --git a/sp-server/src/main/java/net/lax1dude/eaglercraft/sp/VFSChunkLoader.java b/sp-server/src/main/java/net/lax1dude/eaglercraft/sp/VFSChunkLoader.java index ae6357b..d52f920 100644 --- a/sp-server/src/main/java/net/lax1dude/eaglercraft/sp/VFSChunkLoader.java +++ b/sp-server/src/main/java/net/lax1dude/eaglercraft/sp/VFSChunkLoader.java @@ -89,7 +89,7 @@ public class VFSChunkLoader implements IChunkLoader { try { NBTTagCompound chunkFileSave = new NBTTagCompound(); chunkFileSave.setCompoundTag("Level", chunkFile); - save = CompressedStreamTools.compress(chunkFileSave); + save = CompressedStreamTools.compressChunk(chunkFileSave); }catch(IOException e) { System.err.println("Corrupted chunk could not be serialized: [" + var2.xPosition + ", " + var2.zPosition + "]"); return; diff --git a/sp-server/src/main/java/net/minecraft/src/CompressedStreamTools.java b/sp-server/src/main/java/net/minecraft/src/CompressedStreamTools.java index e551068..218cc33 100644 --- a/sp-server/src/main/java/net/minecraft/src/CompressedStreamTools.java +++ b/sp-server/src/main/java/net/minecraft/src/CompressedStreamTools.java @@ -12,6 +12,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.util.Collection; +import com.jcraft.jzlib.Deflater; import com.jcraft.jzlib.GZIPInputStream; import com.jcraft.jzlib.GZIPOutputStream; @@ -73,6 +74,19 @@ public class CompressedStreamTools { return var1.toByteArray(); } + public static byte[] compressChunk(NBTTagCompound par0NBTTagCompound) throws IOException { + ByteArrayOutputStream var1 = new ByteArrayOutputStream(); + DataOutputStream var2 = new DataOutputStream(new GZIPOutputStream(var1, new Deflater(2, 15+16), 2048, true)); + + try { + write(par0NBTTagCompound, var2); + } finally { + var2.close(); + } + + return var1.toByteArray(); + } + /** * Reads from a CompressedStream. */