11package jp .azisaba .lgw .kdstatus .commands ;
22
3+ import org .bukkit .ChatColor ;
34import org .bukkit .command .Command ;
45import org .bukkit .command .CommandExecutor ;
56import org .bukkit .command .CommandSender ;
7+ import org .bukkit .command .TabCompleter ;
68import org .bukkit .entity .Player ;
79
810import jp .azisaba .lgw .kdstatus .KDStatusReloaded ;
911import jp .azisaba .lgw .kdstatus .utils .Chat ;
1012
11- public class KDStatusCommand implements CommandExecutor {
13+ import java .util .Arrays ;
14+ import java .util .Collections ;
15+ import java .util .List ;
16+
17+ public class KDStatusCommand implements CommandExecutor , TabCompleter {
18+ private static final List <String > modes = Arrays .asList ("reload" , "migration" , "reconnect-db" );
1219
1320 private final KDStatusReloaded plugin ;
1421
@@ -18,7 +25,7 @@ public KDStatusCommand(KDStatusReloaded plugin) {
1825
1926 @ Override
2027 public boolean onCommand (CommandSender sender , Command cmd , String label , String [] args ) {
21- if ( args .length <= 0 ) {
28+ if (args .length == 0 ) {
2229 sender .sendMessage (Chat .f ("&cUsage: {0}" , cmd .getUsage ().replace ("{LABEL}" , label )));
2330 return true ;
2431 }
@@ -37,7 +44,25 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String
3744 return true ;
3845 }
3946
47+ if ( args [0 ].equalsIgnoreCase ("reconnect-db" ) ) {
48+ sender .sendMessage ("Reconnecting database..." );
49+ plugin .sql .reconnect ();
50+ sender .sendMessage ("Reconnect was finished." );
51+ sender .sendMessage ("Auto-connection test is running..." );
52+ boolean alive = plugin .sql .isConnectionAlive ();
53+ sender .sendMessage ("Result: Connection is " + (alive ? ChatColor .GREEN + "alive" : ChatColor .RED + "dead" ));
54+ return true ;
55+ }
56+
4057 sender .sendMessage (Chat .f ("&cUsage: {0}" , cmd .getUsage ().replace ("{LABEL}" , label )));
4158 return true ;
4259 }
60+
61+ @ Override
62+ public List <String > onTabComplete (CommandSender commandSender , Command command , String s , String [] args ) {
63+ if (args .length == 1 ) {
64+ return modes ;
65+ }
66+ return Collections .emptyList ();
67+ }
4368}
0 commit comments