/**
* Registers an {@link AbstractMessage} to the appropriate side(s)
*/
public 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);
}
}
PacketDispatcher.java 文件源码
java
阅读 23
收藏 0
点赞 0
评论 0
项目:EnderPay
作者:
评论列表
文章目录