Pass fireworks through vanished players (#3021)

This commit is contained in:
Nassim 2020-03-18 14:58:50 +01:00 committed by GitHub
parent 4d991f1946
commit d63075dff8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 23 additions and 2 deletions

View File

@ -1,4 +1,4 @@
From b6b1a2d029d0bf249832256d1f7b0542e6ab2b39 Mon Sep 17 00:00:00 2001 From 1e468d382d6bf46a4ca53b22b3ab0afa0a95ae3a Mon Sep 17 00:00:00 2001
From: Hugo Manrique <hugmanrique@gmail.com> From: Hugo Manrique <hugmanrique@gmail.com>
Date: Mon, 23 Jul 2018 14:22:26 +0200 Date: Mon, 23 Jul 2018 14:22:26 +0200
Subject: [PATCH] Vanished players don't have rights Subject: [PATCH] Vanished players don't have rights
@ -17,6 +17,27 @@ index 2612d60e3..d8f85eda0 100644
public final List<Entity> passengers; public final List<Entity> passengers;
protected int j; protected int j;
@Nullable @Nullable
diff --git a/src/main/java/net/minecraft/server/EntityFireworks.java b/src/main/java/net/minecraft/server/EntityFireworks.java
index 278ef79d8..5c3731f68 100644
--- a/src/main/java/net/minecraft/server/EntityFireworks.java
+++ b/src/main/java/net/minecraft/server/EntityFireworks.java
@@ -110,6 +110,16 @@ public class EntityFireworks extends Entity implements IProjectile {
vec3d = this.getMot();
MovingObjectPosition movingobjectposition = ProjectileHelper.a(this, this.getBoundingBox().a(vec3d).g(1.0D), (entity) -> {
+ // Paper start - Cancel hit for vanished players
+ if (this.spawningEntity != null && entity instanceof EntityPlayer && this.world instanceof WorldServer) {
+ Entity spawningEntity = ((WorldServer) this.world).getEntity(this.spawningEntity);
+ if (spawningEntity instanceof EntityPlayer) {
+ org.bukkit.entity.Player collided = (org.bukkit.entity.Player) entity.getBukkitEntity();
+ org.bukkit.entity.Player shooter = (org.bukkit.entity.Player) spawningEntity.getBukkitEntity();
+ if (!shooter.canSee(collided)) return false;
+ }
+ }
+ // Paper end
return !entity.isSpectator() && entity.isAlive() && entity.isInteractable();
}, RayTrace.BlockCollisionOption.COLLIDER, true);
diff --git a/src/main/java/net/minecraft/server/IBlockData.java b/src/main/java/net/minecraft/server/IBlockData.java diff --git a/src/main/java/net/minecraft/server/IBlockData.java b/src/main/java/net/minecraft/server/IBlockData.java
index 3a1ad2346..9ab57be85 100644 index 3a1ad2346..9ab57be85 100644
--- a/src/main/java/net/minecraft/server/IBlockData.java --- a/src/main/java/net/minecraft/server/IBlockData.java
@ -146,5 +167,5 @@ index f931fa48b..317a5bf4e 100644
return event; return event;
} }
-- --
2.25.1 2.25.0.windows.1