package com.w67clement.mineapi.packets;
import java.lang.reflect.ParameterizedType;
/**
* Created by w67clement on 12/03/2016.
* <p>
* Class of project: MineAPI
*/
public class NmsMinePacket<T extends MinePacket>
{
protected T packet;
public NmsMinePacket(T packet)
{
this.packet = packet;
}
public static <U extends MinePacket> Class<U> returnedClass(Class<? extends NmsMinePacket<U>> packet)
{
ParameterizedType parameterizedType = (ParameterizedType) packet.getClass().getGenericSuperclass();
@SuppressWarnings("unchecked")
Class<U> ret = (Class<U>) parameterizedType.getActualTypeArguments()[0];
return ret;
}
/**
* Gets the MinePacket.
*
* @return MinePacket.
*/
public T getPacket()
{
return packet;
}
}