001    package net.minecraft.network.packet;
002    
003    import java.io.DataInputStream;
004    import java.io.DataOutputStream;
005    import java.io.IOException;
006    
007    public 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    }