3 import java.io.ByteArrayOutputStream;
\r
4 import java.io.DataOutputStream;
\r
5 import java.io.IOException;
\r
7 import net.minecraft.src.EntityPlayer;
\r
8 import net.minecraft.src.NetworkManager;
\r
9 import net.minecraft.src.Packet;
\r
10 import net.minecraft.src.Packet250CustomPayload;
\r
11 import net.minecraft.src.TileEntity;
\r
12 import net.minecraft.src.World;
\r
14 import com.google.common.io.ByteArrayDataInput;
\r
15 import com.google.common.io.ByteStreams;
\r
17 import cpw.mods.fml.common.network.IPacketHandler;
\r
18 import cpw.mods.fml.common.network.Player;
\r
21 * サーバーとクライアントのデータの同期に必要なクラス
\r
26 public class PacketHandler implements IPacketHandler {
\r
29 public void onPacketData(NetworkManager manager, Packet250CustomPayload packet, Player player) {
\r
30 if (packet.channel.equals("chemicraft")) {
\r
31 ByteArrayDataInput badi = ByteStreams.newDataInput(packet.data);
\r
36 TileEntityDecompositionTable var2;
\r
38 // TileEntityのx, y, z座標
\r
46 worldClient = ChemiCraft.instance.proxy.getClientWorld();
\r
47 worldServer = ((EntityPlayer)player).worldObj;
\r
48 if(worldClient != null && worldServer == null){
\r
49 var1 = worldClient.getBlockTileEntity(x, y, z);
\r
50 if (var1 instanceof TileEntityDecompositionTable) {
\r
51 var2 = (TileEntityDecompositionTable) var1;
\r
52 var2.readPacket(badi, (EntityPlayer)player);
\r
56 if(worldServer != null){
\r
57 var1 = worldServer.getBlockTileEntity(x, y, z);
\r
58 if (var1 instanceof TileEntityDecompositionTable) {
\r
59 var2 = (TileEntityDecompositionTable) var1;
\r
60 var2.readPacket(badi, (EntityPlayer)player);
\r
68 public static Packet getPacket(TileEntityDecompositionTable tileEntity) {
\r
69 ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);
\r
70 DataOutputStream var2 = new DataOutputStream(var1);
\r
79 x = tileEntity.xCoord;
\r
80 y = tileEntity.yCoord;
\r
81 z = tileEntity.zCoord;
\r
88 tileEntity.writePacket(var2);
\r
89 } catch (IOException e) {
\r
90 e.printStackTrace();
\r
94 Packet250CustomPayload packet = new Packet250CustomPayload();
\r
95 packet.channel = "chemicraft";
\r
96 packet.data = var1.toByteArray();
\r
97 packet.length = var1.size();
\r
98 packet.isChunkDataPacket = true;
\r
102 public static Packet getPacket(TileEntityChemicalCombinationTable tileEntity) {
\r
103 ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);
\r
104 DataOutputStream var2 = new DataOutputStream(var1);
\r
113 x = tileEntity.xCoord;
\r
114 y = tileEntity.yCoord;
\r
115 z = tileEntity.zCoord;
\r
122 tileEntity.writePacket(var2);
\r
123 } catch (IOException e) {
\r
124 e.printStackTrace();
\r
128 Packet250CustomPayload packet = new Packet250CustomPayload();
\r
129 packet.channel = "chemicraft";
\r
130 packet.data = var1.toByteArray();
\r
131 packet.length = var1.size();
\r
132 packet.isChunkDataPacket = true;
\r
136 public static Packet getPacket(TileEntityToolAndWeaponCraftingTable tileEntity) {
\r
137 ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);
\r
138 DataOutputStream var2 = new DataOutputStream(var1);
\r
147 x = tileEntity.xCoord;
\r
148 y = tileEntity.yCoord;
\r
149 z = tileEntity.zCoord;
\r
156 tileEntity.writePacket(var2);
\r
157 } catch (IOException e) {
\r
158 e.printStackTrace();
\r
162 Packet250CustomPayload packet = new Packet250CustomPayload();
\r
163 packet.channel = "chemicraft";
\r
164 packet.data = var1.toByteArray();
\r
165 packet.length = var1.size();
\r
166 packet.isChunkDataPacket = true;
\r
170 public static Packet getPacket(TileEntityMaterialCraftingTable tileEntity) {
\r
171 ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);
\r
172 DataOutputStream var2 = new DataOutputStream(var1);
\r
181 x = tileEntity.xCoord;
\r
182 y = tileEntity.yCoord;
\r
183 z = tileEntity.zCoord;
\r
190 tileEntity.writePacket(var2);
\r
191 } catch (IOException e) {
\r
192 e.printStackTrace();
\r
196 Packet250CustomPayload packet = new Packet250CustomPayload();
\r
197 packet.channel = "chemicraft";
\r
198 packet.data = var1.toByteArray();
\r
199 packet.length = var1.size();
\r
200 packet.isChunkDataPacket = true;
\r