    001package net.minecraft.network.packet;
    002
    003import java.io.DataInputStream;
    004import java.io.DataOutputStream;
    005import java.io.IOException;
    006
    007public class Packet131MapData extends Packet
    008{
    009    public short itemID;
    010
    011    /**
    012     * Contains a unique ID for the item that this packet will be populating.
    013     */
    014    public short uniqueID;
    015
    016    /**
    017     * Contains a buffer of arbitrary data with which to populate an individual item in the world.
    018     */
    019    public byte[] itemData;
    020
    021    public Packet131MapData()
    022    {
    023        this.isChunkDataPacket = true;
    024    }
    025
    026    public Packet131MapData(short par1, short par2, byte[] par3ArrayOfByte)
    027    {
    028        this.isChunkDataPacket = true;
    029        this.itemID = par1;
    030        this.uniqueID = par2;
    031        this.itemData = par3ArrayOfByte;
    032    }
    033
    034    /**
    035     * Abstract. Reads the raw packet data from the data stream.
    036     */
    037    public void readPacketData(DataInputStream par1DataInputStream) throws IOException
    038    {
    039        this.itemID = par1DataInputStream.readShort();
    040        this.uniqueID = par1DataInputStream.readShort();
    041        this.itemData = new byte[par1DataInputStream.readUnsignedShort()];
    042        par1DataInputStream.readFully(this.itemData);
    043    }
    044
    045    /**
    046     * Abstract. Writes the raw packet data to the data stream.
    047     */
    048    public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException
    049    {
    050        par1DataOutputStream.writeShort(this.itemID);
    051        par1DataOutputStream.writeShort(this.uniqueID);
    052        par1DataOutputStream.writeShort(this.itemData.length);
    053        par1DataOutputStream.write(this.itemData);
    054    }
    055
    056    /**
    057     * Passes this Packet on to the NetHandler for processing.
    058     */
    059    public void processPacket(NetHandler par1NetHandler)
    060    {
    061        par1NetHandler.handleMapData(this);
    062    }
    063
    064    /**
    065     * Abstract. Return the size of the packet (not counting the header).
    066     */
    067    public int getPacketSize()
    068    {
    069        return 4 + this.itemData.length;
    070    }
    071}