@Override
protected void encode(ChannelHandlerContext ctx, NetworkEvent msg, List<Object> out) throws IOException {
final Channel channel = ctx.channel();
final Side side = channel.attr(NetworkRegistry.CHANNEL_SOURCE).get();
final NetworkEventEntry entry = CommonRegistryCallbacks.getObjectToEntryMap(registry).get(msg.getClass());
Preconditions.checkState(entry != null, "Can't find registration for class %s", msg.getClass());
final int id = CommonRegistryCallbacks.getEntryIdMap(registry).get(entry);
final EventDirection validator = entry.getDirection();
Preconditions.checkState(validator != null && validator.validateSend(side),
"Invalid direction: sending packet %s on side %s", msg.getClass(), side);
final PacketBuffer buf = new PacketBuffer(Unpooled.buffer());
buf.writeVarInt(id);
msg.writeToStream(buf);
final FMLProxyPacket packet = new FMLProxyPacket(buf, NetworkEventDispatcher.CHANNEL_NAME);
packet.setDispatcher(msg.dispatcher);
out.add(packet);
}
NetworkEventCodec.java 文件源码
java
阅读 18
收藏 0
点赞 0
评论 0
项目:OpenModsLib
作者:
评论列表
文章目录