PacketDispatcher.java 文件源码

java
阅读 24 收藏 0 点赞 0 评论 0

项目:Skills 作者:
/**
 * Registers an {@link AbstractMessage} to the appropriate side(s)
 */
private static final <T extends AbstractMessage<T> & IMessageHandler<T, IMessage>> void registerMessage(Class<T> clazz) {
    // We can tell by the message class which side to register it on by using #isAssignableFrom (google it)

    // Also, one can see the convenience of using a static counter 'packetId' to keep
    // track of the current index, rather than hard-coding them all, plus it's one less
    // parameter to pass.
    if (AbstractMessage.AbstractClientMessage.class.isAssignableFrom(clazz)) {
        PacketDispatcher.dispatcher.registerMessage(clazz, clazz, packetId++, Side.CLIENT);
    } else if (AbstractMessage.AbstractServerMessage.class.isAssignableFrom(clazz)) {
        PacketDispatcher.dispatcher.registerMessage(clazz, clazz, packetId++, Side.SERVER);
    } else {
        // hopefully you didn't forget to extend the right class, or you will get registered on both sides
        PacketDispatcher.dispatcher.registerMessage(clazz, clazz, packetId, Side.CLIENT);
        PacketDispatcher.dispatcher.registerMessage(clazz, clazz, packetId++, Side.SERVER);
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号