aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/detrav/net/DetravNetwork.java
diff options
context:
space:
mode:
authorNotAPenguin <michiel.vandeginste@gmail.com>2024-09-02 23:17:17 +0200
committerGitHub <noreply@github.com>2024-09-02 23:17:17 +0200
commit1b820de08a05070909a267e17f033fcf58ac8710 (patch)
tree02831a025986a06b20f87e5bcc69d1e0c639a342 /src/main/java/detrav/net/DetravNetwork.java
parentafd3fd92b6a6ab9ab0d0dc3214e6bc8ff7a86c9b (diff)
downloadGT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.gz
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.bz2
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.zip
The Great Renaming (#3014)
* move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names
Diffstat (limited to 'src/main/java/detrav/net/DetravNetwork.java')
-rw-r--r--src/main/java/detrav/net/DetravNetwork.java83
1 files changed, 83 insertions, 0 deletions
diff --git a/src/main/java/detrav/net/DetravNetwork.java b/src/main/java/detrav/net/DetravNetwork.java
new file mode 100644
index 0000000000..30bdb23157
--- /dev/null
+++ b/src/main/java/detrav/net/DetravNetwork.java
@@ -0,0 +1,83 @@
+package detrav.net;
+
+import java.util.EnumMap;
+import java.util.List;
+
+import net.minecraft.entity.player.EntityPlayerMP;
+
+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;
+import io.netty.channel.SimpleChannelInboundHandler;
+import io.netty.handler.codec.MessageToMessageCodec;
+
+/**
+ * Created by wital_000 on 20.03.2016.
+ */
+@ChannelHandler.Sharable
+public class DetravNetwork extends MessageToMessageCodec<FMLProxyPacket, DetravPacket> {
+
+ static public DetravNetwork INSTANCE;
+ private final EnumMap<Side, FMLEmbeddedChannel> mChannel;
+
+ public DetravNetwork() {
+ INSTANCE = this;
+ this.mChannel = NetworkRegistry.INSTANCE.newChannel("DetravScanner", this, new HandlerShared());
+ }
+
+ @Override
+ protected void encode(ChannelHandlerContext ctx, DetravPacket msg, List<Object> out) throws Exception {
+ 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()));
+ }
+
+ @Override
+ protected void decode(ChannelHandlerContext ctx, FMLProxyPacket msg, List<Object> out) throws Exception {
+ ByteBuf payload = msg.payload();
+ payload.readByte(); // Sub Channel - Ignore
+ out.add(ProspectingPacket.decode(new ByteBufInputStream(payload)));
+ }
+
+ public void sendToPlayer(DetravPacket aPacket, EntityPlayerMP aPlayer) {
+ this.mChannel.get(Side.SERVER)
+ .attr(FMLOutboundHandler.FML_MESSAGETARGET)
+ .set(FMLOutboundHandler.OutboundTarget.PLAYER);
+ this.mChannel.get(Side.SERVER)
+ .attr(FMLOutboundHandler.FML_MESSAGETARGETARGS)
+ .set(aPlayer);
+ this.mChannel.get(Side.SERVER)
+ .writeAndFlush(aPacket);
+ }
+
+ public void sendToServer(DetravPacket aPacket) {
+ this.mChannel.get(Side.CLIENT)
+ .attr(FMLOutboundHandler.FML_MESSAGETARGET)
+ .set(FMLOutboundHandler.OutboundTarget.TOSERVER);
+ this.mChannel.get(Side.CLIENT)
+ .writeAndFlush(aPacket);
+ }
+
+ @ChannelHandler.Sharable
+ static final class HandlerShared extends SimpleChannelInboundHandler<DetravPacket> {
+
+ @Override
+ protected void channelRead0(ChannelHandlerContext ctx, DetravPacket aPacket) {
+ aPacket.process();
+ }
+ }
+}