package minefantasy.mf2.network.packet; import io.netty.buffer.ByteBuf; import java.util.ArrayList; import java.util.Iterator; import minefantasy.mf2.MineFantasyII; import minefantasy.mf2.api.rpg.RPGElements; import minefantasy.mf2.api.rpg.Skill; import minefantasy.mf2.util.MFLogUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import cpw.mods.fml.common.network.ByteBufUtils; public class SkillPacket extends PacketMF { public static final String packetName = "MF2_SkillSync"; private EntityPlayer user; private String username; private int level, xp, xpMax; private String skillName; public SkillPacket(EntityPlayer user, Skill skill) { this.username = user.getCommandSenderName(); this.user = user; NBTTagCompound skilltag = RPGElements.getSkill(user, skill.skillName); skillName = skill.skillName; level = skilltag.getInteger("level"); xp = skilltag.getInteger("xp"); xpMax = skilltag.getInteger("xpMax"); } public SkillPacket() { } @Override public void process(ByteBuf packet, EntityPlayer player) { String name = ByteBufUtils.readUTF8String(packet); int skillLvl = packet.readInt(); int skillXp = packet.readInt(); int skillMaxXp = packet.readInt(); username = ByteBufUtils.readUTF8String(packet); if (username != null) { EntityPlayer entity = player.worldObj .getPlayerEntityByName(username); if(entity != null) { MFLogUtil.logDebug("Skill Packet Recieved: " + name + " L" + skillLvl + " " + skillXp + "/" + skillMaxXp); NBTTagCompound tag = RPGElements.getSkill(player, name); tag.setInteger("level", skillLvl); tag.setInteger("xp", skillXp); tag.setInteger("xpMax", skillMaxXp); } } } @Override public String getChannel() { return packetName; } @Override public void write(ByteBuf packet) { ByteBufUtils.writeUTF8String(packet, skillName); packet.writeInt(level); packet.writeInt(xp); packet.writeInt(xpMax); ByteBufUtils.writeUTF8String(packet, username); } }