Archiviert
13
0
Dieses Repository wurde am 2024-12-25 archiviert. Du kannst Dateien ansehen und es klonen, aber nicht pushen oder Issues/Pull-Requests öffnen.
Paper-Old/nms-patches/EntityProjectile.patch
Zach Brown 622add8458 MC-88491: Fix projectile colliding with shooter
In some situations, a projectile made collide with the entity that shot
it. This occurs because the game sets the ignored entity incorrectly.
Our fix is to ensure that the shooter is the only entity that gets
ignored by the projectile.
2016-12-23 16:41:54 +11:00

32 Zeilen
1.4 KiB
Diff

--- a/net/minecraft/server/EntityProjectile.java
+++ b/net/minecraft/server/EntityProjectile.java
@@ -35,6 +35,7 @@
public EntityProjectile(World world, EntityLiving entityliving) {
this(world, entityliving.locX, entityliving.locY + (double) entityliving.getHeadHeight() - 0.10000000149011612D, entityliving.locZ);
this.shooter = entityliving;
+ this.projectileSource = (org.bukkit.entity.LivingEntity) entityliving.getBukkitEntity(); // CraftBukkit
}
protected void i() {}
@@ -127,7 +128,7 @@
if (entity1.isInteractable()) {
if (entity1 == this.c) {
flag = true;
- } else if (this.shooter != null && this.ticksLived < 2 && this.c == null) {
+ } else if (this.shooter != null && this.ticksLived < 2 && this.c == null && this.shooter == entity1) { // CraftBukkit - MC-88491
this.c = entity1;
flag = true;
} else {
@@ -164,6 +165,11 @@
this.e(movingobjectposition.a());
} else {
this.a(movingobjectposition);
+ // CraftBukkit start
+ if (this.dead) {
+ org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this, movingobjectposition);
+ }
+ // CraftBukkit end
}
}