@Override
  public int fill(ForgeDirection from, FluidStack resource, boolean doFill) {
    if (worldObj.isRemote) return 0;
    if (resource == null) // What!?
    return 0;
    if (resource.getFluid() == null) return 0;
    if (resource.getFluid().getID() != FluidRegistry.LAVA.getID()) {
      return 0;
    }

    if (tank != null && tank.getFluid() != null && tank.getFluidAmount() > 0) {
      if (resource.getFluid().getID() != tank.getFluid().getFluid().getID()) {
        return 0;
      }
    } else if (tank == null) {
      setTier(getTier());
    }

    return tank.fill(resource, doFill);
  }
 @Override
 public boolean canDrain(ForgeDirection from, Fluid fluid) {
   return fluid.getID() == FluidRegistry.LAVA.getID();
 }