package chemicraft;\r
\r
import java.io.ByteArrayOutputStream;\r
-import java.io.DataInputStream;\r
import java.io.DataOutputStream;\r
import java.io.IOException;\r
\r
-import com.google.common.io.ByteArrayDataInput;\r
-import com.google.common.io.ByteStreams;\r
-\r
+import net.minecraft.src.EntityPlayer;\r
import net.minecraft.src.NetworkManager;\r
import net.minecraft.src.Packet;\r
import net.minecraft.src.Packet250CustomPayload;\r
import net.minecraft.src.TileEntity;\r
import net.minecraft.src.World;\r
+\r
+import com.google.common.io.ByteArrayDataInput;\r
+import com.google.common.io.ByteStreams;\r
+\r
import cpw.mods.fml.common.network.IPacketHandler;\r
import cpw.mods.fml.common.network.Player;\r
\r
public void onPacketData(NetworkManager manager, Packet250CustomPayload packet, Player player) {\r
if (packet.channel.equals("chemicraft")) {\r
ByteArrayDataInput var1 = ByteStreams.newDataInput(packet.data);\r
+\r
+ World worldClient;\r
+ World worldServer;\r
+ TileEntity tileEntity;\r
+ TileEntityChemicalCraftingTable var2;\r
+\r
+ // TileEntityのx, y, z座標\r
int x, y, z;\r
- String tab;\r
\r
- // パケットからデータ読み込み\r
+ // 座標読み込み\r
x = var1.readInt();\r
y = var1.readInt();\r
z = var1.readInt();\r
- tab = var1.readUTF();\r
-\r
- // TileEntityを取得し読み込んだデータを送る\r
- World world = ChemiCraft.proxy.getClientWorld();\r
- TileEntity tileEntity = world.getBlockTileEntity(x, y, z);\r
- if (tileEntity instanceof TileEntityScienceCraftingTable) {\r
- TileEntityScienceCraftingTable var2 = (TileEntityScienceCraftingTable) tileEntity;\r
- var2.handlePacket(new Object[]{tab});\r
+\r
+ worldClient = ChemiCraft.proxy.getClientWorld();\r
+ worldServer = ((EntityPlayer)player).worldObj;\r
+ if(worldClient != null){\r
+ tileEntity = worldClient.getBlockTileEntity(x, y, z);\r
+ if (tileEntity instanceof TileEntityChemicalCraftingTable) {\r
+ var2 = (TileEntityChemicalCraftingTable) tileEntity;\r
+ var2.readPacket(var1);\r
+ }\r
+ return;\r
+ }\r
+ if(worldServer != null){\r
+ tileEntity = worldServer.getBlockTileEntity(x, y, z);\r
+ if (tileEntity instanceof TileEntityChemicalCraftingTable) {\r
+ var2 = (TileEntityChemicalCraftingTable) tileEntity;\r
+ var2.readPacket(var1);\r
+ }\r
+ return;\r
}\r
}\r
}\r
\r
\r
- public static Packet getPacket(TileEntityScienceCraftingTable tileEntity) {\r
+ public static Packet getPacket(TileEntityChemicalCraftingTable tileEntity) {\r
ByteArrayOutputStream var1 = new ByteArrayOutputStream(128);\r
DataOutputStream var2 = new DataOutputStream(var1);\r
+\r
+ // Blockのx, y, z座標\r
int x, y, z;\r
- String tab;\r
\r
- // データの用意\r
+ // activeTab\r
+ String activeTab;\r
+\r
+ // x, y, z座標を代入\r
x = tileEntity.xCoord;\r
y = tileEntity.yCoord;\r
z = tileEntity.zCoord;\r
- tab = tileEntity.getActiveTab();\r
\r
try {\r
+ // 座標書き込み\r
var2.writeInt(x);\r
var2.writeInt(y);\r
var2.writeInt(z);\r
- var2.writeUTF(tab);\r
+ tileEntity.writePacket(var2);\r
} catch (IOException e) {\r
e.printStackTrace();\r
}\r