Sugestões de Comando
O Minecraft possui um poderoso sistema de sugestões de comando usado em muitos lugares, como no comando /give. Esse sistema permite que você sugira valores para os argumentos de comando ao usuário, quele pode então selecionar — é uma ótima maneira de tornar seus comandos mais amigáveis e ergonômicos.
Provedores de Sugestões
Um SuggestionProvideré usado para criar uma lista de sugestões que será enviada ao cliente. Um provedor de sugestões é uma interface funcional que recebe um CommandContexte um SuggestionBuilder, e retorna algumas Suggestions. O SuggestionProvider retorna um CompletableFuture já que as sugestões podem não estar disponíveis imediatamente.
Usando Provedores de Sugestões
Para usar um provedor de sugestões, você precisa chamar o método suggestsno builder do argumento. Este método recebe um SuggestionProvider e retorna o builder do argumento modificado com o provedor de sugestões anexado.
java
No lines matched.1
java
No lines matched.1
Provedores de Sugestões Integrados
Existem alguns provedores de sugestões integrados que você pode usar:
| Provedor de Sugestão | Descrição |
|---|---|
SuggestionProviders.SUMMONABLE_ENTITIES | Sugere todas as entidades que podem ser invocadas. |
SuggestionProviders.AVAILABLE_SOUNDS | Sugere todos os sons que podem ser tocados. |
LootCommand.SUGGESTION_PROVIDER | Sugere todas as tabelas de itens que estão disponíveis. |
SuggestionProviders.ALL_BIOMES | Sugere todos os biomas que estão disponíveis. |
Criando um Provedor de Sugestões Personalizado
Se um provedor integrado não atender às suas necessidades, você pode criar seu próprio provedor de sugestões. Para fazer isso, é necessário criar uma classe que implemente a interface SuggestionProvider e sobrescreva o método getSuggestions.
Neste exemplo, criaremos um provedor de sugestões que sugere todos os nomes de usuário dos jogadores no servidor.
java
No lines matched.1
Para usar esse provedor de sugestões, você simplesmente passaria uma instância dele para o método .suggestsno builder do argumento.
java
No lines matched.1
java
No lines matched.1
Obviamente, os provedores de sugestões podem ser mais complexos, pois também podem ler o contexto do comando para fornecer sugestões baseadas no estado do comando — como os argumentos que já foram fornecidos.
Isso poderia acontecer na forma de ler o inventário do jogador e sugerir itens, ou entidades que estão perto desse jogador.

