1 package pcc.chemicraft.core.system;
3 import java.io.ByteArrayOutputStream;
4 import java.io.DataOutputStream;
5 import java.io.IOException;
7 import net.minecraft.entity.player.EntityPlayer;
8 import net.minecraft.network.INetworkManager;
9 import net.minecraft.network.packet.Packet;
10 import net.minecraft.network.packet.Packet250CustomPayload;
11 import net.minecraft.tileentity.TileEntity;
12 import net.minecraft.world.World;
13 import pcc.chemicraft.core.ChemiCraftCore;
14 import pcc.chemicraft.core.tileentity.TileEntityChemicalCombinationTable;
15 import pcc.chemicraft.core.tileentity.TileEntityChemicalCraftingTable;
16 import pcc.chemicraft.core.tileentity.TileEntityElectrolysisTable;
17 import pcc.chemicraft.core.tileentity.TileEntityPyrolysisTable;
18 import pcc.chemicraft.core.tileentity.TileEntityToolAndWeaponCraftingTable;
20 import com.google.common.io.ByteArrayDataInput;
21 import com.google.common.io.ByteStreams;
23 import cpw.mods.fml.common.network.IPacketHandler;
24 import cpw.mods.fml.common.network.Player;
27 * サーバーとクライアントのデータの同期に必要なクラス
32 public class PacketHandler implements IPacketHandler {
35 public void onPacketData(INetworkManager manager, Packet250CustomPayload packet, Player player) {
36 if (packet.channel.equals("chemicraftcore")) {
37 ByteArrayDataInput badi = ByteStreams.newDataInput(packet.data);
43 // TileEntityのx, y, z座標
51 worldClient = ChemiCraftCore.proxy.getClientWorld();
52 worldServer = ((EntityPlayer)player).worldObj;
53 if(worldClient != null && worldServer == null){
54 var1 = worldClient.getBlockTileEntity(x, y, z);
55 if(var1 instanceof TileEntityChemicalCombinationTable) ((TileEntityChemicalCombinationTable)var1).readPacket(badi);
56 if(var1 instanceof TileEntityChemicalCraftingTable) ((TileEntityChemicalCraftingTable)var1).readPacket(badi);
57 if(var1 instanceof TileEntityPyrolysisTable) ((TileEntityPyrolysisTable)var1).readPacket(badi);
58 if(var1 instanceof TileEntityToolAndWeaponCraftingTable) ((TileEntityToolAndWeaponCraftingTable)var1).readPacket(badi);
61 if(worldServer != null){
62 var1 = worldServer.getBlockTileEntity(x, y, z);
63 if(var1 instanceof TileEntityChemicalCombinationTable) ((TileEntityChemicalCombinationTable)var1).readPacket(badi);
64 if(var1 instanceof TileEntityChemicalCraftingTable) ((TileEntityChemicalCraftingTable)var1).readPacket(badi);
65 if(var1 instanceof TileEntityPyrolysisTable) ((TileEntityPyrolysisTable)var1).readPacket(badi);
66 if(var1 instanceof TileEntityToolAndWeaponCraftingTable) ((TileEntityToolAndWeaponCraftingTable)var1).readPacket(badi);
73 public static Packet getPacket(TileEntityPyrolysisTable tileEntity) {
74 ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);
75 DataOutputStream var2 = new DataOutputStream(var1);
81 x = tileEntity.xCoord;
82 y = tileEntity.yCoord;
83 z = tileEntity.zCoord;
90 tileEntity.writePacket(var2);
91 } catch (IOException e) {
96 Packet250CustomPayload packet = new Packet250CustomPayload();
97 packet.channel = "chemicraftcore";
98 packet.data = var1.toByteArray();
99 packet.length = var1.size();
100 packet.isChunkDataPacket = true;
104 public static Packet getPacket(TileEntityChemicalCombinationTable tileEntity) {
105 ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);
106 DataOutputStream var2 = new DataOutputStream(var1);
112 x = tileEntity.xCoord;
113 y = tileEntity.yCoord;
114 z = tileEntity.zCoord;
121 tileEntity.writePacket(var2);
122 } catch (IOException e) {
127 Packet250CustomPayload packet = new Packet250CustomPayload();
128 packet.channel = "chemicraftcore";
129 packet.data = var1.toByteArray();
130 packet.length = var1.size();
131 packet.isChunkDataPacket = true;
135 public static Packet getPacket(TileEntityToolAndWeaponCraftingTable tileEntity) {
136 ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);
137 DataOutputStream var2 = new DataOutputStream(var1);
143 x = tileEntity.xCoord;
144 y = tileEntity.yCoord;
145 z = tileEntity.zCoord;
152 tileEntity.writePacket(var2);
153 } catch (IOException e) {
158 Packet250CustomPayload packet = new Packet250CustomPayload();
159 packet.channel = "chemicraftcore";
160 packet.data = var1.toByteArray();
161 packet.length = var1.size();
162 packet.isChunkDataPacket = true;
166 public static Packet getPacket(TileEntityChemicalCraftingTable tileEntity) {
167 ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);
168 DataOutputStream var2 = new DataOutputStream(var1);
174 x = tileEntity.xCoord;
175 y = tileEntity.yCoord;
176 z = tileEntity.zCoord;
183 tileEntity.writePacket(var2);
184 } catch (IOException e) {
189 Packet250CustomPayload packet = new Packet250CustomPayload();
190 packet.channel = "chemicraftcore";
191 packet.data = var1.toByteArray();
192 packet.length = var1.size();
193 packet.isChunkDataPacket = true;
198 public static Packet getPacket(TileEntityElectrolysisTable tileEntity)
200 ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);
201 DataOutputStream var2 = new DataOutputStream(var1);
207 x = tileEntity.xCoord;
208 y = tileEntity.yCoord;
209 z = tileEntity.zCoord;
216 tileEntity.writePacket(var2);
217 } catch (IOException e) {
222 Packet250CustomPayload packet = new Packet250CustomPayload();
223 packet.channel = "chemicraftcore";
224 packet.data = var1.toByteArray();
225 packet.length = var1.size();
226 packet.isChunkDataPacket = true;