11package com .eternalcode .core .bridge .litecommand .argument ;
22
3+ import com .eternalcode .core .feature .vanish .VanishService ;
34import com .eternalcode .core .injector .annotations .Inject ;
45import com .eternalcode .core .injector .annotations .lite .LiteArgument ;
56import com .eternalcode .core .translation .Translation ;
1213import dev .rollczi .litecommands .suggestion .SuggestionResult ;
1314import org .bukkit .Server ;
1415import org .bukkit .command .CommandSender ;
15- import org .bukkit .entity .HumanEntity ;
1616import org .bukkit .entity .Player ;
17- import java .util .Objects ;
1817
1918@ LiteArgument (type = Player .class )
2019public class PlayerArgument extends AbstractViewerArgument <Player > {
2120
2221 private final Server server ;
22+ private final VanishService vanishService ;
2323
2424 @ Inject
25- public PlayerArgument (ViewerService viewerService , TranslationManager translationManager , Server server ) {
25+ public PlayerArgument (
26+ ViewerService viewerService ,
27+ TranslationManager translationManager ,
28+ Server server ,
29+ VanishService vanishService
30+ ) {
2631 super (viewerService , translationManager );
2732 this .server = server ;
33+ this .vanishService = vanishService ;
2834 }
2935
3036 @ Override
@@ -39,9 +45,14 @@ public ParseResult<Player> parse(Invocation<CommandSender> invocation, String ar
3945 }
4046
4147 @ Override
42- public SuggestionResult suggest (Invocation <CommandSender > invocation , Argument <Player > argument , SuggestionContext context ) {
48+ public SuggestionResult suggest (
49+ Invocation <CommandSender > invocation ,
50+ Argument <Player > argument ,
51+ SuggestionContext context
52+ ) {
4353 return this .server .getOnlinePlayers ().stream ()
44- .map (HumanEntity ::getName )
54+ .filter (player -> !this .vanishService .isVanished (player .getUniqueId ()))
55+ .map (player -> player .getName ())
4556 .collect (SuggestionResult .collector ());
4657 }
4758}
0 commit comments