22
33import dev .lars .apimanager .apis .languageAPI .LanguageAPI ;
44import dev .lars .utilsmanager .utils .Statements ;
5+ import dev .lars .utilsmanager .utils .SuggestHelper ;
56import io .papermc .paper .command .brigadier .BasicCommand ;
67import io .papermc .paper .command .brigadier .CommandSourceStack ;
78import net .kyori .adventure .text .Component ;
89import net .kyori .adventure .text .format .NamedTextColor ;
910import org .bukkit .entity .EntityType ;
1011import org .bukkit .entity .Player ;
1112import org .jetbrains .annotations .NotNull ;
13+ import org .jspecify .annotations .NonNull ;
1214
13- import java .util .ArrayList ;
14- import java .util .Collection ;
15- import java .util .Collections ;
15+ import java .util .*;
1616
1717public class EntityCommand implements BasicCommand {
1818
19+ private static final List <String > ENTITY_NAMES =
20+ Arrays .stream (EntityType .values ())
21+ .map (Enum ::name )
22+ .toList ();
23+
1924 @ Override
2025 public void execute (@ NotNull CommandSourceStack stack , @ NotNull String [] args ) {
2126 if (!(stack .getExecutor () instanceof Player player )) {
@@ -65,22 +70,30 @@ public void execute(@NotNull CommandSourceStack stack, @NotNull String[] args) {
6570 }
6671
6772 @ Override
68- public Collection <String > suggest (final CommandSourceStack commandSourceStack , final String [] args ) {
69- if (args .length == 0 || args .length == 1 ) {
70- Collection <String > entityList = new ArrayList <>();
71- for (EntityType entity : EntityType .values ()) {
72- entityList .add (entity .name ().toLowerCase ());
73- }
74- return entityList ;
73+ public @ NonNull Collection <String > suggest (final @ NonNull CommandSourceStack commandSourceStack , final String [] args ) {
74+ Player player = (Player ) commandSourceStack .getSender ();
75+ if (!player .hasPermission ("utilsmanager.entity" )) {
76+ player .sendMessage (Statements .getNotAllowed (player ));
77+ return Collections .emptyList ();
78+ }
79+ if (args .length == 0 ) {
80+ return ENTITY_NAMES ;
81+ }
82+ if (args .length == 1 ) {
83+ return SuggestHelper .filter (args [0 ], ENTITY_NAMES .toArray (new String [0 ]));
7584 }
7685 return Collections .emptyList ();
7786 }
7887
7988 private void sendUsage (Player player ) {
8089 if (LanguageAPI .getApi ().getLanguage (player ) == 2 ) {
81- player .sendMessage (NamedTextColor .GRAY + "Verwendung" + NamedTextColor .DARK_GRAY + ": " + NamedTextColor .BLUE + "/entity <Entität> <Anzahl>" );
90+ player .sendMessage (Statements .getUsage (player )
91+ .append (Component .text ("/entity <Entität> <Anzahl>" , NamedTextColor .BLUE ))
92+ );
8293 } else {
83- player .sendMessage (NamedTextColor .GRAY + "Use" + NamedTextColor .DARK_GRAY + ": " + NamedTextColor .BLUE + "/entity <entity> <amount>" );
94+ player .sendMessage (Statements .getUsage (player )
95+ .append (Component .text ("/entity <entity> <amount>" , NamedTextColor .BLUE ))
96+ );
8497 }
8598 }
86- }
99+ }
0 commit comments