44import dev .plex .api .player .PlexPlayerView ;
55import dev .plex .api .punishment .PunishmentRequest ;
66import dev .plex .api .punishment .PunishmentType ;
7- import dev .plex .command .annotation .CommandParameters ;
8- import dev .plex .command .annotation .CommandPermissions ;
97import dev .plex .command .exception .PlayerNotFoundException ;
108import dev .plex .utilities .FilterUtils ;
119import net .kyori .adventure .text .Component ;
1614import org .jetbrains .annotations .NotNull ;
1715import org .jetbrains .annotations .Nullable ;
1816
19- import java .util .Collections ;
20- import java .util .List ;
21- import java .util .stream .Collectors ;
2217
23- @ CommandParameters (name = "obliterate" , description = "Unleash divine punishment upon someone" , usage = "/<command> <player> [reason]" )
24- @ CommandPermissions (permission = "plex.chatfilter.obliterate" )
25- public class ObliterateCommand extends PlexCommand
18+ public class ObliterateCommand extends SimplePlexCommand
2619{
20+ private final ChatFilterModule module ;
21+
22+ public ObliterateCommand (ChatFilterModule module )
23+ {
24+ super (command ("obliterate" )
25+ .description ("Unleash divine punishment upon someone" )
26+ .usage ("/<command> <player> [reason]" )
27+ .aliases ("doom" )
28+ .permission ("plex.chatfilter.obliterate" )
29+ .build ());
30+ this .module = module ;
31+ }
2732 @ Override
2833 protected Component execute (@ NotNull CommandSender commandSender , @ Nullable Player player , @ NotNull String [] strings )
2934 {
@@ -32,7 +37,7 @@ protected Component execute(@NotNull CommandSender commandSender, @Nullable Play
3237 return usage ();
3338 }
3439
35- PlexPlayerView plexPlayer = ChatFilterModule . getApi ().players ().byName (strings [0 ])
40+ PlexPlayerView plexPlayer = module . api ().players ().byName (strings [0 ])
3641 .orElseThrow (PlayerNotFoundException ::new );
3742
3843 Player target = getNonNullPlayer (plexPlayer .name ());
@@ -47,19 +52,19 @@ protected Component execute(@NotNull CommandSender commandSender, @Nullable Play
4752
4853 broadcast (messageComponent ("castingOblivion" , commandSender , target ));
4954
50- ChatFilterModule . getApi ().scheduler ().runEntityLater (target , () ->
55+ module . api ().scheduler ().runEntityLater (target , () ->
5156 broadcast (messageComponent ("playerEviscerated" , target )), 2 );
5257
53- ChatFilterModule . getApi ().scheduler ().runEntityLater (target , () ->
58+ module . api ().scheduler ().runEntityLater (target , () ->
5459 {
5560 Bukkit .dispatchCommand (Bukkit .getConsoleSender (), "lp user " + target .getName () + " clear" );
5661 if (target .isOp ()) target .setOp (false );
5762 if (target .isWhitelisted ()) target .setWhitelisted (false );
5863 }, 2 );
5964
60- ChatFilterModule . getApi ().scheduler ().runEntityLater (target , () -> target .setHealth (0 ), 10 );
65+ module . api ().scheduler ().runEntityLater (target , () -> target .setHealth (0 ), 10 );
6166
62- ChatFilterModule . getApi ().scheduler ().runEntityLater (target , () ->
67+ module . api ().scheduler ().runEntityLater (target , () ->
6368 broadcast (messageComponent ("playerEradicated" , target )), 30 );
6469
6570 FilterUtils .crashPlayer (target );
@@ -79,29 +84,11 @@ protected Component execute(@NotNull CommandSender commandSender, @Nullable Play
7984 null
8085 );
8186
82- ChatFilterModule . getApi ().scheduler ().runEntityLater (target , () ->
87+ module . api ().scheduler ().runEntityLater (target , () ->
8388 ChatFilterModule .getApi ().punishments ().punish (plexPlayer , request ), 38 );
84- ChatFilterModule . getApi ().scheduler ().runEntityLater (target , () ->
89+ module . api ().scheduler ().runEntityLater (target , () ->
8590 broadcast (messageComponent ("targetPermBanned" , commandSender , target )), 38 );
8691
8792 return null ;
8893 }
89-
90- @ Override
91- public @ NotNull List <String > smartTabComplete (@ NotNull CommandSender sender , @ NotNull String alias , @ NotNull String [] args ) throws IllegalArgumentException
92- {
93- if (!silentCheckPermission (sender , this .getPermission ()))
94- {
95- return Collections .emptyList ();
96- }
97-
98- if (args .length == 1 )
99- {
100- return ChatFilterModule .getApi ().players ().onlineNames ().stream ()
101- .filter (name -> name .toLowerCase ().startsWith (args [0 ].toLowerCase ()))
102- .collect (Collectors .toList ());
103- }
104-
105- return Collections .emptyList ();
106- }
10794}
0 commit comments