Program: 174597
Project: 174597
Buggy source:
public static void addExperience(EntityPlayer player,PlayerInformation playerInfo,EntityLivingBase enemy){
  int experience=0;
  EnemyInfo enemyInfo=(EnemyInfo)enemy.getCapability(CapabilityEnemyInfo.ENEMY_INFO,null);
  if (enemyInfo != null) {
    int enemyLevel=enemyInfo.getEnemyLevel();
    int enemyTier=enemyInfo.getEnemyTier();
    int rarity=1;
    if (enemy instanceof EntityMonster) {
      rarity=EntityMonster.rarity;
    }
    double baseFactor=Configs.monsterLevelTierCategory.experienceBaseFactor;
    double tierMultiplier=(Math.pow(enemyTier,Configs.monsterLevelTierCategory.experienceTierPower) / Configs.monsterLevelTierCategory.experienceTierDivisor + 1) + 0.5;
    double rarityMultiplier=(Math.pow(rarity,Configs.monsterLevelTierCategory.experienceRarityPower) / Configs.monsterLevelTierCategory.experienceRarityDivisor + 1) + 0.5;
    int multiplier=(int)((tierMultiplier * rarityMultiplier + 1) / Configs.monsterLevelTierCategory.experienceDivisor);
    experience=(int)(Math.pow(baseFactor,enemyLevel + 1) * (Configs.monsterLevelTierCategory.baseExperience + multiplier));
  }
  playerInfo.setPlayerExperience(playerInfo.getPlayerExperience() + experience);
  SPacketTitle packetActionbar=new SPacketTitle(SPacketTitle.Type.ACTIONBAR,new TextComponentString("String_Node_Str" + enemy.getName() + "String_Node_Str"+ experience+ "String_Node_Str"),-1,-1,-1);
  ((EntityPlayerMP)player).connection.sendPacket(packetActionbar);
  while (playerInfo.getPlayerExperience() > playerInfo.getLevelUpExperience(playerInfo.getPlayerLevel())) {
    int leftOverExperience=playerInfo.getPlayerExperience() - playerInfo.getLevelUpExperience(playerInfo.getPlayerLevel());
    int skillPoints=0;
    playerInfo.setPlayerLevel(playerInfo.getPlayerLevel() + 1);
    playerInfo.setPlayerExperience(leftOverExperience);
    if (Configs.playerCategory.useTieredSkillPointDistribution) {
      if (playerInfo.getPlayerLevel() % 10 == 0)       skillPoints=Configs.playerCategory.skillPointsPer10Levels;
 else       if (playerInfo.getPlayerLevel() % 5 == 0)       skillPoints=Configs.playerCategory.skillPointsPer5Levels;
 else       skillPoints=Configs.playerCategory.skillPointsPerLevel;
    }
 else {
      skillPoints=Configs.playerCategory.skillPointsPerLevel;
    }
    SPacketTitle packetTitle=new SPacketTitle(SPacketTitle.Type.TITLE,new TextComponentString("String_Node_Str" + playerInfo.getPlayerLevel()));
    SPacketTitle packetSubtitle=new SPacketTitle(SPacketTitle.Type.SUBTITLE,new TextComponentString("String_Node_Str" + skillPoints + "String_Node_Str"));
    ((EntityPlayerMP)player).connection.sendPacket(packetTitle);
    ((EntityPlayerMP)player).connection.sendPacket(packetSubtitle);
    if (Configs.playerCategory.spawnLevelUpParticles) {
      spawnLevelUpParticles(player.getEntityWorld(),player,playerInfo.getPlayerLevel());
    }
    playerInfo.setSkillPoints(playerInfo.getSkillPoints() + skillPoints);
  }
  LootSlashConquer.network.sendTo(new PacketUpdatePlayerInformation(playerInfo),(EntityPlayerMP)player);
}

Fixed version (ground truth):
public static void addExperience(EntityPlayer player,PlayerInformation playerInfo,EntityLivingBase enemy){
  int experience=0;
  EnemyInfo enemyInfo=(EnemyInfo)enemy.getCapability(CapabilityEnemyInfo.ENEMY_INFO,null);
  if (enemyInfo != null) {
    int enemyLevel=enemyInfo.getEnemyLevel();
    int enemyTier=enemyInfo.getEnemyTier();
    int rarity=1;
    if (enemy instanceof EntityMonster) {
      rarity=EntityMonster.rarity;
    }
    double baseFactor=Configs.monsterLevelTierCategory.experienceBaseFactor;
    double tierMultiplier=(Math.pow(enemyTier,Configs.monsterLevelTierCategory.experienceTierPower) / Configs.monsterLevelTierCategory.experienceTierDivisor + 1) + 0.5;
    double rarityMultiplier=(Math.pow(rarity,Configs.monsterLevelTierCategory.experienceRarityPower) / Configs.monsterLevelTierCategory.experienceRarityDivisor + 1) + 0.5;
    int multiplier=(int)((tierMultiplier * rarityMultiplier + 1) / Configs.monsterLevelTierCategory.experienceDivisor);
    experience=(int)(Math.pow(baseFactor,enemyLevel + 1) * (Configs.monsterLevelTierCategory.baseExperience + multiplier));
  }
  playerInfo.setPlayerExperience(playerInfo.getPlayerExperience() + experience);
  SPacketTitle packetActionbar=new SPacketTitle(SPacketTitle.Type.ACTIONBAR,new TextComponentString("String_Node_Str" + enemy.getName() + "String_Node_Str"+ experience+ "String_Node_Str"),-1,-1,-1);
  ((EntityPlayerMP)player).connection.sendPacket(packetActionbar);
  while (playerInfo.getPlayerExperience() > getLevelUpExperience(playerInfo.getPlayerLevel())) {
    int leftOverExperience=playerInfo.getPlayerExperience() - getLevelUpExperience(playerInfo.getPlayerLevel());
    int skillPoints=0;
    playerInfo.setPlayerLevel(playerInfo.getPlayerLevel() + 1);
    playerInfo.setPlayerExperience(leftOverExperience);
    if (Configs.playerCategory.useTieredSkillPointDistribution) {
      if (playerInfo.getPlayerLevel() % 10 == 0)       skillPoints=Configs.playerCategory.skillPointsPer10Levels;
 else       if (playerInfo.getPlayerLevel() % 5 == 0)       skillPoints=Configs.playerCategory.skillPointsPer5Levels;
 else       skillPoints=Configs.playerCategory.skillPointsPerLevel;
    }
 else {
      skillPoints=Configs.playerCategory.skillPointsPerLevel;
    }
    SPacketTitle packetTitle=new SPacketTitle(SPacketTitle.Type.TITLE,new TextComponentString("String_Node_Str" + playerInfo.getPlayerLevel()));
    SPacketTitle packetSubtitle=new SPacketTitle(SPacketTitle.Type.SUBTITLE,new TextComponentString("String_Node_Str" + skillPoints + "String_Node_Str"));
    ((EntityPlayerMP)player).connection.sendPacket(packetTitle);
    ((EntityPlayerMP)player).connection.sendPacket(packetSubtitle);
    if (Configs.playerCategory.spawnLevelUpParticles) {
      spawnLevelUpParticles(player.getEntityWorld(),player,playerInfo.getPlayerLevel());
    }
    playerInfo.setSkillPoints(playerInfo.getSkillPoints() + skillPoints);
  }
  LootSlashConquer.network.sendTo(new PacketUpdatePlayerInformation(playerInfo),(EntityPlayerMP)player);
}