X-Git-Url: http://git.sourceforge.jp/view?p=chemicraft%2Fchemicraft.git;a=blobdiff_plain;f=common%2Fchemicraft%2FPacketHandler.java;h=0fc00bf36c2fb60aca19053a5d62617a512ad6b5;hp=a55e9c5be2a7ab61ba5a49b7a85e45da9858a525;hb=e9b218e8292b231ce674ec71f8620eb2f0e4b779;hpb=524e2011dd8898bb72618009657cda630d692495;ds=sidebyside diff --git a/common/chemicraft/PacketHandler.java b/common/chemicraft/PacketHandler.java index a55e9c5..0fc00bf 100644 --- a/common/chemicraft/PacketHandler.java +++ b/common/chemicraft/PacketHandler.java @@ -8,6 +8,8 @@ import java.io.IOException; import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteStreams; +import net.minecraft.src.EntityPlayer; +import net.minecraft.src.EntityPlayerMP; import net.minecraft.src.NetworkManager; import net.minecraft.src.Packet; import net.minecraft.src.Packet250CustomPayload; @@ -28,19 +30,38 @@ public class PacketHandler implements IPacketHandler { public void onPacketData(NetworkManager manager, Packet250CustomPayload packet, Player player) { if (packet.channel.equals("chemicraft")) { ByteArrayDataInput var1 = ByteStreams.newDataInput(packet.data); + + World world; + TileEntity tileEntity; + TileEntityScienceCraftingTable var2; + + // TileEntityのx, y, z座標 int x, y, z; - // パケットからデータ読み込み + // activeTab + String activeTab; + + // 座標読み込み x = var1.readInt(); y = var1.readInt(); z = var1.readInt(); + // activeTab読み込み + activeTab = var1.readUTF(); // TileEntityを取得し読み込んだデータを送る - World world = ChemiCraft.proxy.getClientWorld(); - TileEntity tileEntity = world.getBlockTileEntity(x, y, z); + // from Server to Client + world = ChemiCraft.proxy.getClientWorld(); + tileEntity = world.getBlockTileEntity(x, y, z); + if (tileEntity instanceof TileEntityScienceCraftingTable) { + var2 = (TileEntityScienceCraftingTable) tileEntity; + + } + // from Client to Server + world = ((EntityPlayer) player).worldObj; + tileEntity = world.getBlockTileEntity(x, y, z); if (tileEntity instanceof TileEntityScienceCraftingTable) { - TileEntityScienceCraftingTable var2 = (TileEntityScienceCraftingTable) tileEntity; - var2.handlePacket(null); + var2 = (TileEntityScienceCraftingTable) tileEntity; + var2.handlePacket(new Object[] { activeTab }); } } } @@ -49,17 +70,28 @@ public class PacketHandler implements IPacketHandler { public static Packet getPacket(TileEntityScienceCraftingTable tileEntity) { ByteArrayOutputStream var1 = new ByteArrayOutputStream(128); DataOutputStream var2 = new DataOutputStream(var1); + + // Blockのx, y, z座標 int x, y, z; - // データの用意 + // activeTab + String activeTab; + + // x, y, z座標を代入 x = tileEntity.xCoord; y = tileEntity.yCoord; z = tileEntity.zCoord; + // activeTabに代入 + activeTab = tileEntity.getActiveTab(); + try { + // 座標書き込み var2.writeInt(x); var2.writeInt(y); var2.writeInt(z); + // activeTab書き込み + var2.writeUTF(activeTab); } catch (IOException e) { e.printStackTrace(); }