HyCodeYourTale
classpublicPriority 3

PacketEncoder

com.hypixel.hytale.protocol.io.netty.PacketEncoder

extends MessageToByteEncoder

0

Methods

0

Public Methods

0

Fields

1

Constructors

Constructors

public
PacketEncoder()

Inheritance

Parent
Current
Interface
Child

Use mouse wheel to zoom, drag to pan. Click nodes to navigate.

Related Classes

Source Code

package com.hypixel.hytale.protocol.io.netty;

import com.hypixel.hytale.protocol.CachedPacket;
import com.hypixel.hytale.protocol.Packet;
import com.hypixel.hytale.protocol.io.PacketIO;
import com.hypixel.hytale.protocol.io.PacketStatsRecorder;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelHandler.Sharable;
import io.netty.handler.codec.MessageToByteEncoder;
import javax.annotation.Nonnull;

@Sharable
public class PacketEncoder extends MessageToByteEncoder<Packet> {
   public PacketEncoder() {
   }

   protected void encode(@Nonnull ChannelHandlerContext ctx, @Nonnull Packet packet, @Nonnull ByteBuf out) {
      Class<? extends Packet> packetClass;
      if (packet instanceof CachedPacket<?> cached) {
         packetClass = (Class<? extends Packet>)cached.getPacketType();
      } else {
         packetClass = (Class<? extends Packet>)packet.getClass();
      }

      PacketStatsRecorder statsRecorder = (PacketStatsRecorder)ctx.channel().attr(PacketStatsRecorder.CHANNEL_KEY).get();
      if (statsRecorder == null) {
         statsRecorder = PacketStatsRecorder.NOOP;
      }

      PacketIO.writeFramedPacket(packet, packetClass, out, statsRecorder);
   }
}