diff options
author | Jake Potrebic <[email protected]> | 2023-06-10 18:15:43 -0700 |
---|---|---|
committer | GitHub <[email protected]> | 2023-06-10 18:15:43 -0700 |
commit | 3722877c3c16e4e88c45a5133ec7a0e9efdd1f92 (patch) | |
tree | 793f88a6dfa406a65e75be508e5fa099c37e25c9 | |
parent | e2e874f5491b76606b50e319d0bdfbb17fb80466 (diff) | |
download | Paper-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.patch | 23 |
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 |