mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-02 17:32: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) {
|
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 (movingobjectpositionentity == null) {
|
||||||
if (this.isAlive() && blockHitResult.getType() != HitResult.Type.MISS) {
|
if (this.isAlive() && blockHitResult.getType() != HitResult.Type.MISS) {
|
||||||
|
@ -98,7 +106,7 @@
|
||||||
this.hasImpulse = true;
|
this.hasImpulse = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -290,7 +314,7 @@
|
@@ -290,7 +315,7 @@
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,7 +115,7 @@
|
||||||
|
|
||||||
this.hasImpulse = true;
|
this.hasImpulse = true;
|
||||||
if (this.getPierceLevel() > 0 && projectiledeflection == ProjectileDeflection.NONE) {
|
if (this.getPierceLevel() > 0 && projectiledeflection == ProjectileDeflection.NONE) {
|
||||||
@@ -356,8 +380,8 @@
|
@@ -356,8 +381,8 @@
|
||||||
|
|
||||||
protected void tickDespawn() {
|
protected void tickDespawn() {
|
||||||
++this.life;
|
++this.life;
|
||||||
|
@ -118,7 +126,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -386,9 +410,9 @@
|
@@ -386,9 +411,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -130,7 +138,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -423,7 +447,7 @@
|
@@ -423,7 +448,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.piercingIgnoreEntityIds.size() >= this.getPierceLevel() + 1) {
|
if (this.piercingIgnoreEntityIds.size() >= this.getPierceLevel() + 1) {
|
||||||
|
@ -139,7 +147,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -444,7 +468,13 @@
|
@@ -444,7 +469,13 @@
|
||||||
int k = entity.getRemainingFireTicks();
|
int k = entity.getRemainingFireTicks();
|
||||||
|
|
||||||
if (this.isOnFire() && !flag) {
|
if (this.isOnFire() && !flag) {
|
||||||
|
@ -154,7 +162,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entity.hurtOrSimulate(damagesource, (float) i)) {
|
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));
|
this.playSound(this.soundEvent, 1.0F, 1.2F / (this.random.nextFloat() * 0.2F + 0.9F));
|
||||||
if (this.getPierceLevel() <= 0) {
|
if (this.getPierceLevel() <= 0) {
|
||||||
|
@ -163,7 +171,7 @@
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
entity.setRemainingFireTicks(k);
|
entity.setRemainingFireTicks(k);
|
||||||
@@ -506,7 +536,7 @@
|
@@ -506,7 +537,7 @@
|
||||||
this.spawnAtLocation(worldserver2, this.getPickupItem(), 0.1F);
|
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);
|
Vec3 vec3d = this.getDeltaMovement().multiply(1.0D, 0.0D, 1.0D).normalize().scale(d0 * 0.6D * d1);
|
||||||
|
|
||||||
if (vec3d.lengthSqr() > 0.0D) {
|
if (vec3d.lengthSqr() > 0.0D) {
|
||||||
|
@ -181,7 +189,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -675,7 +705,7 @@
|
@@ -675,7 +706,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nbt.contains("weapon", 10)) {
|
if (nbt.contains("weapon", 10)) {
|
||||||
|
@ -190,7 +198,7 @@
|
||||||
} else {
|
} else {
|
||||||
this.firedFromWeapon = null;
|
this.firedFromWeapon = null;
|
||||||
}
|
}
|
||||||
@@ -688,34 +718,31 @@
|
@@ -688,34 +719,31 @@
|
||||||
Entity entity1 = entity;
|
Entity entity1 = entity;
|
||||||
byte b0 = 0;
|
byte b0 = 0;
|
||||||
|
|
||||||
|
@ -237,7 +245,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
this.pickup = entityarrow_pickupstatus;
|
this.pickup = entityarrow_pickupstatus;
|
||||||
@@ -724,9 +751,24 @@
|
@@ -724,9 +752,24 @@
|
||||||
@Override
|
@Override
|
||||||
public void playerTouch(Player player) {
|
public void playerTouch(Player player) {
|
||||||
if (!this.level().isClientSide && (this.isInGround() || this.isNoPhysics()) && this.shakeTime <= 0) {
|
if (!this.level().isClientSide && (this.isInGround() || this.isNoPhysics()) && this.shakeTime <= 0) {
|
||||||
|
|
Loading…
Reference in a new issue