package mods.custom_flags.packet; import cpw.mods.fml.common.network.Player; import mods.custom_flags.items.ItemFlag; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.network.INetworkManager; import net.minecraft.network.packet.Packet; import net.minecraft.network.packet.Packet250CustomPayload; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; /** * Created by Aaron on 3/08/13. */ public class UpdateHeldFlagImagePacket extends AbstractPacket { public static final String channel = "CF.UpdateFlag"; public static Packet250CustomPayload generatePacket(String user, ItemStack stack){ ByteArrayOutputStream bos = new ByteArrayOutputStream(); DataOutputStream outputStream = new DataOutputStream(bos); try{ outputStream.writeUTF(user); Packet.writeItemStack(stack, outputStream); }catch (Exception e){ e.printStackTrace(); } return new Packet250CustomPayload(channel, bos.toByteArray()); } @Override public void process(INetworkManager manager, Packet250CustomPayload packet, Player player) { DataInputStream inputStream = new DataInputStream(new ByteArrayInputStream(packet.data)); String user = null; ItemStack stack = null; try{ user = inputStream.readUTF(); stack = Packet.readItemStack(inputStream); }catch (Exception e){ e.printStackTrace(); } if(user != null){ EntityPlayer target = ((EntityPlayer)player).worldObj.getPlayerEntityByName(user); if(target != null){ ItemStack targetEquip = target.getCurrentEquippedItem(); if(targetEquip != null && targetEquip.getItem() instanceof ItemFlag){ target.setCurrentItemOrArmor(0, stack); } } } } }