Plane x Line Intersection

Where my line will intersect this plane? easy:

P1, P2 and P3 are plane points

p1 and p2 are line start and end points



private float X1, Y1, Z1, X2, Y2, Z2, X3, Y3, Z3, x, y, z, x1, y1, z1, x2, y2, z2, A, B, C, D;
   
    public Vector3f getPoint(Vector3f P1, Vector3f P2, Vector3f P3, Vector3f p1, Vector3f p2) {
        X1 = P1.getX();
        Y1 = P1.getY();
        Z1 = P1.getZ();
        X2 = P2.getX();
        Y2 = P2.getY();
        Z2 = P2.getZ();
        X3 = P3.getX();
        Y3 = P3.getY();
        Z3 = P3.getZ();
        A = Y2*Z3 - Y2*Z1 - Y1*Z3 - Z2*Y3 + Z2*Y1 + Z1*Y3;
        B = - X2*Z3 + X2*Z1 + X1*Z3 + X3*Z2 - X3*Z1 - X1*Z2;
        C = X2*Y3 - X3*Y2 - X2*Y1 - X1*Y3 + X3*Y1 + X1*Y2;
        D = X3*Y2*Z1 + X1*Z2*Y3 - X1*Y2*Z3 + X2*Y1*Z3 - X2*Z1*Y3 - X3*Z2*Y1;
        x1 = p1.getX();
        y1 = p1.getY();
        z1 = p1.getZ();
        x2 = p2.getX();
        y2 = p2.getY();
        z2 = p2.getZ();
        x = -(B*x1*y2-B*y1*x2+C*x1*z2-C*z1*x2-D*x2+D*x1)/(-A*x2+A*x1-B*y2+B*y1-C*z2+C*z1);
        y = (x - x1)/(x2 - x1)*(y2 - y1) + y1;
        z = (x - x1)/(x2 - x1)*(z2 - z1) + z1;
        return new Vector3f(x,y,z);



I haven