aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJake Potrebic <[email protected]>2023-06-10 18:15:43 -0700
committerGitHub <[email protected]>2023-06-10 18:15:43 -0700
commit3722877c3c16e4e88c45a5133ec7a0e9efdd1f92 (patch)
tree793f88a6dfa406a65e75be508e5fa099c37e25c9
parente2e874f5491b76606b50e319d0bdfbb17fb80466 (diff)
downloadPaper-3722877c3c16e4e88c45a5133ec7a0e9efdd1f92.tar.gz
Paper-3722877c3c16e4e88c45a5133ec7a0e9efdd1f92.zip
correctly hide players from entity argument suggestions (#9245)
-rw-r--r--patches/server/0757-Fix-entity-type-tags-suggestions-in-selectors.patch23
1 files changed, 22 insertions, 1 deletions
diff --git a/patches/server/0757-Fix-entity-type-tags-suggestions-in-selectors.patch b/patches/server/0757-Fix-entity-type-tags-suggestions-in-selectors.patch
index fb2a1b1a37..913bb30928 100644
--- a/patches/server/0757-Fix-entity-type-tags-suggestions-in-selectors.patch
+++ b/patches/server/0757-Fix-entity-type-tags-suggestions-in-selectors.patch
@@ -60,7 +60,7 @@ index 7592b592a541912f729d6b99f455cd87ebcb34b8..f967e9039c87ec458da3f133743df834
}
diff --git a/src/main/java/net/minecraft/commands/arguments/EntityArgument.java b/src/main/java/net/minecraft/commands/arguments/EntityArgument.java
-index 850db283bf12345e9e7d7e8e590dbe8135c6dce1..a2ea64b7ec5f47224312a1e08dd64347be6f7c43 100644
+index 850db283bf12345e9e7d7e8e590dbe8135c6dce1..a71726cee91fb406875a4540c9fb7c0ecf757294 100644
--- a/src/main/java/net/minecraft/commands/arguments/EntityArgument.java
+++ b/src/main/java/net/minecraft/commands/arguments/EntityArgument.java
@@ -128,7 +128,7 @@ public class EntityArgument implements ArgumentType<EntitySelector> {
@@ -72,6 +72,27 @@ index 850db283bf12345e9e7d7e8e590dbe8135c6dce1..a2ea64b7ec5f47224312a1e08dd64347
try {
argumentparserselector.parse();
+@@ -137,7 +137,19 @@ public class EntityArgument implements ArgumentType<EntitySelector> {
+ }
+
+ return argumentparserselector.fillSuggestions(suggestionsbuilder, (suggestionsbuilder1) -> {
+- Collection<String> collection = icompletionprovider.getOnlinePlayerNames();
++ // Paper start
++ final Collection<String> collection;
++ if (icompletionprovider instanceof CommandSourceStack commandSourceStack && commandSourceStack.getEntity() instanceof ServerPlayer sourcePlayer) {
++ collection = new java.util.ArrayList<>();
++ for (final ServerPlayer player : commandSourceStack.getServer().getPlayerList().getPlayers()) {
++ if (sourcePlayer.getBukkitEntity().canSee(player.getBukkitEntity())) {
++ collection.add(player.getGameProfile().getName());
++ }
++ }
++ } else {
++ collection = icompletionprovider.getOnlinePlayerNames();
++ }
++ // Paper end
+ Iterable<String> iterable = this.playersOnly ? collection : Iterables.concat(collection, icompletionprovider.getSelectedEntities());
+
+ SharedSuggestionProvider.suggest((Iterable) iterable, suggestionsbuilder1);
diff --git a/src/main/java/net/minecraft/commands/arguments/selector/EntitySelectorParser.java b/src/main/java/net/minecraft/commands/arguments/selector/EntitySelectorParser.java
index cdc1319a7cb45a7c5ea30885958b8c3c54f0a241..4cc2ee22369aef22c9bf9d2b244c7278d6db39bb 100644
--- a/src/main/java/net/minecraft/commands/arguments/selector/EntitySelectorParser.java