--- ../work/decompile-8eb82bde//net/minecraft/server/EntityThrownExpBottle.java	2014-11-28 17:43:43.169707433 +0000
+++ src/main/java/net/minecraft/server/EntityThrownExpBottle.java	2014-11-28 17:38:19.000000000 +0000
@@ -28,8 +28,17 @@
 
     protected void a(MovingObjectPosition movingobjectposition) {
         if (!this.world.isStatic) {
-            this.world.triggerEffect(2002, new BlockPosition(this), 0);
-            int i = 3 + this.world.random.nextInt(5) + this.world.random.nextInt(5);
+            // CraftBukkit - moved to after event
+            // this.world.triggerEffect(2002, new BlockPosition(this), 0);
+            int i = 3 + this.world.random.nextInt(5) + this.world.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.world.triggerEffect(2002, new BlockPosition(this), 0);
+            }
+            // CraftBukkit end
 
             while (i > 0) {
                 int j = EntityExperienceOrb.getOrbValue(i);