瀏覽代碼

Refactoring

RedstoneFuture 3 年之前
父節點
當前提交
aa1b7420c1

+ 66 - 60
missilewars-plugin/src/main/java/de/butzlabben/missilewars/cmd/MWCommands.java

@@ -33,28 +33,27 @@ import de.butzlabben.missilewars.wrapper.abstracts.Lobby;
 import de.butzlabben.missilewars.wrapper.abstracts.MapChooseProcedure;
 import de.butzlabben.missilewars.wrapper.missile.Missile;
 import de.butzlabben.missilewars.wrapper.missile.MissileFacing;
+import org.bukkit.Bukkit;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.stream.Collectors;
-import org.bukkit.Bukkit;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
 
 public class MWCommands {
 
     @Command(name = "mw.paste", usage = "/mw paste <missile>", permission = "mw.paste", description = "Pastes a missile", inGameOnly = true)
     public void pasteCommand(CommandArgs args) {
+
         CommandSender sender = args.getSender();
-        if (!(sender instanceof Player)) {
-            sender.sendMessage(MessageConfig.getPrefix() + "§cYou are not a player");
-            return;
-        }
+        if (!senderIsPlayer(sender)) return;
+        Player player = (Player) sender;
 
-        Player p = (Player) sender;
-        Game game = GameManager.getInstance().getGame(p.getLocation());
+        Game game = GameManager.getInstance().getGame(player.getLocation());
         if (game == null) {
-            p.sendMessage(MessageConfig.getMessage("not_in_arena"));
+            player.sendMessage(MessageConfig.getMessage("not_in_arena"));
             return;
         }
         StringBuilder sb = new StringBuilder();
@@ -64,38 +63,35 @@ public class MWCommands {
         }
         Missile m = game.getArena().getMissileConfiguration().getMissileFromName(sb.toString().trim());
         if (m == null) {
-            p.sendMessage(MessageConfig.getPrefix() + "§cUnknown missile");
+            player.sendMessage(MessageConfig.getPrefix() + "§cUnknown missile");
             return;
         }
-        MissileFacing mf = MissileFacing.getFacingPlayer(p, game.getArena().getMissileConfiguration());
-        m.paste(p, mf, game);
+        MissileFacing mf = MissileFacing.getFacingPlayer(player, game.getArena().getMissileConfiguration());
+        m.paste(player, mf, game);
     }
 
     @Command(name = "mw.start", usage = "/mw start", permission = "mw.start", description = "Starts the game", inGameOnly = true)
     public void startCommand(CommandArgs args) {
-        CommandSender cs = args.getSender();
-        if (!(cs instanceof Player)) {
-            cs.sendMessage(MessageConfig.getPrefix() + "§cYou are not a player");
-            return;
-        }
 
-        Player sender = (Player) cs;
-        Game game = GameManager.getInstance().getGame(sender.getLocation());
+        CommandSender sender = args.getSender();
+        if (!senderIsPlayer(sender)) return;
+        Player player = (Player) sender;
 
+        Game game = GameManager.getInstance().getGame(player.getLocation());
         if (game == null) {
-            sender.sendMessage(MessageConfig.getMessage("not_in_arena"));
+            player.sendMessage(MessageConfig.getMessage("not_in_arena"));
             return;
         }
 
         if (game.getState() != GameState.LOBBY) {
-            sender.sendMessage(MessageConfig.getPrefix() + "§cGame already started");
+            player.sendMessage(MessageConfig.getPrefix() + "§cGame already started");
             return;
         }
         if (game.isReady())
             game.startGame();
         else {
             if (game.getLobby().getMapChooseProcedure() != MapChooseProcedure.MAPVOTING && game.getArena() == null) {
-                sender.sendMessage(MessageConfig.getPrefix() + "§cGame cannot be started");
+                player.sendMessage(MessageConfig.getPrefix() + "§cGame cannot be started");
             } else {
                 Map.Entry<String, Integer> mostVotes = null;
                 for (Map.Entry<String, Integer> arena : game.getVotes().entrySet()) {
@@ -109,20 +105,18 @@ public class MWCommands {
                 Optional<Arena> arena = Arenas.getFromName(mostVotes.getKey());
                 if (!arena.isPresent()) throw new IllegalStateException("Voted arena is not present");
                 game.setArena(arena.get());
-                sender.sendMessage(MessageConfig.getPrefix() + "A map was elected. Use \"/mw start\" again to start the round");
+                player.sendMessage(MessageConfig.getPrefix() + "A map was elected. Use \"/mw start\" again to start the round");
             }
         }
     }
 
     @Command(name = "mw.stop", usage = "/mw stop", permission = "mw.stop", description = "Stops the game", inGameOnly = true)
     public void stopCommand(CommandArgs args) {
-        CommandSender sender = args.getSender();
-        if (!(sender instanceof Player)) {
-            sender.sendMessage(MessageConfig.getPrefix() + "§cYou are not a player");
-            return;
-        }
 
+        CommandSender sender = args.getSender();
+        if (!senderIsPlayer(sender)) return;
         Player player = (Player) sender;
+
         Game game = GameManager.getInstance().getGame(player.getLocation());
         if (game == null) {
             player.sendMessage(MessageConfig.getMessage("not_in_arena"));
@@ -135,13 +129,11 @@ public class MWCommands {
 
     @Command(name = "mw.restart", usage = "/mw restart", permission = "mw.restart", description = "Restarts the game", inGameOnly = true)
     public void restartCommand(CommandArgs args) {
-        CommandSender sender = args.getSender();
-        if (!(sender instanceof Player)) {
-            sender.sendMessage(MessageConfig.getPrefix() + "§cYou are not a player");
-            return;
-        }
 
+        CommandSender sender = args.getSender();
+        if (!senderIsPlayer(sender)) return;
         Player player = (Player) sender;
+
         Game game = GameManager.getInstance().getGame(player.getLocation());
 
         if (game == null) {
@@ -164,38 +156,41 @@ public class MWCommands {
 
     @Command(name = "mw", aliases = "missilewars", usage = "/mw", description = "Shows information about the MissileWars Plugin")
     public void mwCommand(CommandArgs args) {
-        CommandSender cs = args.getSender();
-
-        cs.sendMessage(MessageConfig.getPrefix() + "MissileWars v" + MissileWars.getInstance().version + " by Butzlabben");
-
-        if (cs.hasPermission("mw.quit"))
-            cs.sendMessage(MessageConfig.getPrefix() + "/mw quit -  Quit a game");
-        if (cs.hasPermission("mw.start"))
-            cs.sendMessage(MessageConfig.getPrefix() + "/mw start - Starts the game");
-        if (cs.hasPermission("mw.stop"))
-            cs.sendMessage(MessageConfig.getPrefix() + "/mw stop - Stops the game");
-        if (cs.hasPermission("mw.restart"))
-            cs.sendMessage(MessageConfig.getPrefix() + "/mw start - Restarts the game");
-        if (cs.hasPermission("mw.appendrestart"))
-            cs.sendMessage(MessageConfig.getPrefix()
+
+        CommandSender sender = args.getSender();
+
+        sender.sendMessage(MessageConfig.getPrefix() + "MissileWars v" + MissileWars.getInstance().version + " by Butzlabben");
+
+        if (sender.hasPermission("mw.quit"))
+            sender.sendMessage(MessageConfig.getPrefix() + "/mw quit -  Quit a game");
+        if (sender.hasPermission("mw.start"))
+            sender.sendMessage(MessageConfig.getPrefix() + "/mw start - Starts the game");
+        if (sender.hasPermission("mw.stop"))
+            sender.sendMessage(MessageConfig.getPrefix() + "/mw stop - Stops the game");
+        if (sender.hasPermission("mw.restart"))
+            sender.sendMessage(MessageConfig.getPrefix() + "/mw start - Restarts the game");
+        if (sender.hasPermission("mw.appendrestart"))
+            sender.sendMessage(MessageConfig.getPrefix()
                     + "/mw appendrestart - Appends a restart after the next game ends");
-        if (cs.hasPermission("mw.paste"))
-            cs.sendMessage(MessageConfig.getPrefix() + "/mw paste - Pastes a missile");
-        if (cs.hasPermission("mw.reload"))
-            cs.sendMessage(MessageConfig.getPrefix() + "/mw reload - Reloads configurations");
-        if (cs.hasPermission("mw.stats"))
-            cs.sendMessage(MessageConfig.getPrefix() + "/mw stats - Shows stats");
-        if (cs.hasPermission("mw.stats.recommendations"))
-            cs.sendMessage(MessageConfig.getPrefix() + "/mw stats recommendations - Shows recommendations");
-        if (cs.hasPermission("mw.stats.players"))
-            cs.sendMessage(MessageConfig.getPrefix() + "/mw stats players - Shows player list");
-        if (cs.hasPermission("mw.stats.list"))
-            cs.sendMessage(MessageConfig.getPrefix() + "/mw stats list - Lists history of games");
+        if (sender.hasPermission("mw.paste"))
+            sender.sendMessage(MessageConfig.getPrefix() + "/mw paste - Pastes a missile");
+        if (sender.hasPermission("mw.reload"))
+            sender.sendMessage(MessageConfig.getPrefix() + "/mw reload - Reloads configurations");
+        if (sender.hasPermission("mw.stats"))
+            sender.sendMessage(MessageConfig.getPrefix() + "/mw stats - Shows stats");
+        if (sender.hasPermission("mw.stats.recommendations"))
+            sender.sendMessage(MessageConfig.getPrefix() + "/mw stats recommendations - Shows recommendations");
+        if (sender.hasPermission("mw.stats.players"))
+            sender.sendMessage(MessageConfig.getPrefix() + "/mw stats players - Shows player list");
+        if (sender.hasPermission("mw.stats.list"))
+            sender.sendMessage(MessageConfig.getPrefix() + "/mw stats list - Lists history of games");
     }
 
     @Command(name = "mw.reload", permission = "mw.reload", usage = "/mw reload")
     public void onReload(CommandArgs args) {
+
         CommandSender sender = args.getSender();
+
         Config.load();
         MessageConfig.load();
         Arenas.load();
@@ -204,7 +199,9 @@ public class MWCommands {
 
     @Command(name = "mw.debug", permission = "mw.debug", usage = "/mw debug")
     public void onDebug(CommandArgs args) {
+
         CommandSender sender = args.getSender();
+
         int i = 0;
         Logger.NORMAL.log("Starting to print debug information for MissileWars v" + MissileWars.getInstance().version);
         for (Game game : GameManager.getInstance().getGames().values()) {
@@ -216,11 +213,20 @@ public class MWCommands {
 
     @Command(name = "mw.restartall", permission = "mw.reload", usage = "/mw restartall")
     public void onRestartAll(CommandArgs args) {
+
         CommandSender sender = args.getSender();
+
         sender.sendMessage(MessageConfig.getPrefix() + "§cWarning - Restarting all games. This may take a while");
         List<Lobby> arenaPropertiesList = GameManager.getInstance().getGames().values()
                 .stream().map(Game::getLobby).collect(Collectors.toList());
         arenaPropertiesList.forEach(GameManager.getInstance()::restartGame);
         sender.sendMessage(MessageConfig.getPrefix() + "Reloaded configs");
     }
+
+    private boolean senderIsPlayer(CommandSender sender) {
+        if (sender instanceof Player) return true;
+
+        sender.sendMessage(MessageConfig.getPrefix() + "§cYou are not a player");
+        return false;
+    }
 }

+ 24 - 28
missilewars-plugin/src/main/java/de/butzlabben/missilewars/cmd/StatsCommands.java

@@ -32,18 +32,15 @@ import de.butzlabben.missilewars.util.version.VersionUtil;
 import de.butzlabben.missilewars.wrapper.stats.PlayerStats;
 import de.butzlabben.missilewars.wrapper.stats.SavedStats;
 import de.butzlabben.missilewars.wrapper.stats.StatsFetcher;
+import org.bukkit.Material;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.Duration;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
 import java.util.stream.Collectors;
-import org.bukkit.Material;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
 
 public class StatsCommands {
 
@@ -55,13 +52,11 @@ public class StatsCommands {
 
     @Command(name = "mw.stats.recommendations", permission = "mw.stats.recommendations", inGameOnly = true, usage = "/mw stats recommendations [from] [arena]")
     public void onRecommendations(CommandArgs args) {
-        CommandSender sender = args.getSender();
-        if (!(sender instanceof Player)) {
-            sender.sendMessage(MessageConfig.getPrefix() + "§cYou are not a player");
-            return;
-        }
 
+        CommandSender sender = args.getSender();
+        if (!senderIsPlayer(sender)) return;
         Player player = (Player) sender;
+
         StatsFetcher fetcher = getFetcher(player, args);
         if (fetcher == null) return;
         SavedStats avgStatsWithDraws = fetcher.getAverageSavedStats(false);
@@ -95,13 +90,11 @@ public class StatsCommands {
 
     @Command(name = "mw.stats", permission = "mw.stats", inGameOnly = true, usage = "/mw stats [from] [arena]")
     public void onStats(CommandArgs args) {
-        CommandSender sender = args.getSender();
-        if (!(sender instanceof Player)) {
-            sender.sendMessage(MessageConfig.getPrefix() + "§cYou are not a player");
-            return;
-        }
 
+        CommandSender sender = args.getSender();
+        if (!senderIsPlayer(sender)) return;
         Player player = (Player) sender;
+
         StatsFetcher fetcher = getFetcher(player, args);
         if (fetcher == null) return;
         String arena = fetcher.getArena().replace("%", "");
@@ -148,13 +141,11 @@ public class StatsCommands {
 
     @Command(name = "mw.stats.players", permission = "mw.stats.players", inGameOnly = true, usage = "/mw stats players [from] [arena]")
     public void onPlayers(CommandArgs args) {
-        CommandSender sender = args.getSender();
-        if (!(sender instanceof Player)) {
-            sender.sendMessage(MessageConfig.getPrefix() + "§cYou are not a player");
-            return;
-        }
 
+        CommandSender sender = args.getSender();
+        if (!senderIsPlayer(sender)) return;
         Player player = (Player) sender;
+
         StatsFetcher fetcher = getFetcher(player, args);
         if (fetcher == null) return;
         List<UUID> players = fetcher.getPlayers();
@@ -166,13 +157,11 @@ public class StatsCommands {
 
     @Command(name = "mw.stats.list", permission = "mw.stats.list", inGameOnly = true, usage = "/mw stats list [from] [arena]")
     public void onList(CommandArgs args) {
-        CommandSender sender = args.getSender();
-        if (!(sender instanceof Player)) {
-            sender.sendMessage(MessageConfig.getPrefix() + "§cYou are not a player");
-            return;
-        }
 
+        CommandSender sender = args.getSender();
+        if (!senderIsPlayer(sender)) return;
         Player player = (Player) sender;
+
         StatsFetcher fetcher = getFetcher(player, args);
         if (fetcher == null) return;
         List<SavedStats> players = fetcher.getAllStats();
@@ -214,4 +203,11 @@ public class StatsCommands {
         player.sendMessage(MessageConfig.getPrefix() + "Loading data...");
         return fetcher;
     }
+
+    private boolean senderIsPlayer(CommandSender sender) {
+        if (sender instanceof Player) return true;
+
+        sender.sendMessage(MessageConfig.getPrefix() + "§cYou are not a player");
+        return false;
+    }
 }

+ 16 - 15
missilewars-plugin/src/main/java/de/butzlabben/missilewars/cmd/UserCommands.java

@@ -40,13 +40,11 @@ public class UserCommands {
 
     @Command(name = "mw.change", usage = "/mw change <1|2>", permission = "mw.change", description = "Changes your team", inGameOnly = true)
     public void changeCommand(CommandArgs args) {
-        CommandSender sender = args.getSender();
-        if (!(sender instanceof Player)) {
-            sender.sendMessage(MessageConfig.getPrefix() + "§cYou are not a player");
-            return;
-        }
 
+        CommandSender sender = args.getSender();
+        if (!senderIsPlayer(sender)) return;
         Player player = (Player) sender;
+
         Game game = GameManager.getInstance().getGame(player.getLocation());
         if (game == null) {
             player.sendMessage(MessageConfig.getMessage("not_in_arena"));
@@ -91,14 +89,12 @@ public class UserCommands {
 
     @Command(name = "mw.vote", usage = "/mw vote <arena>", description = "Stops the game", inGameOnly = true)
     public void voteCommand(CommandArgs args) {
+
         // TODO more messageconfig
         CommandSender sender = args.getSender();
-        if (!(sender instanceof Player)) {
-            sender.sendMessage(MessageConfig.getPrefix() + "§cYou are not a player");
-            return;
-        }
-
+        if (!senderIsPlayer(sender)) return;
         Player player = (Player) sender;
+
         Game game = GameManager.getInstance().getGame(player.getLocation());
         if (game == null) {
             player.sendMessage(MessageConfig.getMessage("not_in_arena"));
@@ -138,14 +134,12 @@ public class UserCommands {
 
     @Command(name = "mw.quit", inGameOnly = true, usage = "/mw quit", permission = "mw.quit", description = "Quit a game")
     public void onQuit(CommandArgs args) {
+
         // TODO message config
         CommandSender sender = args.getSender();
-        if (!(sender instanceof Player)) {
-            sender.sendMessage(MessageConfig.getPrefix() + "§cYou are not a player");
-            return;
-        }
-
+        if (!senderIsPlayer(sender)) return;
         Player player = (Player) sender;
+
         Game game = GameManager.getInstance().getGame(player.getLocation());
         if (game == null) {
             player.sendMessage(MessageConfig.getMessage("not_in_arena"));
@@ -163,4 +157,11 @@ public class UserCommands {
         player.teleport(endSpawn);
         player.sendMessage(MessageConfig.getMessage("game_quit"));
     }
+
+    private boolean senderIsPlayer(CommandSender sender) {
+        if (sender instanceof Player) return true;
+
+        sender.sendMessage(MessageConfig.getPrefix() + "§cYou are not a player");
+        return false;
+    }
 }