    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 Packet100OpenWindow extends Packet
    008    {
    009        public int windowId;
    010        public int inventoryType;
    011        public String windowTitle;
    012        public int slotsCount;
    013
    014        public Packet100OpenWindow() {}
    015
    016        public Packet100OpenWindow(int par1, int par2, String par3Str, int par4)
    017        {
    018            this.windowId = par1;
    019            this.inventoryType = par2;
    020            this.windowTitle = par3Str;
    021            this.slotsCount = par4;
    022        }
    023
    024        /**
    025         * Passes this Packet on to the NetHandler for processing.
    026         */
    027        public void processPacket(NetHandler par1NetHandler)
    028        {
    029            par1NetHandler.handleOpenWindow(this);
    030        }
    031
    032        /**
    033         * Abstract. Reads the raw packet data from the data stream.
    034         */
    035        public void readPacketData(DataInputStream par1DataInputStream) throws IOException
    036        {
    037            this.windowId = par1DataInputStream.readByte() & 255;
    038            this.inventoryType = par1DataInputStream.readByte() & 255;
    039            this.windowTitle = readString(par1DataInputStream, 32);
    040            this.slotsCount = par1DataInputStream.readByte() & 255;
    041        }
    042
    043        /**
    044         * Abstract. Writes the raw packet data to the data stream.
    045         */
    046        public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException
    047        {
    048            par1DataOutputStream.writeByte(this.windowId & 255);
    049            par1DataOutputStream.writeByte(this.inventoryType & 255);
    050            writeString(this.windowTitle, par1DataOutputStream);
    051            par1DataOutputStream.writeByte(this.slotsCount & 255);
    052        }
    053
    054        /**
    055         * Abstract. Return the size of the packet (not counting the header).
    056         */
    057        public int getPacketSize()
    058        {
    059            return 3 + this.windowTitle.length();
    060        }
    061    }