Program: 34730
Project: 34730
Buggy source:
public static void handleLine(World world,EntityClientPlayerMP player,FXType.Line fx,double x1,double y1,double z1,double x2,double y2,double z2){
  Vec3 lineVec=Vec3.createVectorHelper(x2 - x1,y2 - y1,z2 - z1);
  double len=lineVec.lengthVector();
  lineVec=lineVec.normalize();
  double addX, addY, addZ;
switch (fx) {
case CHARM_SLAUGHTER_IMPACT:
case CHARM_DAMAGE_REDIRECTION:
    addX=lineVec.xCoord * 0.5D;
  addY=lineVec.yCoord * 0.5D;
addZ=lineVec.zCoord * 0.5D;
float red=0F, green=0F, blue=0F;
if (fx == FXType.Line.CHARM_SLAUGHTER_IMPACT) {
red=1F;
green=0.25F;
blue=0.4F;
}
 else if (fx == FXType.Line.CHARM_DAMAGE_REDIRECTION) {
red=0.3F;
green=0.5F;
blue=1F;
}
for (int a=0; a < len * 2D; a++) {
for (int b=0; b < 3; b++) HardcoreEnderExpansion.fx.magicCrit(world,x1 + randCenter(0.4D),y1 + 0.2D + randCenter(0.4D),z1 + randCenter(0.4D),randCenter(0.1D),randCenter(0.1D),randCenter(0.1D),red,green,blue);
x1+=addX;
y1+=addY;
z1+=addZ;
}
break;
case DRAGON_EGG_TELEPORT:
addX=lineVec.xCoord * 0.25D;
addY=lineVec.yCoord * 0.25D;
addZ=lineVec.zCoord * 0.25D;
for (int a=0; a < 35; a++) world.spawnParticle("String_Node_Str",x1 + randCenter(0.8D),y1 + randCenter(0.8D),z1 + randCenter(0.8D),randCenter(0.01D),randCenter(0.01D),randCenter(0.01D));
for (int a=0; a < len * 4D; a++) {
for (int b=0; b < 4; b++) HardcoreEnderExpansion.fx.portalBig(world,x1,y1,z1,randCenter(0.01D),randCenter(0.01D),randCenter(0.01D),0.15F);
x1+=addX;
y1+=addY;
z1+=addZ;
}
world.playSound(x1,y1,z1,"String_Node_Str",1.2F,1F,false);
break;
case LOUSE_HEAL_ENTITY:
addX=lineVec.xCoord * 0.125D;
addY=lineVec.yCoord * 0.125D;
addZ=lineVec.zCoord * 0.125D;
for (int a=0; a < len * 8D; a++) {
HardcoreEnderExpansion.fx.aura(world,x1 + randCenter(0.1D),y1 + randCenter(0.1D),z1 + randCenter(0.1D),0F,0.7F,0F,20 + rand.nextInt(20));
x1+=addX;
y1+=addY;
z1+=addZ;
}
break;
case ENDERMAN_TELEPORT:
for (int a=0, particleAmt=128; a < particleAmt; a++) {
double linePosition=a / (particleAmt - 1D);
double particleX=x1 + (x2 - x1) * linePosition + (rand.nextDouble() - 0.5D) * 1.2D;
double particleY=y1 + (y2 - y1) * linePosition + rand.nextDouble() * 2.9D;
double particleZ=z1 + (z2 - z1) * linePosition + (rand.nextDouble() - 0.5D) * 1.2D;
world.spawnParticle("String_Node_Str",particleX,particleY,particleZ,(rand.nextFloat() - 0.5F) * 0.2F,(rand.nextFloat() - 0.5F) * 0.2F,(rand.nextFloat() - 0.5F) * 0.2F);
}
world.playSound(x1,y1,z1,"String_Node_Str",1F,1F,false);
world.playSound(x2,y2,z2,"String_Node_Str",1F,1F,false);
break;
case HOMELAND_ENDERMAN_GUARD_CALL:
addX=lineVec.xCoord * 0.25D;
addY=lineVec.yCoord * 0.25D;
addZ=lineVec.zCoord * 0.25D;
HomelandRole role=HomelandRole.GUARD;
for (int a=0; a < len * 4D; a++) {
HardcoreEnderExpansion.fx.portalColor(world,x1 + randCenter(0.25D),y1 + randCenter(0.25D),z1 + randCenter(0.25D),randCenter(1D),-rand.nextDouble(),randCenter(1D),role.red,role.green,role.blue);
x1+=addX;
y1+=addY;
z1+=addZ;
}
break;
}
}

Fixed version (ground truth):
public static void handleLine(World world,EntityClientPlayerMP player,FXType.Line fx,double x1,double y1,double z1,double x2,double y2,double z2){
  Vec3 lineVec=Vec3.createVectorHelper(x2 - x1,y2 - y1,z2 - z1);
  double len=lineVec.lengthVector();
  lineVec=lineVec.normalize();
  double addX, addY, addZ;
switch (fx) {
case CHARM_SLAUGHTER_IMPACT:
case CHARM_DAMAGE_REDIRECTION:
    addX=lineVec.xCoord * 0.5D;
  addY=lineVec.yCoord * 0.5D;
addZ=lineVec.zCoord * 0.5D;
float red=0F, green=0F, blue=0F;
if (fx == FXType.Line.CHARM_SLAUGHTER_IMPACT) {
red=1F;
green=0.25F;
blue=0.4F;
}
 else if (fx == FXType.Line.CHARM_DAMAGE_REDIRECTION) {
red=0.3F;
green=0.5F;
blue=1F;
}
for (int a=0; a < len * 2D; a++) {
for (int b=0; b < 3; b++) HardcoreEnderExpansion.fx.magicCrit(world,x1 + randCenter(0.4D),y1 + 0.2D + randCenter(0.4D),z1 + randCenter(0.4D),randCenter(0.1D),randCenter(0.1D),randCenter(0.1D),red,green,blue);
x1+=addX;
y1+=addY;
z1+=addZ;
}
break;
case DRAGON_EGG_TELEPORT:
addX=lineVec.xCoord * 0.25D;
addY=lineVec.yCoord * 0.25D;
addZ=lineVec.zCoord * 0.25D;
for (int a=0; a < 35; a++) world.spawnParticle("String_Node_Str",x1 + randCenter(0.8D),y1 + randCenter(0.8D),z1 + randCenter(0.8D),randCenter(0.01D),randCenter(0.01D),randCenter(0.01D));
for (int a=0; a < len * 4D; a++) {
for (int b=0; b < 4; b++) HardcoreEnderExpansion.fx.portalBig(world,x1,y1,z1,randCenter(0.01D),randCenter(0.01D),randCenter(0.01D),0.15F);
x1+=addX;
y1+=addY;
z1+=addZ;
}
world.playSound(x1,y1,z1,"String_Node_Str",1.2F,1F,false);
break;
case LOUSE_HEAL_ENTITY:
addX=lineVec.xCoord * 0.125D;
addY=lineVec.yCoord * 0.125D;
addZ=lineVec.zCoord * 0.125D;
for (int a=0; a < len * 8D; a++) {
HardcoreEnderExpansion.fx.aura(world,x1 + randCenter(0.1D),y1 + randCenter(0.1D),z1 + randCenter(0.1D),0F,0.7F,0F,20 + rand.nextInt(20));
x1+=addX;
y1+=addY;
z1+=addZ;
}
break;
case ENDERMAN_TELEPORT:
for (int a=0, particleAmt=128; a < particleAmt; a++) {
double linePosition=a / (particleAmt - 1D);
double particleX=x1 + (x2 - x1) * linePosition + (rand.nextDouble() - 0.5D) * 1.2D;
double particleY=y1 + (y2 - y1) * linePosition + rand.nextDouble() * 2.9D;
double particleZ=z1 + (z2 - z1) * linePosition + (rand.nextDouble() - 0.5D) * 1.2D;
world.spawnParticle("String_Node_Str",particleX,particleY,particleZ,(rand.nextFloat() - 0.5F) * 0.2F,(rand.nextFloat() - 0.5F) * 0.2F,(rand.nextFloat() - 0.5F) * 0.2F);
}
world.playSound(x1,y1,z1,"String_Node_Str",1F,1F,false);
world.playSound(x2,y2,z2,"String_Node_Str",1F,1F,false);
break;
case HOMELAND_ENDERMAN_GUARD_CALL:
addX=lineVec.xCoord * 0.25D;
addY=lineVec.yCoord * 0.25D;
addZ=lineVec.zCoord * 0.25D;
HomelandRole role=HomelandRole.GUARD;
for (int a=0; a < len * 4D; a++) {
if (rand.nextBoolean()) HardcoreEnderExpansion.fx.portalColor(world,x1 + randCenter(0.25D),y1 + randCenter(0.25D),z1 + randCenter(0.25D),randCenter(1D),-rand.nextDouble(),randCenter(1D),role.red,role.green,role.blue);
x1+=addX;
y1+=addY;
z1+=addZ;
}
break;
}
}