SPIGOT-2864: Make Arrow / Item setTicksLived behave like FallingBlock

This commit is contained in:
md_5 2018-12-27 12:02:17 +11:00
parent 79ded7a8ca
commit b54b9409e0
4 changed files with 31 additions and 2 deletions

View file

@ -14,6 +14,15 @@
public abstract class EntityArrow extends Entity implements IProjectile { public abstract class EntityArrow extends Entity implements IProjectile {
private static final Predicate<Entity> g = IEntitySelector.f.and(IEntitySelector.a.and(Entity::isInteractable)); private static final Predicate<Entity> g = IEntitySelector.f.and(IEntitySelector.a.and(Entity::isInteractable));
@@ -22,7 +29,7 @@
public EntityArrow.PickupStatus fromPlayer;
public int shake;
public UUID shooter;
- private int despawnCounter;
+ public int despawnCounter; // PAIL
private int aB;
private double damage;
public int knockbackStrength;
@@ -250,6 +257,7 @@ @@ -250,6 +257,7 @@
} }

View file

@ -1,6 +1,6 @@
--- a/net/minecraft/server/EntityItem.java --- a/net/minecraft/server/EntityItem.java
+++ b/net/minecraft/server/EntityItem.java +++ b/net/minecraft/server/EntityItem.java
@@ -3,6 +3,10 @@ @@ -3,16 +3,21 @@
import java.util.Iterator; import java.util.Iterator;
import java.util.UUID; import java.util.UUID;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -11,7 +11,11 @@
public class EntityItem extends Entity { public class EntityItem extends Entity {
@@ -13,6 +17,7 @@ private static final DataWatcherObject<ItemStack> b = DataWatcher.a(EntityItem.class, DataWatcherRegistry.g);
- private int age;
+ public int age; // PAIL
public int pickupDelay;
private int e;
private UUID f; private UUID f;
private UUID g; private UUID g;
public float a; public float a;

View file

@ -84,6 +84,14 @@ public class CraftArrow extends AbstractProjectile implements Arrow {
getHandle().fromPlayer = EntityArrow.PickupStatus.a(status.ordinal()); getHandle().fromPlayer = EntityArrow.PickupStatus.a(status.ordinal());
} }
@Override
public void setTicksLived(int value) {
super.setTicksLived(value);
// Second field for EntityArrow
getHandle().despawnCounter = value;
}
@Override @Override
public EntityArrow getHandle() { public EntityArrow getHandle() {
return (EntityArrow) entity; return (EntityArrow) entity;

View file

@ -37,6 +37,14 @@ public class CraftItem extends CraftEntity implements Item {
item.pickupDelay = Math.min(delay, Short.MAX_VALUE); item.pickupDelay = Math.min(delay, Short.MAX_VALUE);
} }
@Override
public void setTicksLived(int value) {
super.setTicksLived(value);
// Second field for EntityItem
item.age = value;
}
@Override @Override
public String toString() { public String toString() {
return "CraftItem"; return "CraftItem";