diff --git a/paper-server/patches/sources/net/minecraft/world/entity/projectile/Projectile.java.patch b/paper-server/patches/sources/net/minecraft/world/entity/projectile/Projectile.java.patch index b16a8c78a..60b1ec553 100644 --- a/paper-server/patches/sources/net/minecraft/world/entity/projectile/Projectile.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/entity/projectile/Projectile.java.patch @@ -190,15 +190,15 @@ return false; } else { Entity owner = this.getOwner(); -+ // Paper start - Cancel hit for vanished players -+ if (owner instanceof net.minecraft.server.level.ServerPlayer && target instanceof net.minecraft.server.level.ServerPlayer) { -+ org.bukkit.entity.Player collided = (org.bukkit.entity.Player) target.getBukkitEntity(); ++ // Paper start - Cancel hit for vanished entities ++ if (owner instanceof net.minecraft.server.level.ServerPlayer) { ++ org.bukkit.entity.Entity collided = target.getBukkitEntity(); + org.bukkit.entity.Player shooter = (org.bukkit.entity.Player) owner.getBukkitEntity(); + if (!shooter.canSee(collided)) { + return false; + } + } -+ // Paper end - Cancel hit for vanished players ++ // Paper end - Cancel hit for vanished entities return owner == null || this.leftOwner || !owner.isPassengerOfSameVehicle(target); } }