From 00e5036a931222a1ef70bcbde8087560fa002817 Mon Sep 17 00:00:00 2001 From: Glease <4586901+Glease@users.noreply.github.com> Date: Mon, 13 Mar 2023 12:16:40 +0800 Subject: compress prospecting packet using deflater --- .../java/com/detrav/net/ProspectingPacket.java | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src/main/java/com/detrav/net/ProspectingPacket.java') diff --git a/src/main/java/com/detrav/net/ProspectingPacket.java b/src/main/java/com/detrav/net/ProspectingPacket.java index 4d6fd72b82..beb8d9d3d7 100644 --- a/src/main/java/com/detrav/net/ProspectingPacket.java +++ b/src/main/java/com/detrav/net/ProspectingPacket.java @@ -1,6 +1,9 @@ package com.detrav.net; +import java.io.*; import java.util.HashMap; +import java.util.zip.DeflaterInputStream; +import java.util.zip.DeflaterOutputStream; import net.minecraft.util.StatCollector; import net.minecraftforge.fluids.FluidRegistry; @@ -12,9 +15,6 @@ import com.detrav.gui.textures.DetravMapTexture; import com.detrav.utils.GTppHelper; import com.github.bartimaeusnek.bartworks.system.material.Werkstoff; import com.google.common.base.Objects; -import com.google.common.io.ByteArrayDataInput; -import com.google.common.io.ByteArrayDataOutput; -import com.google.common.io.ByteStreams; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; @@ -100,7 +100,8 @@ public class ProspectingPacket extends DetravPacket { packet.metaMap.put(meta, name); } - public static Object decode(ByteArrayDataInput aData) { + public static Object decode(InputStream in) throws IOException { + DataInput aData = new DataInputStream(new DeflaterInputStream(in)); ProspectingPacket packet = new ProspectingPacket( aData.readInt(), aData.readInt(), @@ -134,10 +135,9 @@ public class ProspectingPacket extends DetravPacket { return 0; } - @SuppressWarnings("UnstableApiUsage") @Override - public byte[] encode() { - ByteArrayDataOutput tOut = ByteStreams.newDataOutput(1); + public void encode(OutputStream out) throws IOException { + DataOutputStream tOut = new DataOutputStream(new DeflaterOutputStream(out)); tOut.writeInt(chunkX); tOut.writeInt(chunkZ); tOut.writeInt(posX); @@ -149,18 +149,18 @@ public class ProspectingPacket extends DetravPacket { int aSize = (size * 2 + 1) * 16; int checkOut = 0; for (int i = 0; i < aSize; i++) for (int j = 0; j < aSize; j++) { - if (map[i][j] == null) tOut.writeByte(0); + HashMap data = map[i][j]; + if (data == null) tOut.writeByte(0); else { - tOut.writeByte(map[i][j].keySet().size()); - for (byte key : map[i][j].keySet()) { + tOut.writeByte(data.keySet().size()); + for (byte key : data.keySet()) { tOut.writeByte(key); - tOut.writeShort(map[i][j].get(key)); + tOut.writeShort(data.get(key)); checkOut++; } } } tOut.writeInt(checkOut); - return tOut.toByteArray(); } @Override -- cgit From 693f203d85d27244f94992eec9e6761bc3379eff Mon Sep 17 00:00:00 2001 From: Glease <4586901+Glease@users.noreply.github.com> Date: Mon, 13 Mar 2023 12:43:41 +0800 Subject: switch to gzip and flush output stream --- src/main/java/com/detrav/net/ProspectingPacket.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/main/java/com/detrav/net/ProspectingPacket.java') diff --git a/src/main/java/com/detrav/net/ProspectingPacket.java b/src/main/java/com/detrav/net/ProspectingPacket.java index beb8d9d3d7..1d48c6a765 100644 --- a/src/main/java/com/detrav/net/ProspectingPacket.java +++ b/src/main/java/com/detrav/net/ProspectingPacket.java @@ -2,8 +2,8 @@ package com.detrav.net; import java.io.*; import java.util.HashMap; -import java.util.zip.DeflaterInputStream; -import java.util.zip.DeflaterOutputStream; +import java.util.zip.GZIPInputStream; +import java.util.zip.GZIPOutputStream; import net.minecraft.util.StatCollector; import net.minecraftforge.fluids.FluidRegistry; @@ -101,7 +101,7 @@ public class ProspectingPacket extends DetravPacket { } public static Object decode(InputStream in) throws IOException { - DataInput aData = new DataInputStream(new DeflaterInputStream(in)); + DataInput aData = new DataInputStream(new GZIPInputStream(in)); ProspectingPacket packet = new ProspectingPacket( aData.readInt(), aData.readInt(), @@ -137,7 +137,7 @@ public class ProspectingPacket extends DetravPacket { @Override public void encode(OutputStream out) throws IOException { - DataOutputStream tOut = new DataOutputStream(new DeflaterOutputStream(out)); + DataOutputStream tOut = new DataOutputStream(new GZIPOutputStream(out)); tOut.writeInt(chunkX); tOut.writeInt(chunkZ); tOut.writeInt(posX); @@ -161,6 +161,7 @@ public class ProspectingPacket extends DetravPacket { } } tOut.writeInt(checkOut); + tOut.close(); } @Override -- cgit