package codechicken.enderstorage.internal; import net.minecraft.client.Minecraft; import net.minecraft.network.play.INetHandlerPlayClient; import net.minecraft.tileentity.TileEntity; import net.minecraft.client.multiplayer.WorldClient; import codechicken.lib.packet.PacketCustom; import codechicken.lib.packet.PacketCustom.IClientPacketHandler; import codechicken.lib.vec.BlockCoord; import codechicken.enderstorage.api.EnderStorageManager; import codechicken.enderstorage.common.TileFrequencyOwner; import codechicken.enderstorage.storage.item.EnderItemStorage; import codechicken.enderstorage.storage.liquid.TankSynchroniser; import codechicken.enderstorage.storage.liquid.TileEnderTank; public class EnderStorageCPH implements IClientPacketHandler { public static final String channel = "ES"; @Override public void handlePacket(PacketCustom packet, Minecraft mc, INetHandlerPlayClient handler) { switch (packet.getType()) { case 1: handleTilePacket(mc.theWorld, packet, packet.readCoord()); break; case 2: int windowID = packet.readUByte(); ((EnderItemStorage) EnderStorageManager.instance(true).getStorage(packet.readString(), packet.readUShort(), "item")) .openClientGui(windowID, mc.thePlayer.inventory, packet.readString(), packet.readUByte()); break; case 3: ((EnderItemStorage) EnderStorageManager.instance(true).getStorage(packet.readString(), packet.readUShort(), "item")) .setClientOpen(packet.readBoolean() ? 1 : 0); break; case 4: TankSynchroniser.syncClient(packet.readUShort(), packet.readString(), packet.readFluidStack()); break; case 5: case 6: handleTankTilePacket(mc.theWorld, packet.readCoord(), packet); break; } } private void handleTankTilePacket(WorldClient world, BlockCoord pos, PacketCustom packet) { TileEntity tile = world.getTileEntity(pos.x, pos.y, pos.z); if (tile instanceof TileEnderTank) ((TileEnderTank) tile).sync(packet); } private void handleTilePacket(WorldClient world, PacketCustom packet, BlockCoord pos) { TileEntity tile = world.getTileEntity(pos.x, pos.y, pos.z); if (tile instanceof TileFrequencyOwner) ((TileFrequencyOwner) tile).handleDescriptionPacket(packet); } }