mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Hide hidden players from entity selector
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: BillyGalbreath <blake.galbreath@gmail.com>
|
||||
Date: Thu, 13 May 2021 16:18:29 -0500
|
||||
Subject: [PATCH] Hide hidden players from entity selector
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java b/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java
|
||||
index ee3123ac8a568d915ca4e1b42fc1196c269b287e..10c0eb9387da3ca4a8fddebd4f4d7fef3e0ccd23 100644
|
||||
--- a/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java
|
||||
+++ b/src/main/java/net/minecraft/commands/arguments/selector/EntitySelector.java
|
||||
@@ -169,10 +169,10 @@ public class EntitySelector {
|
||||
|
||||
if (this.j != null) {
|
||||
entityplayer = commandlistenerwrapper.getServer().getPlayerList().getPlayer(this.j);
|
||||
- return (List) (entityplayer == null ? Collections.emptyList() : Lists.newArrayList(new EntityPlayer[]{entityplayer}));
|
||||
+ return entityplayer == null || !canSee(commandlistenerwrapper, entityplayer) ? Collections.emptyList() : Lists.newArrayList(entityplayer); // Purpur
|
||||
} else if (this.k != null) {
|
||||
entityplayer = commandlistenerwrapper.getServer().getPlayerList().getPlayer(this.k);
|
||||
- return (List) (entityplayer == null ? Collections.emptyList() : Lists.newArrayList(new EntityPlayer[]{entityplayer}));
|
||||
+ return entityplayer == null || !canSee(commandlistenerwrapper, entityplayer) ? Collections.emptyList() : Lists.newArrayList(entityplayer); // Purpur
|
||||
} else {
|
||||
Vec3D vec3d = (Vec3D) this.f.apply(commandlistenerwrapper.getPosition());
|
||||
Predicate<Entity> predicate = this.a(vec3d);
|
||||
@@ -182,7 +182,7 @@ public class EntitySelector {
|
||||
EntityPlayer entityplayer1 = (EntityPlayer) commandlistenerwrapper.getEntity();
|
||||
|
||||
if (predicate.test(entityplayer1)) {
|
||||
- return Lists.newArrayList(new EntityPlayer[]{entityplayer1});
|
||||
+ return !canSee(commandlistenerwrapper, entityplayer1) ? Collections.emptyList() : Lists.newArrayList(entityplayer1); // Purpur
|
||||
}
|
||||
}
|
||||
|
||||
@@ -195,6 +195,7 @@ public class EntitySelector {
|
||||
|
||||
predicate.getClass();
|
||||
object = worldserver.a(predicate::test);
|
||||
+ ((List) object).removeIf(entityplayer3 -> !canSee(commandlistenerwrapper, (EntityPlayer) entityplayer3)); // Purpur
|
||||
} else {
|
||||
object = Lists.newArrayList();
|
||||
Iterator iterator = commandlistenerwrapper.getServer().getPlayerList().getPlayers().iterator();
|
||||
@@ -202,7 +203,7 @@ public class EntitySelector {
|
||||
while (iterator.hasNext()) {
|
||||
EntityPlayer entityplayer2 = (EntityPlayer) iterator.next();
|
||||
|
||||
- if (predicate.test(entityplayer2)) {
|
||||
+ if (predicate.test(entityplayer2) && canSee(commandlistenerwrapper, entityplayer2)) { // Purpur
|
||||
((List) object).add(entityplayer2);
|
||||
}
|
||||
}
|
||||
@@ -244,4 +245,11 @@ public class EntitySelector {
|
||||
public static IChatMutableComponent a(List<? extends Entity> list) {
|
||||
return ChatComponentUtils.b(list, Entity::getScoreboardDisplayName);
|
||||
}
|
||||
+
|
||||
+ // Purpur start
|
||||
+ private boolean canSee(CommandListenerWrapper commandlistenerwrapper, EntityPlayer target) {
|
||||
+ Entity entity = commandlistenerwrapper.getEntity();
|
||||
+ return !(entity instanceof EntityPlayer) || ((EntityPlayer) entity).getBukkitEntity().canSee(target.getBukkitEntity());
|
||||
+ }
|
||||
+ // Purpur end
|
||||
}
|
||||
Reference in New Issue
Block a user