--- a/net/minecraft/world/entity/projectile/EntityThrownExpBottle.java
+++ b/net/minecraft/world/entity/projectile/EntityThrownExpBottle.java
@@ -39,9 +39,18 @@
     protected void a(MovingObjectPosition movingobjectposition) {
         super.a(movingobjectposition);
         if (this.level instanceof WorldServer) {
-            this.level.triggerEffect(2002, this.getChunkCoordinates(), PotionUtil.a(Potions.WATER));
+            // CraftBukkit - moved to after event
+            // this.level.triggerEffect(2002, this.getChunkCoordinates(), PotionUtil.a(Potions.WATER));
             int i = 3 + this.level.random.nextInt(5) + this.level.random.nextInt(5);
 
+            // CraftBukkit start
+            org.bukkit.event.entity.ExpBottleEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callExpBottleEvent(this, i);
+            i = event.getExperience();
+            if (event.getShowEffect()) {
+                this.level.triggerEffect(2002, this.getChunkCoordinates(), PotionUtil.a(Potions.WATER));
+            }
+            // CraftBukkit end
+
             EntityExperienceOrb.a((WorldServer) this.level, this.getPositionVector(), i);
             this.die();
         }
