Przeglądaj źródła

Refactoring: removing unused annotations and reworking help command

RedstoneFuture 2 lat temu
rodzic
commit
6012a97235

+ 29 - 42
missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/MWCommands.java

@@ -47,35 +47,29 @@ public class MWCommands extends BaseCommand {
     public void mwCommand(CommandSender sender) {
 
         sender.sendMessage(Messages.getPrefix() + "MissileWars v" + MissileWars.getInstance().version + " by Butzlabben");
-
-        if (sender.hasPermission("mw.quit"))
-            sender.sendMessage(Messages.getPrefix() + "/mw quit -  Quit a game");
-        if (sender.hasPermission("mw.start"))
-            sender.sendMessage(Messages.getPrefix() + "/mw start - Starts the game");
-        if (sender.hasPermission("mw.stop"))
-            sender.sendMessage(Messages.getPrefix() + "/mw stop - Stops the game");
-        if (sender.hasPermission("mw.restart"))
-            sender.sendMessage(Messages.getPrefix() + "/mw restart - Restarts the game");
-        if (sender.hasPermission("mw.appendrestart"))
-            sender.sendMessage(Messages.getPrefix()
-                    + "/mw appendrestart - Appends a restart after the next game ends");
-        if (sender.hasPermission("mw.paste"))
-            sender.sendMessage(Messages.getPrefix() + "/mw paste - Pastes a missile");
-        if (sender.hasPermission("mw.reload"))
-            sender.sendMessage(Messages.getPrefix() + "/mw reload - Reloads configurations");
-        if (sender.hasPermission("mw.stats"))
-            sender.sendMessage(Messages.getPrefix() + "/mw stats - Shows stats");
-        if (sender.hasPermission("mw.stats.recommendations"))
-            sender.sendMessage(Messages.getPrefix() + "/mw stats recommendations - Shows recommendations");
-        if (sender.hasPermission("mw.stats.players"))
-            sender.sendMessage(Messages.getPrefix() + "/mw stats players - Shows player list");
-        if (sender.hasPermission("mw.stats.list"))
-            sender.sendMessage(Messages.getPrefix() + "/mw stats list - Lists history of games");
+        
+        sendHelpMessage(sender, "mw.vote", "/mw vote", "Vote for a arena.");
+        sendHelpMessage(sender, "mw.change", "/mw change <1|2>", "Changes your team.");
+        sendHelpMessage(sender, "mw.quit", "/mw quit", "Quit a game.");
+        
+        sendHelpMessage(sender, "mw.stats", "/mw stats [from] [arena]", "Shows stats.");
+        sendHelpMessage(sender, "mw.stats.recommendations", "/mw stats recommendations [from] [arena]", "Shows recommendations.");
+        sendHelpMessage(sender, "mw.stats.players", "/mw stats players [from] [arena]", "Shows player list.");
+        sendHelpMessage(sender, "mw.stats.list", "/mw stats list [from] [arena]", "Lists history of games.");
+        
+        sendHelpMessage(sender, "mw.listgames", "/mw listgames", "List the active games.");
+        sendHelpMessage(sender, "mw.paste", "/mw paste <missile>", "Pastes a missile.");
+        sendHelpMessage(sender, "mw.start", "/mw start", "Starts the game.");
+        sendHelpMessage(sender, "mw.stop", "/mw stop [lobby]", "Stops the game.");
+        sendHelpMessage(sender, "mw.appendrestart", "/mw appendrestart", "Appends a restart after the next game ends.");
+        sendHelpMessage(sender, "mw.reload", "/mw reload", "Reload the plugin.");
+        sendHelpMessage(sender, "mw.debug", "/mw debug", "Show debug info.");
+        sendHelpMessage(sender, "mw.restartall", "/mw restartall", "Restart all games.");
+
+        sendHelpMessage(sender, "mw.setup", "/mw setup <main|lobby|area>", "Setup the game lobby and game area.");
     }
-
+    
     @Subcommand("listgames|list|games")
-    @Description("List the active games.")
-    @Syntax("/mw listgames")
     @CommandCompletion("@nothing")
     @CommandPermission("mw.listgames")
     public void listgamesCommand(CommandSender sender, String[] args) {
@@ -96,8 +90,6 @@ public class MWCommands extends BaseCommand {
     }
     
     @Subcommand("paste")
-    @Description("Pastes a missile.")
-    @Syntax("/mw paste <missile>")
     @CommandCompletion("@nothing")
     @CommandPermission("mw.paste")
     public void pasteCommand(CommandSender sender, String[] args) {
@@ -132,8 +124,6 @@ public class MWCommands extends BaseCommand {
     }
 
     @Subcommand("start")
-    @Description("Starts the game.")
-    @Syntax("/mw start")
     @CommandCompletion("@nothing")
     @CommandPermission("mw.start")
     public void startCommand(CommandSender sender, String[] args) {
@@ -181,8 +171,6 @@ public class MWCommands extends BaseCommand {
     }
 
     @Subcommand("stop")
-    @Description("Stops the game.")
-    @Syntax("/mw stop [lobby]")
     @CommandCompletion("@nothing")
     @CommandPermission("mw.stop")
     public void stopCommand(CommandSender sender, String[] args) {
@@ -216,8 +204,6 @@ public class MWCommands extends BaseCommand {
     }
     
     @Subcommand("appendrestart")
-    @Description("Appends a restart after the next game ends.")
-    @Syntax("/mw appendrestart")
     @CommandCompletion("@nothing")
     @CommandPermission("mw.appendrestart")
     public void appendrestartCommand(CommandSender sender, String[] args) {
@@ -241,8 +227,6 @@ public class MWCommands extends BaseCommand {
     }
 
     @Subcommand("reload")
-    @Description("Reload the plugin.")
-    @Syntax("/mw reload")
     @CommandCompletion("@nothing")
     @CommandPermission("mw.reload")
     public void reloadCommand(CommandSender sender, String[] args) {
@@ -262,8 +246,6 @@ public class MWCommands extends BaseCommand {
     }
 
     @Subcommand("debug")
-    @Description("Show debug info.")
-    @Syntax("/mw debug")
     @CommandCompletion("@nothing")
     @CommandPermission("mw.debug")
     public void debugCommand(CommandSender sender, String[] args) {
@@ -286,10 +268,8 @@ public class MWCommands extends BaseCommand {
     }
 
     @Subcommand("restartall")
-    @Description("Restart all games.")
-    @Syntax("/mw restartall")
     @CommandCompletion("@nothing")
-    @CommandPermission("mw.reload")
+    @CommandPermission("mw.restartall")
     public void restartallCommand(CommandSender sender, String[] args) {
 
         if (!senderIsPlayer(sender)) return;
@@ -317,4 +297,11 @@ public class MWCommands extends BaseCommand {
         sender.sendMessage(Messages.getPrefix() + "§cYou are not a player");
         return false;
     }
+    
+    static void sendHelpMessage(CommandSender sender, String permission, String command, String description) {
+        if (sender instanceof Player) {
+            if (!sender.hasPermission(permission)) return;
+        }
+        sender.sendMessage(Messages.getPrefix() + command + " - " + description);
+    }
 }

+ 0 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/SetupCommands.java

@@ -35,8 +35,6 @@ public class SetupCommands extends BaseCommand {
     private Player player;
 
     @Default
-    @Description("Setup the game lobby and game area.")
-    @Syntax("/mw stats <main|lobby|area>")
     @CommandPermission("mw.setup")
     public void setupCommands(CommandSender sender, String[] args) {
         sender.sendMessage(Messages.getPrefix() + "§fSetup usage: §7/mw stats <main|lobby|area>");

+ 4 - 9
missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/StatsCommands.java

@@ -19,7 +19,10 @@
 package de.butzlabben.missilewars.commands;
 
 import co.aikar.commands.BaseCommand;
-import co.aikar.commands.annotation.*;
+import co.aikar.commands.annotation.CommandAlias;
+import co.aikar.commands.annotation.CommandPermission;
+import co.aikar.commands.annotation.Default;
+import co.aikar.commands.annotation.Subcommand;
 import de.butzlabben.missilewars.configuration.Config;
 import de.butzlabben.missilewars.configuration.Messages;
 import de.butzlabben.missilewars.game.stats.PlayerStats;
@@ -53,8 +56,6 @@ public class StatsCommands extends BaseCommand {
     private final SimpleDateFormat preciseFormat = new SimpleDateFormat("hh:mm dd.MM.yyyy");
 
     @Default
-    @Description("Shows stats.")
-    @Syntax("/mw stats [from] [arena]")
     @CommandPermission("mw.stats")
     public void onStats(CommandSender sender, String[] args) {
 
@@ -106,8 +107,6 @@ public class StatsCommands extends BaseCommand {
     }
 
     @Subcommand("recommendations")
-    @Description("Shows recommendations.")
-    @Syntax("/mw stats recommendations [from] [arena]")
     @CommandPermission("mw.stats.recommendations")
     public void onRecommendations(CommandSender sender, String[] args) {
 
@@ -146,8 +145,6 @@ public class StatsCommands extends BaseCommand {
     }
 
     @Subcommand("players")
-    @Description("Shows player list.")
-    @Syntax("/mw stats players [from] [arena]")
     @CommandPermission("mw.stats.players")
     public void onPlayers(CommandSender sender, String[] args) {
 
@@ -164,8 +161,6 @@ public class StatsCommands extends BaseCommand {
     }
 
     @Subcommand("list")
-    @Description("Lists history of games.")
-    @Syntax("/mw stats list [from] [arena]")
     @CommandPermission("mw.stats.list")
     public void onList(CommandSender sender, String[] args) {
 

+ 49 - 52
missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/UserCommands.java

@@ -19,7 +19,10 @@
 package de.butzlabben.missilewars.commands;
 
 import co.aikar.commands.BaseCommand;
-import co.aikar.commands.annotation.*;
+import co.aikar.commands.annotation.CommandAlias;
+import co.aikar.commands.annotation.CommandCompletion;
+import co.aikar.commands.annotation.CommandPermission;
+import co.aikar.commands.annotation.Subcommand;
 import de.butzlabben.missilewars.MissileWars;
 import de.butzlabben.missilewars.configuration.Messages;
 import de.butzlabben.missilewars.configuration.arena.Arena;
@@ -37,10 +40,52 @@ import java.util.Optional;
 
 @CommandAlias("mw|missilewars")
 public class UserCommands extends BaseCommand {
+    
+    @Subcommand("vote")
+    @CommandPermission("mw.vote")
+    public void voteCommand(CommandSender sender, String[] args) {
+
+        if (!MWCommands.senderIsPlayer(sender)) return;
+        Player player = (Player) sender;
+
+        if (args.length > 0) {
+            player.sendMessage(Messages.getPrefix() + "§cToo many arguments.");
+            return;
+        }
+
+        Game game = GameManager.getInstance().getGame(player.getLocation());
+        if (game == null) {
+            player.sendMessage(Messages.getMessage("not_in_arena"));
+            return;
+        }
+
+        if (game.getState() != GameState.LOBBY) {
+            player.sendMessage(Messages.getPrefix() + "§cThe game is not in the right state to vote right now");
+            return;
+        }
 
+        if (game.getLobby().getMapChooseProcedure() != MapChooseProcedure.MAPVOTING) {
+            player.sendMessage(Messages.getPrefix() + "§cYou can't vote in this game");
+            return;
+        }
+
+        if (game.getArena() != null) {
+            player.sendMessage(Messages.getPrefix() + "§cA map was already elected");
+            return;
+        }
+
+        String arenaName = args[0];
+        Optional<Arena> arena = Arenas.getFromName(arenaName);
+        if (!game.getVotes().containsKey(arenaName) || arena.isEmpty()) {
+            player.sendMessage(Messages.getPrefix() + "§cNo map with this title was found");
+            return;
+        }
+
+        game.getVotes().put(arenaName, game.getVotes().get(arenaName) + 1);
+        player.sendMessage(Messages.getMessage("vote.success").replace("%map%", arena.get().getDisplayName()));
+    }
+    
     @Subcommand("change")
-    @Description("Changes your team.")
-    @Syntax("/mw change <1|2>")
     @CommandCompletion("@range:1-2")
     @CommandPermission("mw.change")
     public void changeCommand(CommandSender sender, String[] args) {
@@ -84,56 +129,8 @@ public class UserCommands extends BaseCommand {
             player.sendMessage(Messages.getPrefix() + "§c/mw change <1|2>");
         }
     }
-
-    @Subcommand("vote")
-    @Description("Stops the game.")
-    @Syntax("/mw vote <arena>")
-    @CommandPermission("mw.vote")
-    public void voteCommand(CommandSender sender, String[] args) {
-
-        if (!MWCommands.senderIsPlayer(sender)) return;
-        Player player = (Player) sender;
-
-        if (args.length > 0) {
-            player.sendMessage(Messages.getPrefix() + "§cToo many arguments.");
-            return;
-        }
-
-        Game game = GameManager.getInstance().getGame(player.getLocation());
-        if (game == null) {
-            player.sendMessage(Messages.getMessage("not_in_arena"));
-            return;
-        }
-
-        if (game.getState() != GameState.LOBBY) {
-            player.sendMessage(Messages.getPrefix() + "§cThe game is not in the right state to vote right now");
-            return;
-        }
-
-        if (game.getLobby().getMapChooseProcedure() != MapChooseProcedure.MAPVOTING) {
-            player.sendMessage(Messages.getPrefix() + "§cYou can't vote in this game");
-            return;
-        }
-
-        if (game.getArena() != null) {
-            player.sendMessage(Messages.getPrefix() + "§cA map was already elected");
-            return;
-        }
-        
-        String arenaName = args[0];
-        Optional<Arena> arena = Arenas.getFromName(arenaName);
-        if (!game.getVotes().containsKey(arenaName) || arena.isEmpty()) {
-            player.sendMessage(Messages.getPrefix() + "§cNo map with this title was found");
-            return;
-        }
-
-        game.getVotes().put(arenaName, game.getVotes().get(arenaName) + 1);
-        player.sendMessage(Messages.getMessage("vote.success").replace("%map%", arena.get().getDisplayName()));
-    }
-
+    
     @Subcommand("quit|leave")
-    @Description("Quit a game.")
-    @Syntax("/mw quit")
     @CommandCompletion("@nothing")
     @CommandPermission("mw.quit")
     public void quitCommand(CommandSender sender, String[] args) {