mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-30 16:19:03 +01:00
Fix arrows never despawning MC-125757
This forces the despawn counter to start ticking regardless of state after the arrow has been alive for 200 ticks (10 seconds) instead of getting stuck in a never despawn state (bubble columns, etc).
This commit is contained in:
parent
9cb53a41ca
commit
3ceb5297a3
1 changed files with 20 additions and 12 deletions
|
@ -89,7 +89,15 @@
|
|||
}
|
||||
|
||||
public void setSoundEvent(SoundEvent sound) {
|
||||
@@ -282,7 +306,7 @@
|
||||
@@ -220,6 +244,7 @@
|
||||
}
|
||||
|
||||
} else {
|
||||
+ if (tickCount > 200) this.tickDespawn(); // Paper - tick despawnCounter regardless after 10 seconds
|
||||
this.inGroundTime = 0;
|
||||
Vec3 vec3d2 = this.position();
|
||||
|
||||
@@ -282,7 +307,7 @@
|
||||
|
||||
if (movingobjectpositionentity == null) {
|
||||
if (this.isAlive() && blockHitResult.getType() != HitResult.Type.MISS) {
|
||||
|
@ -98,7 +106,7 @@
|
|||
this.hasImpulse = true;
|
||||
}
|
||||
} else {
|
||||
@@ -290,7 +314,7 @@
|
||||
@@ -290,7 +315,7 @@
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -107,7 +115,7 @@
|
|||
|
||||
this.hasImpulse = true;
|
||||
if (this.getPierceLevel() > 0 && projectiledeflection == ProjectileDeflection.NONE) {
|
||||
@@ -356,8 +380,8 @@
|
||||
@@ -356,8 +381,8 @@
|
||||
|
||||
protected void tickDespawn() {
|
||||
++this.life;
|
||||
|
@ -118,7 +126,7 @@
|
|||
}
|
||||
|
||||
}
|
||||
@@ -386,9 +410,9 @@
|
||||
@@ -386,9 +411,9 @@
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -130,7 +138,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -423,7 +447,7 @@
|
||||
@@ -423,7 +448,7 @@
|
||||
}
|
||||
|
||||
if (this.piercingIgnoreEntityIds.size() >= this.getPierceLevel() + 1) {
|
||||
|
@ -139,7 +147,7 @@
|
|||
return;
|
||||
}
|
||||
|
||||
@@ -444,7 +468,13 @@
|
||||
@@ -444,7 +469,13 @@
|
||||
int k = entity.getRemainingFireTicks();
|
||||
|
||||
if (this.isOnFire() && !flag) {
|
||||
|
@ -154,7 +162,7 @@
|
|||
}
|
||||
|
||||
if (entity.hurtOrSimulate(damagesource, (float) i)) {
|
||||
@@ -490,7 +520,7 @@
|
||||
@@ -490,7 +521,7 @@
|
||||
|
||||
this.playSound(this.soundEvent, 1.0F, 1.2F / (this.random.nextFloat() * 0.2F + 0.9F));
|
||||
if (this.getPierceLevel() <= 0) {
|
||||
|
@ -163,7 +171,7 @@
|
|||
}
|
||||
} else {
|
||||
entity.setRemainingFireTicks(k);
|
||||
@@ -506,7 +536,7 @@
|
||||
@@ -506,7 +537,7 @@
|
||||
this.spawnAtLocation(worldserver2, this.getPickupItem(), 0.1F);
|
||||
}
|
||||
|
||||
|
@ -172,7 +180,7 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
@@ -538,7 +568,7 @@
|
||||
@@ -538,7 +569,7 @@
|
||||
Vec3 vec3d = this.getDeltaMovement().multiply(1.0D, 0.0D, 1.0D).normalize().scale(d0 * 0.6D * d1);
|
||||
|
||||
if (vec3d.lengthSqr() > 0.0D) {
|
||||
|
@ -181,7 +189,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
@@ -675,7 +705,7 @@
|
||||
@@ -675,7 +706,7 @@
|
||||
}
|
||||
|
||||
if (nbt.contains("weapon", 10)) {
|
||||
|
@ -190,7 +198,7 @@
|
|||
} else {
|
||||
this.firedFromWeapon = null;
|
||||
}
|
||||
@@ -688,34 +718,31 @@
|
||||
@@ -688,34 +719,31 @@
|
||||
Entity entity1 = entity;
|
||||
byte b0 = 0;
|
||||
|
||||
|
@ -237,7 +245,7 @@
|
|||
}
|
||||
|
||||
this.pickup = entityarrow_pickupstatus;
|
||||
@@ -724,9 +751,24 @@
|
||||
@@ -724,9 +752,24 @@
|
||||
@Override
|
||||
public void playerTouch(Player player) {
|
||||
if (!this.level().isClientSide && (this.isInGround() || this.isNoPhysics()) && this.shakeTime <= 0) {
|
||||
|
|
Loading…
Reference in a new issue