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 {
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 @@
}

View file

@ -1,6 +1,6 @@
--- a/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.UUID;
import javax.annotation.Nullable;
@ -11,7 +11,11 @@
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 g;
public float a;

View file

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

View file

@ -37,6 +37,14 @@ public class CraftItem extends CraftEntity implements Item {
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
public String toString() {
return "CraftItem";