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}