001package net.minecraft.network.packet; 002 003import java.io.DataInputStream; 004import java.io.DataOutputStream; 005import java.io.IOException; 006import java.util.ArrayList; 007import java.util.Collection; 008import java.util.Iterator; 009import net.minecraft.scoreboard.ScorePlayerTeam; 010 011public class Packet209SetPlayerTeam extends Packet 012{ 013 public String field_96495_a = ""; 014 public String field_96493_b = ""; 015 public String field_96494_c = ""; 016 public String field_96491_d = ""; 017 public Collection field_96492_e = new ArrayList(); 018 public int field_96489_f = 0; 019 public int field_98212_g; 020 021 public Packet209SetPlayerTeam() {} 022 023 public Packet209SetPlayerTeam(ScorePlayerTeam par1, int par2) 024 { 025 this.field_96495_a = par1.func_96661_b(); 026 this.field_96489_f = par2; 027 028 if (par2 == 0 || par2 == 2) 029 { 030 this.field_96493_b = par1.func_96669_c(); 031 this.field_96494_c = par1.func_96668_e(); 032 this.field_96491_d = par1.func_96663_f(); 033 this.field_98212_g = par1.func_98299_i(); 034 } 035 036 if (par2 == 0) 037 { 038 this.field_96492_e.addAll(par1.func_96670_d()); 039 } 040 } 041 042 public Packet209SetPlayerTeam(ScorePlayerTeam par1, Collection par2, int par3) 043 { 044 if (par3 != 3 && par3 != 4) 045 { 046 throw new IllegalArgumentException("Method must be join or leave for player constructor"); 047 } 048 else if (par2 != null && !par2.isEmpty()) 049 { 050 this.field_96489_f = par3; 051 this.field_96495_a = par1.func_96661_b(); 052 this.field_96492_e.addAll(par2); 053 } 054 else 055 { 056 throw new IllegalArgumentException("Players cannot be null/empty"); 057 } 058 } 059 060 /** 061 * Abstract. Reads the raw packet data from the data stream. 062 */ 063 public void readPacketData(DataInputStream par1DataInputStream) throws IOException 064 { 065 this.field_96495_a = readString(par1DataInputStream, 16); 066 this.field_96489_f = par1DataInputStream.readByte(); 067 068 if (this.field_96489_f == 0 || this.field_96489_f == 2) 069 { 070 this.field_96493_b = readString(par1DataInputStream, 32); 071 this.field_96494_c = readString(par1DataInputStream, 16); 072 this.field_96491_d = readString(par1DataInputStream, 16); 073 this.field_98212_g = par1DataInputStream.readByte(); 074 } 075 076 if (this.field_96489_f == 0 || this.field_96489_f == 3 || this.field_96489_f == 4) 077 { 078 short short1 = par1DataInputStream.readShort(); 079 080 for (int i = 0; i < short1; ++i) 081 { 082 this.field_96492_e.add(readString(par1DataInputStream, 16)); 083 } 084 } 085 } 086 087 /** 088 * Abstract. Writes the raw packet data to the data stream. 089 */ 090 public void writePacketData(DataOutputStream par1DataOutputStream) throws IOException 091 { 092 writeString(this.field_96495_a, par1DataOutputStream); 093 par1DataOutputStream.writeByte(this.field_96489_f); 094 095 if (this.field_96489_f == 0 || this.field_96489_f == 2) 096 { 097 writeString(this.field_96493_b, par1DataOutputStream); 098 writeString(this.field_96494_c, par1DataOutputStream); 099 writeString(this.field_96491_d, par1DataOutputStream); 100 par1DataOutputStream.writeByte(this.field_98212_g); 101 } 102 103 if (this.field_96489_f == 0 || this.field_96489_f == 3 || this.field_96489_f == 4) 104 { 105 par1DataOutputStream.writeShort(this.field_96492_e.size()); 106 Iterator iterator = this.field_96492_e.iterator(); 107 108 while (iterator.hasNext()) 109 { 110 String s = (String)iterator.next(); 111 writeString(s, par1DataOutputStream); 112 } 113 } 114 } 115 116 /** 117 * Passes this Packet on to the NetHandler for processing. 118 */ 119 public void processPacket(NetHandler par1NetHandler) 120 { 121 par1NetHandler.func_96435_a(this); 122 } 123 124 /** 125 * Abstract. Return the size of the packet (not counting the header). 126 */ 127 public int getPacketSize() 128 { 129 return 3 + this.field_96495_a.length(); 130 } 131}