From 4c1854850ad87d0ed98b9d8928f34dc9f0e6b80d Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Sat, 14 Jan 2017 16:15:26 -0600
Subject: [PATCH] Add fromBottle flag to Experience Orbs


diff --git a/src/main/java/net/minecraft/server/EntityExperienceOrb.java b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
index 14431b8ad..54c9200a9 100644
--- a/src/main/java/net/minecraft/server/EntityExperienceOrb.java
+++ b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
@@ -15,6 +15,14 @@ public class EntityExperienceOrb extends Entity {
     public int value;
     private EntityHuman targetPlayer;
     private int targetTime;
+    // Paper start
+    private boolean fromBottle = false;
+
+    public EntityExperienceOrb(World world, double d0, double d1, double d2, int i, boolean fromBottle) {
+        this(world, d0, d1, d2, i);
+        this.fromBottle = fromBottle;
+    }
+    // Paper end
 
     public EntityExperienceOrb(World world, double d0, double d1, double d2, int i) {
         super(world);
@@ -27,6 +35,12 @@ public class EntityExperienceOrb extends Entity {
         this.value = i;
     }
 
+    // Paper start
+    public boolean isFromBottle() {
+        return fromBottle;
+    }
+    // Paper end
+
     protected boolean playStepSound() {
         return false;
     }
diff --git a/src/main/java/net/minecraft/server/EntityThrownExpBottle.java b/src/main/java/net/minecraft/server/EntityThrownExpBottle.java
index 0255986fd..289312950 100644
--- a/src/main/java/net/minecraft/server/EntityThrownExpBottle.java
+++ b/src/main/java/net/minecraft/server/EntityThrownExpBottle.java
@@ -40,7 +40,7 @@ public class EntityThrownExpBottle extends EntityProjectile {
                 int j = EntityExperienceOrb.getOrbValue(i);
 
                 i -= j;
-                this.world.addEntity(new EntityExperienceOrb(this.world, this.locX, this.locY, this.locZ, j));
+                this.world.addEntity(new EntityExperienceOrb(this.world, this.locX, this.locY, this.locZ, j, true)); // Paper - add fromBottle flag
             }
 
             this.die();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java
index 3a09cab3d..61e3c6c3e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java
@@ -18,6 +18,13 @@ public class CraftExperienceOrb extends CraftEntity implements ExperienceOrb {
         getHandle().value = value;
     }
 
+    // Paper start
+    @Override
+    public boolean isFromBottle() {
+        return getHandle().isFromBottle();
+    }
+    // Paper end
+
     @Override
     public EntityExperienceOrb getHandle() {
         return (EntityExperienceOrb) entity;
-- 
2.12.2