1 package chemicraft.system;
\r
3 import java.io.ByteArrayOutputStream;
\r
4 import java.io.DataOutputStream;
\r
5 import java.io.IOException;
\r
7 import net.minecraft.entity.player.EntityPlayer;
\r
8 import net.minecraft.network.INetworkManager;
\r
9 import net.minecraft.network.packet.Packet;
\r
10 import net.minecraft.network.packet.Packet250CustomPayload;
\r
11 import net.minecraft.tileentity.TileEntity;
\r
12 import net.minecraft.world.World;
\r
13 import chemicraft.ChemiCraft;
\r
14 import chemicraft.tileentity.TileEntityChemicalCombinationTable;
\r
15 import chemicraft.tileentity.TileEntityChemicalCraftingTable;
\r
16 import chemicraft.tileentity.TileEntityPyrolysisTable;
\r
17 import chemicraft.tileentity.TileEntityToolAndWeaponCraftingTable;
\r
19 import com.google.common.io.ByteArrayDataInput;
\r
20 import com.google.common.io.ByteStreams;
\r
22 import cpw.mods.fml.common.network.IPacketHandler;
\r
23 import cpw.mods.fml.common.network.Player;
\r
26 * サーバーとクライアントのデータの同期に必要なクラス
\r
31 public class PacketHandler implements IPacketHandler {
\r
34 public void onPacketData(INetworkManager manager, Packet250CustomPayload packet, Player player) {
\r
35 if (packet.channel.equals("chemicraft")) {
\r
36 ByteArrayDataInput badi = ByteStreams.newDataInput(packet.data);
\r
42 // TileEntityのx, y, z座標
\r
50 worldClient = ChemiCraft.proxy.getClientWorld();
\r
51 worldServer = ((EntityPlayer)player).worldObj;
\r
52 if(worldClient != null && worldServer == null){
\r
53 var1 = worldClient.getBlockTileEntity(x, y, z);
\r
54 if(var1 instanceof TileEntityChemicalCombinationTable) ((TileEntityChemicalCombinationTable)var1).readPacket(badi);
\r
55 if(var1 instanceof TileEntityChemicalCraftingTable) ((TileEntityChemicalCraftingTable)var1).readPacket(badi);
\r
56 if(var1 instanceof TileEntityPyrolysisTable) ((TileEntityPyrolysisTable)var1).readPacket(badi);
\r
57 if(var1 instanceof TileEntityToolAndWeaponCraftingTable) ((TileEntityToolAndWeaponCraftingTable)var1).readPacket(badi);
\r
60 if(worldServer != null){
\r
61 var1 = worldServer.getBlockTileEntity(x, y, z);
\r
62 if(var1 instanceof TileEntityChemicalCombinationTable) ((TileEntityChemicalCombinationTable)var1).readPacket(badi);
\r
63 if(var1 instanceof TileEntityChemicalCraftingTable) ((TileEntityChemicalCraftingTable)var1).readPacket(badi);
\r
64 if(var1 instanceof TileEntityPyrolysisTable) ((TileEntityPyrolysisTable)var1).readPacket(badi);
\r
65 if(var1 instanceof TileEntityToolAndWeaponCraftingTable) ((TileEntityToolAndWeaponCraftingTable)var1).readPacket(badi);
\r
72 public static Packet getPacket(TileEntityPyrolysisTable tileEntity) {
\r
73 ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);
\r
74 DataOutputStream var2 = new DataOutputStream(var1);
\r
80 x = tileEntity.xCoord;
\r
81 y = tileEntity.yCoord;
\r
82 z = tileEntity.zCoord;
\r
89 tileEntity.writePacket(var2);
\r
90 } catch (IOException e) {
\r
91 e.printStackTrace();
\r
95 Packet250CustomPayload packet = new Packet250CustomPayload();
\r
96 packet.channel = "chemicraft";
\r
97 packet.data = var1.toByteArray();
\r
98 packet.length = var1.size();
\r
99 packet.isChunkDataPacket = true;
\r
103 public static Packet getPacket(TileEntityChemicalCombinationTable tileEntity) {
\r
104 ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);
\r
105 DataOutputStream var2 = new DataOutputStream(var1);
\r
111 x = tileEntity.xCoord;
\r
112 y = tileEntity.yCoord;
\r
113 z = tileEntity.zCoord;
\r
120 tileEntity.writePacket(var2);
\r
121 } catch (IOException e) {
\r
122 e.printStackTrace();
\r
126 Packet250CustomPayload packet = new Packet250CustomPayload();
\r
127 packet.channel = "chemicraft";
\r
128 packet.data = var1.toByteArray();
\r
129 packet.length = var1.size();
\r
130 packet.isChunkDataPacket = true;
\r
134 public static Packet getPacket(TileEntityToolAndWeaponCraftingTable tileEntity) {
\r
135 ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);
\r
136 DataOutputStream var2 = new DataOutputStream(var1);
\r
142 x = tileEntity.xCoord;
\r
143 y = tileEntity.yCoord;
\r
144 z = tileEntity.zCoord;
\r
151 tileEntity.writePacket(var2);
\r
152 } catch (IOException e) {
\r
153 e.printStackTrace();
\r
157 Packet250CustomPayload packet = new Packet250CustomPayload();
\r
158 packet.channel = "chemicraft";
\r
159 packet.data = var1.toByteArray();
\r
160 packet.length = var1.size();
\r
161 packet.isChunkDataPacket = true;
\r
165 public static Packet getPacket(TileEntityChemicalCraftingTable tileEntity) {
\r
166 ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);
\r
167 DataOutputStream var2 = new DataOutputStream(var1);
\r
173 x = tileEntity.xCoord;
\r
174 y = tileEntity.yCoord;
\r
175 z = tileEntity.zCoord;
\r
182 tileEntity.writePacket(var2);
\r
183 } catch (IOException e) {
\r
184 e.printStackTrace();
\r
188 Packet250CustomPayload packet = new Packet250CustomPayload();
\r
189 packet.channel = "chemicraft";
\r
190 packet.data = var1.toByteArray();
\r
191 packet.length = var1.size();
\r
192 packet.isChunkDataPacket = true;
\r