package com.w67clement.mineapi.nms.reflection.packets.status;
import com.w67clement.mineapi.MineAPI;
import com.w67clement.mineapi.api.ReflectionAPI;
import com.w67clement.mineapi.packets.status.PacketStatusOutPong;
import java.lang.reflect.Constructor;
public class CraftPacketStatusOutPong extends PacketStatusOutPong<Object>
{
private static Class<?> packetClass;
private static Constructor<?> packetConstructor;
static
{
if (MineAPI.isGlowstone())
{
packetClass = ReflectionAPI.getClass("net.glowstone.net.message.status.StatusPingMessage");
packetConstructor = ReflectionAPI.getConstructor(packetClass, long.class);
}
else
{
packetClass = ReflectionAPI.getNmsClass("PacketStatusOutPong");
packetConstructor = ReflectionAPI.getConstructor(packetClass, long.class);
}
}
public CraftPacketStatusOutPong(final long pong)
{
super(pong);
}
@Override
public Object constructPacket()
{
if (MineAPI.isSpigot())
{
return this.constructPacket_Bukkit();
}
else if (MineAPI.isGlowstone())
{
return this.constructPacket_Glowstone();
}
return this.constructPacket_Bukkit();
}
@Override
public Object getHandle()
{
return this.constructPacket();
}
private Object constructPacket_Bukkit()
{
return ReflectionAPI.newInstance(packetConstructor, this.pong);
}
private Object constructPacket_Glowstone()
{
return ReflectionAPI.newInstance(packetConstructor, this.pong);
}
}