public void registerPacket(String modId, int i, Class<? extends AbstractPacket> packetClass)
{
packetCodec.addDiscriminator(i, packetClass);
try
{
Side side = packetClass.newInstance().receivingSide();
if(side == null)
{
FMLEmbeddedChannel channelServer = channels.get(Side.SERVER);
String typeServer = channelServer.findChannelHandlerNameForType(AbstractPacketCodec.class);
PacketHandlerWrapper handlerServer = new PacketHandlerWrapper(Side.SERVER, packetClass);
channelServer.pipeline().addAfter(typeServer, generateName(channelServer.pipeline(), handlerServer), handlerServer);
FMLEmbeddedChannel channelClient = channels.get(Side.CLIENT);
String typeClient = channelClient.findChannelHandlerNameForType(AbstractPacketCodec.class);
PacketHandlerWrapper handlerClient = new PacketHandlerWrapper(Side.CLIENT, packetClass);
channelClient.pipeline().addAfter(typeClient, generateName(channelClient.pipeline(), handlerClient), handlerClient);
}
else
{
FMLEmbeddedChannel channel = channels.get(side);
String type = channel.findChannelHandlerNameForType(AbstractPacketCodec.class);
PacketHandlerWrapper handler = new PacketHandlerWrapper(side, packetClass);
channel.pipeline().addAfter(type, generateName(channel.pipeline(), handler), handler);
}
}
catch(Exception e)
{
iChunUtil.LOGGER.warn("Could not create packet for class " + packetClass.getName() + " for channel " + modId + ". Is there a default constructor in that class?");
throw Throwables.propagate(e);
}
}
PacketChannel.java 文件源码
java
阅读 23
收藏 0
点赞 0
评论 0
项目:iChunUtil
作者:
评论列表
文章目录