PacketEncoder.java
net.minecraft.network.PacketEncoder
信息
- 全限定名:net.minecraft.network.PacketEncoder
- 类型:public class
- 包:net.minecraft.network
- 源码路径:src/main/java/net/minecraft/network/PacketEncoder.java
- 起始行号:L12
- 继承:MessageToByteEncoder<Packet
> - 职责:
TODO
字段/常量
-
LOGGER- 类型:
Logger - 修饰符:
private static final - 源码定位:
L13 - 说明:
TODO
- 类型:
-
protocolInfo- 类型:
ProtocolInfo<T> - 修饰符:
private final - 源码定位:
L14 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public PacketEncoder(ProtocolInfo<T> protocolInfo) @ L16
- 构造器名:PacketEncoder
- 源码定位:L16
- 修饰符:public
参数:
- protocolInfo: ProtocolInfo
说明:
TODO
方法
下面的方法块按源码顺序生成。
protected void encode(ChannelHandlerContext ctx, Packet<T> packet, ByteBuf output) @ L20
- 方法名:encode
- 源码定位:L20
- 返回类型:void
- 修饰符:protected
参数:
- ctx: ChannelHandlerContext
- packet: Packet
- output: ByteBuf
说明:
TODO
代码
public class PacketEncoder<T extends PacketListener> extends MessageToByteEncoder<Packet<T>> {
private static final Logger LOGGER = LogUtils.getLogger();
private final ProtocolInfo<T> protocolInfo;
public PacketEncoder(ProtocolInfo<T> protocolInfo) {
this.protocolInfo = protocolInfo;
}
protected void encode(ChannelHandlerContext ctx, Packet<T> packet, ByteBuf output) throws Exception {
PacketType<? extends Packet<? super T>> packetId = packet.type();
try {
this.protocolInfo.codec().encode(output, packet);
int writtenBytes = output.readableBytes();
if (LOGGER.isDebugEnabled()) {
LOGGER.debug(
Connection.PACKET_SENT_MARKER,
"OUT: [{}:{}] {} -> {} bytes",
this.protocolInfo.id().id(),
packetId,
packet.getClass().getName(),
writtenBytes
);
}
JvmProfiler.INSTANCE.onPacketSent(this.protocolInfo.id(), packetId, ctx.channel().remoteAddress(), writtenBytes);
} catch (Throwable var9) {
LOGGER.error("Error sending packet {}", packetId, var9);
if (packet.isSkippable()) {
throw new SkipPacketEncoderException(var9);
}
throw var9;
} finally {
ProtocolSwapHandler.handleOutboundTerminalPacket(ctx, packet);
}
}
}引用的其他类
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
ProtocolSwapHandler.handleOutboundTerminalPacket()
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
SkipPacketEncoderException()
- 引用位置:
-
- 引用位置:
参数/继承
- 引用位置: