    001package net.minecraft.network.packet;
    002
    003import java.io.DataInputStream;
    004import java.io.DataOutputStream;
    005import java.io.IOException;
    006
    007public class Packet0KeepAlive extends Packet
    008{
    009    public int randomId;
    010
    011    public Packet0KeepAlive() {}
    012
    013    public Packet0KeepAlive(int par1)
    014    {
    015        this.randomId = par1;
    016    }
    017
    018    /**
    019     * Passes this Packet on to the NetHandler for processing.
    020     */
    021    public void processPacket(NetHandler par1NetHandler)
    022    {
    023        par1NetHandler.handleKeepAlive(this);
    024    }
    025
    026    /**
    027     * Abstract. Reads the raw packet data from the data stream.
    028     */
    029    public void readPacketData(DataInputStream par1DataInputStream) throws IOException
    030    {
    031        this.randomId = par1DataInputStream.readInt();
    032    }
    033
    034    /**
    035     * Abstract. Writes the raw packet data to the data stream.
    036     */
    037    public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException
    038    {
    039        par1DataOutputStream.writeInt(this.randomId);
    040    }
    041
    042    /**
    043     * Abstract. Return the size of the packet (not counting the header).
    044     */
    045    public int getPacketSize()
    046    {
    047        return 4;
    048    }
    049
    050    /**
    051     * only false for the abstract Packet class, all real packets return true
    052     */
    053    public boolean isRealPacket()
    054    {
    055        return true;
    056    }
    057
    058    /**
    059     * eg return packet30entity.entityId == entityId; WARNING : will throw if you compare a packet to a different packet
    060     * class
    061     */
    062    public boolean containsSameEntityIDAs(Packet par1Packet)
    063    {
    064        return true;
    065    }
    066
    067    /**
    068     * If this returns true, the packet may be processed on any thread; otherwise it is queued for the main thread to
    069     * handle.
    070     */
    071    public boolean canProcessAsync()
    072    {
    073        return true;
    074    }
    075}