aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorGlease <4586901+Glease@users.noreply.github.com>2023-03-13 12:16:40 +0800
committerGlease <4586901+Glease@users.noreply.github.com>2023-03-13 12:16:40 +0800
commit00e5036a931222a1ef70bcbde8087560fa002817 (patch)
tree24387079270ac1f0bc10c03b3bb4f10319908a7c /src/main
parentff242451cd57db0e9786435313ee34254094ec95 (diff)
downloadGT5-Unofficial-00e5036a931222a1ef70bcbde8087560fa002817.tar.gz
GT5-Unofficial-00e5036a931222a1ef70bcbde8087560fa002817.tar.bz2
GT5-Unofficial-00e5036a931222a1ef70bcbde8087560fa002817.zip
compress prospecting packet using deflater
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/detrav/net/DetravNetwork.java36
-rw-r--r--src/main/java/com/detrav/net/DetravPacket.java5
-rw-r--r--src/main/java/com/detrav/net/ProspectingPacket.java24
3 files changed, 33 insertions, 32 deletions
diff --git a/src/main/java/com/detrav/net/DetravNetwork.java b/src/main/java/com/detrav/net/DetravNetwork.java
index ecd9559f39..75e0a267ab 100644
--- a/src/main/java/com/detrav/net/DetravNetwork.java
+++ b/src/main/java/com/detrav/net/DetravNetwork.java
@@ -5,14 +5,14 @@ import java.util.List;
import net.minecraft.entity.player.EntityPlayerMP;
-import com.google.common.io.ByteArrayDataInput;
-import com.google.common.io.ByteStreams;
-
import cpw.mods.fml.common.network.FMLEmbeddedChannel;
import cpw.mods.fml.common.network.FMLOutboundHandler;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.network.internal.FMLProxyPacket;
import cpw.mods.fml.relauncher.Side;
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.ByteBufInputStream;
+import io.netty.buffer.ByteBufOutputStream;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
@@ -27,7 +27,6 @@ public class DetravNetwork extends MessageToMessageCodec<FMLProxyPacket, DetravP
static public DetravNetwork INSTANCE;
private final EnumMap<Side, FMLEmbeddedChannel> mChannel;
- private DetravPacket[] mSubChannels;
public DetravNetwork() {
INSTANCE = this;
@@ -36,38 +35,37 @@ public class DetravNetwork extends MessageToMessageCodec<FMLProxyPacket, DetravP
@Override
protected void encode(ChannelHandlerContext ctx, DetravPacket msg, List<Object> out) throws Exception {
- out.add(
- new FMLProxyPacket(
- Unpooled.buffer().writeByte(msg.getPacketID()).writeBytes(msg.encode()).copy(),
- (String) ctx.channel().attr(NetworkRegistry.FML_CHANNEL).get()));
+ ByteBuf buf = Unpooled.buffer();
+ buf.writeByte(msg.getPacketID());
+ msg.encode(new ByteBufOutputStream(buf));
+ out.add(new FMLProxyPacket(buf, ctx.channel().attr(NetworkRegistry.FML_CHANNEL).get()));
}
- @SuppressWarnings("UnstableApiUsage")
@Override
protected void decode(ChannelHandlerContext ctx, FMLProxyPacket msg, List<Object> out) throws Exception {
- ByteArrayDataInput aData = ByteStreams.newDataInput(msg.payload().array());
- aData.readByte(); // Sub Channel - Ignore
- out.add(ProspectingPacket.decode(aData));
+ ByteBuf payload = msg.payload();
+ payload.readByte(); // Sub Channel - Ignore
+ out.add(ProspectingPacket.decode(new ByteBufInputStream(payload)));
}
public void sendToPlayer(DetravPacket aPacket, EntityPlayerMP aPlayer) {
- ((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGET)
+ this.mChannel.get(Side.SERVER).attr(FMLOutboundHandler.FML_MESSAGETARGET)
.set(FMLOutboundHandler.OutboundTarget.PLAYER);
- ((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS)
- .set(aPlayer);
- ((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).writeAndFlush(aPacket);
+ this.mChannel.get(Side.SERVER).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(aPlayer);
+ this.mChannel.get(Side.SERVER).writeAndFlush(aPacket);
}
public void sendToServer(DetravPacket aPacket) {
- ((FMLEmbeddedChannel) this.mChannel.get(Side.CLIENT)).attr(FMLOutboundHandler.FML_MESSAGETARGET)
+ this.mChannel.get(Side.CLIENT).attr(FMLOutboundHandler.FML_MESSAGETARGET)
.set(FMLOutboundHandler.OutboundTarget.TOSERVER);
- ((FMLEmbeddedChannel) this.mChannel.get(Side.CLIENT)).writeAndFlush(aPacket);
+ this.mChannel.get(Side.CLIENT).writeAndFlush(aPacket);
}
@ChannelHandler.Sharable
static final class HandlerShared extends SimpleChannelInboundHandler<DetravPacket> {
- protected void channelRead0(ChannelHandlerContext ctx, DetravPacket aPacket) throws Exception {
+ @Override
+ protected void channelRead0(ChannelHandlerContext ctx, DetravPacket aPacket) {
aPacket.process();
}
}
diff --git a/src/main/java/com/detrav/net/DetravPacket.java b/src/main/java/com/detrav/net/DetravPacket.java
index 06e968b1ef..8659549045 100644
--- a/src/main/java/com/detrav/net/DetravPacket.java
+++ b/src/main/java/com/detrav/net/DetravPacket.java
@@ -1,5 +1,8 @@
package com.detrav.net;
+import java.io.IOException;
+import java.io.OutputStream;
+
/**
* Created by wital_000 on 20.03.2016.
*/
@@ -7,7 +10,7 @@ public abstract class DetravPacket {
public abstract int getPacketID();
- public abstract byte[] encode();
+ public abstract void encode(OutputStream out) throws IOException;
public abstract void process();
}
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<Byte, Short> 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