fillBottle command ran before health removed
The empty bottle was being duplicated when running the command /v flask 20. This was because the command checks to see if you have the glass bottle in hand and the amount of health. The command doesn't care if you have the glass bottle any time after that. The fillBottle method in the BloodFlaskUtil class does. However, this is called after your health is set to 0. Once you die, you drop the glass bottle and the method fillBottle cannot delete it from your inventory. This was causing a duplication of a glass bottle.
Fix: moved the fillBottle method above the player's health being set. the fillBottle method removes the glass bottle and gives you a new bottle then your health is set to 0.