From 36078e1a3d32fcb578b83d4d684b0ea6453c4383 Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Fri, 20 Jan 2017 09:01:53 -0600 Subject: [PATCH] Add fromBottle flag to Experience Orbs (#584) * Add fromBottle flag to Experience Orbs --- ...d-fromBottle-flag-to-Experience-Orbs.patch | 23 ++++++ ...d-fromBottle-flag-to-Experience-Orbs.patch | 71 +++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 Spigot-API-Patches/0049-Add-fromBottle-flag-to-Experience-Orbs.patch create mode 100644 Spigot-Server-Patches/0206-Add-fromBottle-flag-to-Experience-Orbs.patch diff --git a/Spigot-API-Patches/0049-Add-fromBottle-flag-to-Experience-Orbs.patch b/Spigot-API-Patches/0049-Add-fromBottle-flag-to-Experience-Orbs.patch new file mode 100644 index 000000000..f111b42ed --- /dev/null +++ b/Spigot-API-Patches/0049-Add-fromBottle-flag-to-Experience-Orbs.patch @@ -0,0 +1,23 @@ +From e20b2ab5e6e8c3ce48744201e26165aff882eabf Mon Sep 17 00:00:00 2001 +From: BillyGalbreath +Date: Sat, 14 Jan 2017 16:15:20 -0600 +Subject: [PATCH] Add fromBottle flag to Experience Orbs + + +diff --git a/src/main/java/org/bukkit/entity/ExperienceOrb.java b/src/main/java/org/bukkit/entity/ExperienceOrb.java +index c286edfd..bcb68fa7 100644 +--- a/src/main/java/org/bukkit/entity/ExperienceOrb.java ++++ b/src/main/java/org/bukkit/entity/ExperienceOrb.java +@@ -18,4 +18,9 @@ public interface ExperienceOrb extends Entity { + * @param value Amount of experience + */ + public void setExperience(int value); ++ ++ /** ++ * Check if this orb was spawned from a ThrownExpBottle ++ */ ++ public boolean isFromBottle(); + } +-- +2.11.0 + diff --git a/Spigot-Server-Patches/0206-Add-fromBottle-flag-to-Experience-Orbs.patch b/Spigot-Server-Patches/0206-Add-fromBottle-flag-to-Experience-Orbs.patch new file mode 100644 index 000000000..187bf80cb --- /dev/null +++ b/Spigot-Server-Patches/0206-Add-fromBottle-flag-to-Experience-Orbs.patch @@ -0,0 +1,71 @@ +From 5bad590913815708415dd55c1b6787b797cd3d5d Mon Sep 17 00:00:00 2001 +From: BillyGalbreath +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 14431b8a..54c9200a 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 0255986f..28931295 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 3a09cab3..f992019e 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java +@@ -18,6 +18,10 @@ public class CraftExperienceOrb extends CraftEntity implements ExperienceOrb { + getHandle().value = value; + } + ++ // Paper start ++ public boolean isFromBottle() { ++ return getHandle().isFromBottle(); ++ } ++ // Paper end ++ + @Override + public EntityExperienceOrb getHandle() { + return (EntityExperienceOrb) entity; +-- +2.11.0 +