package minefantasy.mf2.network.packet;
import io.netty.buffer.ByteBuf;
import minefantasy.mf2.MineFantasyII;
import minefantasy.mf2.api.knowledge.InformationBase;
import minefantasy.mf2.api.knowledge.InformationList;
import minefantasy.mf2.api.knowledge.ResearchLogic;
import net.minecraft.entity.player.EntityPlayer;
import cpw.mods.fml.common.network.ByteBufUtils;
public class ResearchRequest extends PacketMF
{
public static final String packetName = "MF2_RequestResearch";
private EntityPlayer user;
private int researchID;
private String username;
public ResearchRequest(EntityPlayer user, int id)
{
this.researchID = id;
this.username = user.getCommandSenderName();
this.user = user;
}
public ResearchRequest() {
}
@Override
public void process(ByteBuf packet, EntityPlayer player)
{
researchID = packet.readInt();
username = ByteBufUtils.readUTF8String(packet);
if (username != null && player.getCommandSenderName().equals(username))
{
InformationBase research = InformationList.knowledgeList.get(researchID);
if(player != null && research != null)
{
if(!player.worldObj.isRemote)
{
if(research.onPurchase(player))
{
ResearchLogic.syncData(player);
}
}
}
}
}
@Override
public String getChannel()
{
return packetName;
}
@Override
public void write(ByteBuf packet)
{
packet.writeInt(researchID);
ByteBufUtils.writeUTF8String(packet, username);
}
}