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