001 package net.minecraft.network.packet; 002 003 import cpw.mods.fml.relauncher.Side; 004 import cpw.mods.fml.relauncher.SideOnly; 005 import java.io.DataInputStream; 006 import java.io.DataOutputStream; 007 import java.io.IOException; 008 009 public class Packet2ClientProtocol extends Packet 010 { 011 private int protocolVersion; 012 private String username; 013 private String serverHost; 014 private int serverPort; 015 016 public Packet2ClientProtocol() {} 017 018 @SideOnly(Side.CLIENT) 019 public Packet2ClientProtocol(int par1, String par2Str, String par3Str, int par4) 020 { 021 this.protocolVersion = par1; 022 this.username = par2Str; 023 this.serverHost = par3Str; 024 this.serverPort = par4; 025 } 026 027 /** 028 * Abstract. Reads the raw packet data from the data stream. 029 */ 030 public void readPacketData(DataInputStream par1DataInputStream) throws IOException 031 { 032 this.protocolVersion = par1DataInputStream.readByte(); 033 this.username = readString(par1DataInputStream, 16); 034 this.serverHost = readString(par1DataInputStream, 255); 035 this.serverPort = par1DataInputStream.readInt(); 036 } 037 038 /** 039 * Abstract. Writes the raw packet data to the data stream. 040 */ 041 public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException 042 { 043 par1DataOutputStream.writeByte(this.protocolVersion); 044 writeString(this.username, par1DataOutputStream); 045 writeString(this.serverHost, par1DataOutputStream); 046 par1DataOutputStream.writeInt(this.serverPort); 047 } 048 049 /** 050 * Passes this Packet on to the NetHandler for processing. 051 */ 052 public void processPacket(NetHandler par1NetHandler) 053 { 054 par1NetHandler.handleClientProtocol(this); 055 } 056 057 /** 058 * Abstract. Return the size of the packet (not counting the header). 059 */ 060 public int getPacketSize() 061 { 062 return 3 + 2 * this.username.length(); 063 } 064 065 /** 066 * Returns the protocol version. 067 */ 068 public int getProtocolVersion() 069 { 070 return this.protocolVersion; 071 } 072 073 /** 074 * Returns the username. 075 */ 076 public String getUsername() 077 { 078 return this.username; 079 } 080 }