Program: 174641
Project: 174641
Buggy source:
private void fireProjectile(World world,EntityPlayer player,ItemStack stack,NBTTagCompound nbt,Vec3d look){
  if (Rune.getRune(nbt) == Rune.FIREBALL) {
    EntityFireball fireball=new EntityFireball(world,look.x,look.y,look.z,1F,0F,player,stack,2);
    fireball.setPosition(player.posX + look.x,player.posY + look.y + 1.5,player.posZ + look.z);
    world.spawnEntity(fireball);
  }
 else   if (Rune.getRune(nbt) == Rune.ICEBOLT) {
    EntityIcebolt icebolt=new EntityIcebolt(world,look.x,look.y,look.z,1F,0F,player,stack,2);
    icebolt.setPosition(player.posX + look.x,player.posY + look.y + 1.5,player.posZ + look.z);
    world.spawnEntity(icebolt);
  }
 else   if (Rune.getRune(nbt) == Rune.LIGHTNING) {
    EntityLightning lightning=new EntityLightning(world,look.x,look.y,look.z,1F,0F,player,stack,2);
    lightning.setPosition(player.posX + look.x,player.posY + look.y + 1.5,player.posZ + look.z);
    world.spawnEntity(lightning);
  }
 else   if (Rune.getRune(nbt) == Rune.FIRESTORM) {
    for (int i=0; i < 4; i++) {
      EntityFireball fireball=new EntityFireball(world,look.x,look.y,look.z,1F,15F,player,stack,2);
      fireball.setPosition(player.posX + look.x,player.posY + look.y + 1.5,player.posZ + look.z);
      world.spawnEntity(fireball);
    }
  }
 else   if (Rune.getRune(nbt) == Rune.BLIZZARD) {
    for (int i=0; i < 4; i++) {
      EntityIcebolt icebolt=new EntityIcebolt(world,look.x,look.y,look.z,1F,0.3F,player,stack,2);
      icebolt.setPosition(player.posX + look.x,player.posY + look.y + 1.5,player.posZ + look.z);
      world.spawnEntity(icebolt);
    }
  }
 else   if (Rune.getRune(nbt) == Rune.DISCHARGE) {
    for (int i=0; i < 4; i++) {
      EntityLightning lightning=new EntityLightning(world,look.x,look.y,look.z,1F,0F,player,stack,2);
      lightning.setPosition(player.posX + look.x,player.posY + look.y + 1.5,player.posZ + look.z);
      world.spawnEntity(lightning);
    }
  }
}

Fixed version (ground truth):
private void fireProjectile(World world,EntityPlayer player,ItemStack stack,NBTTagCompound nbt,Vec3d look){
  if (Rune.getRune(nbt) == Rune.FIREBALL) {
    EntityFireball fireball=new EntityFireball(world,look.x,look.y,look.z,1F,0F,player,stack,2);
    fireball.setPosition(player.posX + look.x,player.posY + look.y + 1.5,player.posZ + look.z);
    world.spawnEntity(fireball);
  }
 else   if (Rune.getRune(nbt) == Rune.ICEBOLT) {
    EntityIcebolt icebolt=new EntityIcebolt(world,look.x,look.y,look.z,1F,0F,player,stack,2);
    icebolt.setPosition(player.posX + look.x,player.posY + look.y + 1.5,player.posZ + look.z);
    world.spawnEntity(icebolt);
  }
 else   if (Rune.getRune(nbt) == Rune.LIGHTNING) {
    EntityLightning lightning=new EntityLightning(world,look.x,look.y,look.z,1F,0F,player,stack,2);
    lightning.setPosition(player.posX + look.x,player.posY + look.y + 1.5,player.posZ + look.z);
    world.spawnEntity(lightning);
  }
 else   if (Rune.getRune(nbt) == Rune.FIRESTORM) {
    for (int i=0; i < 4; i++) {
      EntityFireball fireball=new EntityFireball(world,look.x,look.y,look.z,1F,15F,player,stack,2);
      fireball.setPosition(player.posX + look.x,player.posY + look.y + 1.5,player.posZ + look.z);
      world.spawnEntity(fireball);
    }
  }
 else   if (Rune.getRune(nbt) == Rune.BLIZZARD) {
    for (int i=0; i < 4; i++) {
      EntityIcebolt icebolt=new EntityIcebolt(world,look.x,look.y,look.z,1F,15F,player,stack,2);
      icebolt.setPosition(player.posX + look.x,player.posY + look.y + 1.5,player.posZ + look.z);
      world.spawnEntity(icebolt);
    }
  }
 else   if (Rune.getRune(nbt) == Rune.DISCHARGE) {
    for (int i=0; i < 4; i++) {
      EntityLightning lightning=new EntityLightning(world,look.x,look.y,look.z,1F,15F,player,stack,2);
      lightning.setPosition(player.posX + look.x,player.posY + look.y + 1.5,player.posZ + look.z);
      world.spawnEntity(lightning);
    }
  }
}