papermc/Spigot-Server-Patches/0203-Add-fromBottle-flag-to-Experience-Orbs.patch
Zach Brown 974b0afca9
Remove last bit of chunk exists region file fix
CraftBukkit removed their implementation that caused this issue,
switching to Mojang's implementation which doesn't appear to share it. I
already removed the important bit in the last upstream merge, this is
just unused and unnecessary now. So we remove it.
2017-04-29 05:27:31 -05:00

72 lines
2.8 KiB
Diff

From a35b6a34e34c3e3ae1117ff6bef65b22385b8d5b 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.windows.2