瀏覽代碼

fix: optimize imports and reformat code

Daniel Nägele 1 年之前
父節點
當前提交
7d65237862
共有 59 個文件被更改,包括 412 次插入383 次删除
  1. 6 4
      .github/ISSUE_TEMPLATE/bug_report.md
  2. 13 10
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/MissileWars.java
  3. 2 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/MWCommandCompletions.java
  4. 20 16
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/MWCommands.java
  5. 106 101
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/SetupCommands.java
  6. 13 6
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/StatsCommands.java
  7. 8 9
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/UserCommands.java
  8. 6 8
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/Config.java
  9. 7 8
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/Lobby.java
  10. 7 8
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/Messages.java
  11. 2 3
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/arena/Arena.java
  12. 2 3
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/arena/EquipmentIntervalConfiguration.java
  13. 7 4
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/arena/MissileConfiguration.java
  14. 3 4
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/Arenas.java
  15. 42 33
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/Game.java
  16. 9 10
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/GameManager.java
  17. 3 4
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/GameWorld.java
  18. 4 5
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/Team.java
  19. 2 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/equipment/EquipmentManager.java
  20. 1 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/equipment/MissileGameEquipment.java
  21. 1 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/equipment/PlayerEquipmentRandomizer.java
  22. 2 3
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/equipment/SpecialGameEquipment.java
  23. 3 4
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/misc/RespawnGoldBlock.java
  24. 6 5
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/misc/ScoreboardManager.java
  25. 1 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/misc/Shield.java
  26. 3 4
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/missile/Missile.java
  27. 1 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/missile/MissileFacing.java
  28. 1 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/missile/paste/Paster.java
  29. 1 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/missile/paste/R1_13FawePasteProvider.java
  30. 1 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/missile/paste/R1_13WEPasteProvider.java
  31. 1 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/missile/paste/R1_16FawePasteProvider.java
  32. 0 1
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/signs/CheckRunnable.java
  33. 4 5
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/signs/MWSign.java
  34. 10 4
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/signs/SignRepository.java
  35. 1 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/stats/FightStats.java
  36. 1 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/stats/PlayerStats.java
  37. 1 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/stats/PlayerStatsComparator.java
  38. 1 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/stats/StatsFetcher.java
  39. 1 1
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/timer/EndTimer.java
  40. 2 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/timer/GameTimer.java
  41. 2 3
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/timer/LobbyTimer.java
  42. 3 3
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/timer/TaskManager.java
  43. 3 4
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/inventory/OrcInventory.java
  44. 4 5
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/inventory/OrcItem.java
  45. 1 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/inventory/VoteInventory.java
  46. 7 1
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/PlayerListener.java
  47. 1 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/SignListener.java
  48. 9 5
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/game/GameListener.java
  49. 2 3
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/player/MWPlayer.java
  50. 6 7
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/player/PlayerData.java
  51. 6 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/ConnectionHolder.java
  52. 1 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/MoneyUtil.java
  53. 29 29
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/geometry/GameArea.java
  54. 11 7
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/geometry/Geometry.java
  55. 1 1
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/stats/GameProfileBuilder.java
  56. 10 6
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/stats/PlayerGuiFactory.java
  57. 6 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/stats/PreFetcher.java
  58. 4 5
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/version/BlockSetterProvider.java
  59. 1 1
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/version/VersionUtil.java

+ 6 - 4
.github/ISSUE_TEMPLATE/bug_report.md

@@ -12,6 +12,7 @@ A clear and concise description of what the bug is.
 
 **To Reproduce**
 Steps to reproduce the behavior:
+
 1. Go to '...'
 2. Click on '....'
 3. Scroll down to '....'
@@ -24,10 +25,11 @@ A clear and concise description of what you expected to happen.
 If applicable, add screenshots to help explain your problem.
 
 **Server (please complete the following information):**
- - OS: [e.g. Debian, Windows]
- - Minecraft version [e.g. 1.12, 1.16, 1.17]
- - Java version [e.g. 11, 17]
- - Version [e.g. 22]
+
+- OS: [e.g. Debian, Windows]
+- Minecraft version [e.g. 1.12, 1.16, 1.17]
+- Java version [e.g. 11, 17]
+- Version [e.g. 22]
 
 **Additional context**
 Add any other context about the problem here.

+ 13 - 10
missilewars-plugin/src/main/java/de/butzlabben/missilewars/MissileWars.java

@@ -19,7 +19,11 @@
 package de.butzlabben.missilewars;
 
 import co.aikar.commands.PaperCommandManager;
-import de.butzlabben.missilewars.commands.*;
+import de.butzlabben.missilewars.commands.MWCommandCompletions;
+import de.butzlabben.missilewars.commands.MWCommands;
+import de.butzlabben.missilewars.commands.SetupCommands;
+import de.butzlabben.missilewars.commands.StatsCommands;
+import de.butzlabben.missilewars.commands.UserCommands;
 import de.butzlabben.missilewars.configuration.Config;
 import de.butzlabben.missilewars.configuration.Messages;
 import de.butzlabben.missilewars.game.Arenas;
@@ -36,6 +40,8 @@ import de.butzlabben.missilewars.util.MoneyUtil;
 import de.butzlabben.missilewars.util.SetupUtil;
 import de.butzlabben.missilewars.util.stats.PreFetcher;
 import de.butzlabben.missilewars.util.version.VersionUtil;
+import java.io.File;
+import java.util.Date;
 import lombok.Getter;
 import org.apache.commons.io.FileUtils;
 import org.bstats.bukkit.Metrics;
@@ -44,9 +50,6 @@ import org.bukkit.configuration.serialization.ConfigurationSerialization;
 import org.bukkit.entity.Player;
 import org.bukkit.plugin.java.JavaPlugin;
 
-import java.io.File;
-import java.util.Date;
-
 /**
  * @author Butzlabben
  * @since 01.01.2018
@@ -124,11 +127,11 @@ public class MissileWars extends JavaPlugin {
         if (Config.isPrefetchPlayers()) {
             PreFetcher.preFetchPlayers(new StatsFetcher(new Date(0L), ""));
         }
-        
+
         checkPlaceholderAPI();
 
         ConfigurationSerialization.registerClass(PlayerData.class);
-        
+
         endTime = System.currentTimeMillis();
         Logger.SUCCESS.log("MissileWars was enabled in " + (endTime - startTime) + "ms");
     }
@@ -140,9 +143,9 @@ public class MissileWars extends JavaPlugin {
 
         ConnectionHolder.close();
     }
-    
+
     /**
-     * This method checks if the PlaceholderAPI is installed. When it is 
+     * This method checks if the PlaceholderAPI is installed. When it is
      * installed, a message is sent to the log.
      */
     private void checkPlaceholderAPI() {
@@ -151,7 +154,7 @@ public class MissileWars extends JavaPlugin {
             Logger.NORMAL.log("The PlaceholderAPI is installed. New placeholders are provided by MissileWars.");
         }
     }
-    
+
     /**
      * This method registers all events of the missilewars event listener.
      */
@@ -175,7 +178,7 @@ public class MissileWars extends JavaPlugin {
         commandManager = new PaperCommandManager(this);
 
         new MWCommandCompletions(commandManager);
-        
+
         commandManager.registerCommand(new MWCommands());
         commandManager.registerCommand(new StatsCommands());
         commandManager.registerCommand(new UserCommands());

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

@@ -40,7 +40,7 @@ public class MWCommandCompletions {
     private void registerGamesResult() {
         commandCompletions.registerCompletion("games", c -> GameManager.getInstance().getGames().keySet());
     }
-    
+
     private void registerMissilesResult() {
         commandCompletions.registerCompletion("missiles", c -> {
             CommandSender sender = c.getSender();
@@ -54,5 +54,5 @@ public class MWCommandCompletions {
             return game.getArena().getMissileConfiguration().getMissileNames();
         });
     }
-    
+
 }

+ 20 - 16
missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/MWCommands.java

@@ -19,7 +19,12 @@
 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.Default;
+import co.aikar.commands.annotation.Description;
+import co.aikar.commands.annotation.Subcommand;
 import de.butzlabben.missilewars.Logger;
 import de.butzlabben.missilewars.MissileWars;
 import de.butzlabben.missilewars.configuration.Config;
@@ -33,11 +38,10 @@ import de.butzlabben.missilewars.game.enums.GameState;
 import de.butzlabben.missilewars.game.enums.MapChooseProcedure;
 import de.butzlabben.missilewars.game.missile.Missile;
 import de.butzlabben.missilewars.game.missile.MissileFacing;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
 import java.util.Map;
 import java.util.Optional;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
 
 @CommandAlias("mw|missilewars")
 public class MWCommands extends BaseCommand {
@@ -68,7 +72,7 @@ public class MWCommands extends BaseCommand {
 
         sendHelpMessage(sender, "mw.setup", "/mw setup <main|lobby|arena> ...", "Setup the MW locations or the lobby/arena locations.");
     }
-    
+
     @Subcommand("listgames|list|games")
     @CommandCompletion("@nothing")
     @CommandPermission("mw.listgames")
@@ -247,6 +251,13 @@ public class MWCommands extends BaseCommand {
         sender.sendMessage(Messages.getMessage(true, Messages.MessageEnum.SERVER_RESTART_AFTER_GAME));
     }
 
+    static boolean senderIsPlayer(CommandSender sender) {
+        if (sender instanceof Player) return true;
+
+        sender.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_ONLY_PLAYERS));
+        return false;
+    }
+
     @Subcommand("reload")
     @CommandCompletion("@nothing")
     @CommandPermission("mw.reload")
@@ -263,7 +274,7 @@ public class MWCommands extends BaseCommand {
         Config.load();
         Messages.load();
         Arenas.load();
-        
+
         player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.DEBUG_RELOAD_CONFIG));
     }
 
@@ -286,7 +297,7 @@ public class MWCommands extends BaseCommand {
             Logger.NORMAL.log("Printing state for arena " + game.getArena().getName() + ". Number: " + i);
             Logger.NORMAL.log(game.toString());
         }
-        
+
         player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.DEBUG_PRINTED_DEBUG_MSG));
     }
 
@@ -302,22 +313,15 @@ public class MWCommands extends BaseCommand {
             player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_TO_MANY_ARGUMENTS));
             return;
         }
-        
+
         if (GameManager.getInstance().getGames().size() > 10) {
             player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.DEBUG_RESTART_ALL_GAMES_WARN));
         }
-        
+
         GameManager.getInstance().restartAll();
         player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.DEBUG_RESTART_ALL_GAMES));
     }
 
-    static boolean senderIsPlayer(CommandSender sender) {
-        if (sender instanceof Player) return true;
-        
-        sender.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_ONLY_PLAYERS));
-        return false;
-    }
-
     static void sendHelpMessage(CommandSender sender, String permission, String command, String description) {
         if (sender instanceof Player) {
             if (!sender.hasPermission(permission)) return;

+ 106 - 101
missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/SetupCommands.java

@@ -19,7 +19,11 @@
 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.Default;
+import co.aikar.commands.annotation.Subcommand;
 import de.butzlabben.missilewars.configuration.Config;
 import de.butzlabben.missilewars.configuration.Messages;
 import de.butzlabben.missilewars.game.Game;
@@ -67,11 +71,28 @@ public class SetupCommands extends BaseCommand {
         }
     }
 
-    @Subcommand("lobby")
-    public class LobbySetupCommands extends BaseCommand {
+    /**
+     * This method checks if the command sender is a valid ingame player.
+     *
+     * @param sender = the command sender
+     *
+     * @return true, if it's an ingame player
+     */
+    private boolean senderIsPlayer(CommandSender sender) {
+        if (sender instanceof Player) {
+            player = (Player) sender;
+            return true;
+        }
 
-        @Subcommand("spawnpoint")
-        public class SpawnpointSetup extends BaseCommand {
+        sender.sendMessage(Messages.getPrefix() + "§cYou are not a player");
+        return false;
+    }
+
+    @Subcommand("arena")
+    public class ArenaSetupCommands extends BaseCommand {
+
+        @Subcommand("spectatorspawn")
+        public class SpectatorspawnSetup extends BaseCommand {
 
             @Subcommand("set")
             @CommandCompletion("@games")
@@ -79,9 +100,9 @@ public class SetupCommands extends BaseCommand {
                 if (!senderIsPlayer(sender)) return;
                 if (!isValidGame(args)) return;
 
-                game.getLobby().setSpawnPoint(player.getLocation());
-                game.getLobby().updateConfig();
-                player.sendMessage(Messages.getPrefix() + "§fSet new 'spawnPoint' to " + player.getLocation() + ".");
+                game.getArena().setSpectatorSpawn(player.getLocation());
+                game.getArena().updateConfig();
+                player.sendMessage(Messages.getPrefix() + "§fSet new 'spectatorSpawn' to " + player.getLocation() + ".");
             }
 
             @Subcommand("teleport|tp")
@@ -90,14 +111,14 @@ public class SetupCommands extends BaseCommand {
                 if (!senderIsPlayer(sender)) return;
                 if (!isValidGame(args)) return;
 
-                player.teleport(game.getLobby().getSpawnPoint());
-                player.sendMessage(Messages.getPrefix() + "§fTeleported to 'spawnPoint'.");
+                player.teleport(game.getArena().getSpectatorSpawn());
+                player.sendMessage(Messages.getPrefix() + "§fTeleported to 'spectatorSpawn'.");
             }
 
         }
 
-        @Subcommand("aftergamespawn")
-        public class AftergamespawnSetup extends BaseCommand {
+        @Subcommand("team1spawn")
+        public class Team1spawnSetup extends BaseCommand {
 
             @Subcommand("set")
             @CommandCompletion("@games")
@@ -105,9 +126,9 @@ public class SetupCommands extends BaseCommand {
                 if (!senderIsPlayer(sender)) return;
                 if (!isValidGame(args)) return;
 
-                game.getLobby().setAfterGameSpawn(player.getLocation());
-                game.getLobby().updateConfig();
-                player.sendMessage(Messages.getPrefix() + "§fSet new 'afterGameSpawn' to " + player.getLocation() + ".");
+                game.getArena().setTeam1Spawn(player.getLocation());
+                game.getArena().updateConfig();
+                player.sendMessage(Messages.getPrefix() + "§fSet new 'team1Spawn' to " + player.getLocation() + ".");
             }
 
             @Subcommand("teleport|tp")
@@ -116,8 +137,34 @@ public class SetupCommands extends BaseCommand {
                 if (!senderIsPlayer(sender)) return;
                 if (!isValidGame(args)) return;
 
-                player.teleport(game.getLobby().getAfterGameSpawn());
-                player.sendMessage(Messages.getPrefix() + "§fTeleported to 'afterGameSpawn'.");
+                player.teleport(game.getArena().getTeam1Spawn());
+                player.sendMessage(Messages.getPrefix() + "§fTeleported to 'team1Spawn'.");
+            }
+
+        }
+
+        @Subcommand("team2spawn")
+        public class Team2spawnSetup extends BaseCommand {
+
+            @Subcommand("set")
+            @CommandCompletion("@games")
+            public void set(CommandSender sender, String[] args) {
+                if (!senderIsPlayer(sender)) return;
+                if (!isValidGame(args)) return;
+
+                game.getArena().setTeam2Spawn(player.getLocation());
+                game.getArena().updateConfig();
+                player.sendMessage(Messages.getPrefix() + "§fSet new 'team2Spawn' to " + player.getLocation() + ".");
+            }
+
+            @Subcommand("teleport|tp")
+            @CommandCompletion("@games")
+            public void teleport(CommandSender sender, String[] args) {
+                if (!senderIsPlayer(sender)) return;
+                if (!isValidGame(args)) return;
+
+                player.teleport(game.getArena().getTeam2Spawn());
+                player.sendMessage(Messages.getPrefix() + "§fTeleported to 'team2Spawn'.");
             }
 
         }
@@ -134,10 +181,10 @@ public class SetupCommands extends BaseCommand {
                     if (!senderIsPlayer(sender)) return;
                     if (!isValidGame(args)) return;
 
-                    game.getLobby().getArea().setPosition1(player.getLocation());
-                    game.getLobby().setAreaConfig(game.getLobby().getArea().getAreaConfiguration());
-                    game.getLobby().updateConfig();
-                    player.sendMessage(Messages.getPrefix() + "§fSet new 'lobby area' (position 1) to " + player.getLocation() + ".");
+                    game.getArena().getArea().setPosition1(player.getLocation());
+                    game.getArena().setAreaConfig(game.getArena().getArea().getAreaConfiguration());
+                    game.getArena().updateConfig();
+                    player.sendMessage(Messages.getPrefix() + "§fSet new 'arena area' (position 1) to " + player.getLocation() + ".");
                 }
 
                 @Subcommand("teleport|tp")
@@ -146,10 +193,10 @@ public class SetupCommands extends BaseCommand {
                     if (!senderIsPlayer(sender)) return;
                     if (!isValidGame(args)) return;
 
-                    player.teleport(game.getLobby().getArea().getPosition1());
-                    player.sendMessage(Messages.getPrefix() + "§fTeleported to 'lobby area' (position 1): " + game.getLobby().getArea().getPosition1().toString());
+                    player.teleport(game.getArena().getArea().getPosition1());
+                    player.sendMessage(Messages.getPrefix() + "§fTeleported to 'arena area' (position 1): " + game.getArena().getArea().getPosition1().toString());
                 }
-                
+
             }
 
             @Subcommand("pos2")
@@ -161,10 +208,10 @@ public class SetupCommands extends BaseCommand {
                     if (!senderIsPlayer(sender)) return;
                     if (!isValidGame(args)) return;
 
-                    game.getLobby().getArea().setPosition2(player.getLocation());
-                    game.getLobby().setAreaConfig(game.getLobby().getArea().getAreaConfiguration());
-                    game.getLobby().updateConfig();
-                    player.sendMessage(Messages.getPrefix() + "§fSet new 'lobby area' (position 2) to " + player.getLocation() + ".");
+                    game.getArena().getArea().setPosition2(player.getLocation());
+                    game.getArena().setAreaConfig(game.getArena().getArea().getAreaConfiguration());
+                    game.getArena().updateConfig();
+                    player.sendMessage(Messages.getPrefix() + "§fSet new 'arena area' (position 2) to " + player.getLocation() + ".");
                 }
 
                 @Subcommand("teleport|tp")
@@ -173,46 +220,20 @@ public class SetupCommands extends BaseCommand {
                     if (!senderIsPlayer(sender)) return;
                     if (!isValidGame(args)) return;
 
-                    player.teleport(game.getLobby().getArea().getPosition2());
-                    player.sendMessage(Messages.getPrefix() + "§fTeleported to 'lobby area' (position 2): " + game.getLobby().getArea().getPosition2().toString());
+                    player.teleport(game.getArena().getArea().getPosition2());
+                    player.sendMessage(Messages.getPrefix() + "§fTeleported to 'arena area' (position 2): " + game.getArena().getArea().getPosition2().toString());
                 }
 
             }
-            
+
         }
     }
 
-    @Subcommand("arena")
-    public class ArenaSetupCommands extends BaseCommand {
-
-        @Subcommand("spectatorspawn")
-        public class SpectatorspawnSetup extends BaseCommand {
-
-            @Subcommand("set")
-            @CommandCompletion("@games")
-            public void set(CommandSender sender, String[] args) {
-                if (!senderIsPlayer(sender)) return;
-                if (!isValidGame(args)) return;
-
-                game.getArena().setSpectatorSpawn(player.getLocation());
-                game.getArena().updateConfig();
-                player.sendMessage(Messages.getPrefix() + "§fSet new 'spectatorSpawn' to " + player.getLocation() + ".");
-            }
-
-            @Subcommand("teleport|tp")
-            @CommandCompletion("@games")
-            public void teleport(CommandSender sender, String[] args) {
-                if (!senderIsPlayer(sender)) return;
-                if (!isValidGame(args)) return;
-
-                player.teleport(game.getArena().getSpectatorSpawn());
-                player.sendMessage(Messages.getPrefix() + "§fTeleported to 'spectatorSpawn'.");
-            }
-
-        }
+    @Subcommand("lobby")
+    public class LobbySetupCommands extends BaseCommand {
 
-        @Subcommand("team1spawn")
-        public class Team1spawnSetup extends BaseCommand {
+        @Subcommand("spawnpoint")
+        public class SpawnpointSetup extends BaseCommand {
 
             @Subcommand("set")
             @CommandCompletion("@games")
@@ -220,9 +241,9 @@ public class SetupCommands extends BaseCommand {
                 if (!senderIsPlayer(sender)) return;
                 if (!isValidGame(args)) return;
 
-                game.getArena().setTeam1Spawn(player.getLocation());
-                game.getArena().updateConfig();
-                player.sendMessage(Messages.getPrefix() + "§fSet new 'team1Spawn' to " + player.getLocation() + ".");
+                game.getLobby().setSpawnPoint(player.getLocation());
+                game.getLobby().updateConfig();
+                player.sendMessage(Messages.getPrefix() + "§fSet new 'spawnPoint' to " + player.getLocation() + ".");
             }
 
             @Subcommand("teleport|tp")
@@ -231,14 +252,14 @@ public class SetupCommands extends BaseCommand {
                 if (!senderIsPlayer(sender)) return;
                 if (!isValidGame(args)) return;
 
-                player.teleport(game.getArena().getTeam1Spawn());
-                player.sendMessage(Messages.getPrefix() + "§fTeleported to 'team1Spawn'.");
+                player.teleport(game.getLobby().getSpawnPoint());
+                player.sendMessage(Messages.getPrefix() + "§fTeleported to 'spawnPoint'.");
             }
 
         }
 
-        @Subcommand("team2spawn")
-        public class Team2spawnSetup extends BaseCommand {
+        @Subcommand("aftergamespawn")
+        public class AftergamespawnSetup extends BaseCommand {
 
             @Subcommand("set")
             @CommandCompletion("@games")
@@ -246,9 +267,9 @@ public class SetupCommands extends BaseCommand {
                 if (!senderIsPlayer(sender)) return;
                 if (!isValidGame(args)) return;
 
-                game.getArena().setTeam2Spawn(player.getLocation());
-                game.getArena().updateConfig();
-                player.sendMessage(Messages.getPrefix() + "§fSet new 'team2Spawn' to " + player.getLocation() + ".");
+                game.getLobby().setAfterGameSpawn(player.getLocation());
+                game.getLobby().updateConfig();
+                player.sendMessage(Messages.getPrefix() + "§fSet new 'afterGameSpawn' to " + player.getLocation() + ".");
             }
 
             @Subcommand("teleport|tp")
@@ -257,8 +278,8 @@ public class SetupCommands extends BaseCommand {
                 if (!senderIsPlayer(sender)) return;
                 if (!isValidGame(args)) return;
 
-                player.teleport(game.getArena().getTeam2Spawn());
-                player.sendMessage(Messages.getPrefix() + "§fTeleported to 'team2Spawn'.");
+                player.teleport(game.getLobby().getAfterGameSpawn());
+                player.sendMessage(Messages.getPrefix() + "§fTeleported to 'afterGameSpawn'.");
             }
 
         }
@@ -275,10 +296,10 @@ public class SetupCommands extends BaseCommand {
                     if (!senderIsPlayer(sender)) return;
                     if (!isValidGame(args)) return;
 
-                    game.getArena().getArea().setPosition1(player.getLocation());
-                    game.getArena().setAreaConfig(game.getArena().getArea().getAreaConfiguration());
-                    game.getArena().updateConfig();
-                    player.sendMessage(Messages.getPrefix() + "§fSet new 'arena area' (position 1) to " + player.getLocation() + ".");
+                    game.getLobby().getArea().setPosition1(player.getLocation());
+                    game.getLobby().setAreaConfig(game.getLobby().getArea().getAreaConfiguration());
+                    game.getLobby().updateConfig();
+                    player.sendMessage(Messages.getPrefix() + "§fSet new 'lobby area' (position 1) to " + player.getLocation() + ".");
                 }
 
                 @Subcommand("teleport|tp")
@@ -287,8 +308,8 @@ public class SetupCommands extends BaseCommand {
                     if (!senderIsPlayer(sender)) return;
                     if (!isValidGame(args)) return;
 
-                    player.teleport(game.getArena().getArea().getPosition1());
-                    player.sendMessage(Messages.getPrefix() + "§fTeleported to 'arena area' (position 1): " + game.getArena().getArea().getPosition1().toString());
+                    player.teleport(game.getLobby().getArea().getPosition1());
+                    player.sendMessage(Messages.getPrefix() + "§fTeleported to 'lobby area' (position 1): " + game.getLobby().getArea().getPosition1().toString());
                 }
 
             }
@@ -302,10 +323,10 @@ public class SetupCommands extends BaseCommand {
                     if (!senderIsPlayer(sender)) return;
                     if (!isValidGame(args)) return;
 
-                    game.getArena().getArea().setPosition2(player.getLocation());
-                    game.getArena().setAreaConfig(game.getArena().getArea().getAreaConfiguration());
-                    game.getArena().updateConfig();
-                    player.sendMessage(Messages.getPrefix() + "§fSet new 'arena area' (position 2) to " + player.getLocation() + ".");
+                    game.getLobby().getArea().setPosition2(player.getLocation());
+                    game.getLobby().setAreaConfig(game.getLobby().getArea().getAreaConfiguration());
+                    game.getLobby().updateConfig();
+                    player.sendMessage(Messages.getPrefix() + "§fSet new 'lobby area' (position 2) to " + player.getLocation() + ".");
                 }
 
                 @Subcommand("teleport|tp")
@@ -314,8 +335,8 @@ public class SetupCommands extends BaseCommand {
                     if (!senderIsPlayer(sender)) return;
                     if (!isValidGame(args)) return;
 
-                    player.teleport(game.getArena().getArea().getPosition2());
-                    player.sendMessage(Messages.getPrefix() + "§fTeleported to 'arena area' (position 2): " + game.getArena().getArea().getPosition2().toString());
+                    player.teleport(game.getLobby().getArea().getPosition2());
+                    player.sendMessage(Messages.getPrefix() + "§fTeleported to 'lobby area' (position 2): " + game.getLobby().getArea().getPosition2().toString());
                 }
 
             }
@@ -323,22 +344,6 @@ public class SetupCommands extends BaseCommand {
         }
     }
 
-    /**
-     * This method checks if the command sender is a valid ingame player.
-     * 
-     * @param sender = the command sender
-     * @return true, if it's an ingame player
-     */
-    private boolean senderIsPlayer(CommandSender sender) {
-        if (sender instanceof Player) {
-            player = (Player) sender;
-            return true;
-        }
-
-        sender.sendMessage(Messages.getPrefix() + "§cYou are not a player");
-        return false;
-    }
-
     /**
      * This method checks if the player execute the command on a valid
      * game world (lobby or area).

+ 13 - 6
missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/StatsCommands.java

@@ -19,7 +19,11 @@
 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.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;
@@ -31,15 +35,18 @@ import de.butzlabben.missilewars.inventory.pages.PageGUICreator;
 import de.butzlabben.missilewars.util.stats.PlayerGuiFactory;
 import de.butzlabben.missilewars.util.stats.PreFetcher;
 import de.butzlabben.missilewars.util.stats.StatsUtil;
-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.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
 import java.util.stream.Collectors;
+import org.bukkit.Material;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
 
 @CommandAlias("mw|missilewars")
 @Subcommand("stats")

+ 8 - 9
missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/UserCommands.java

@@ -33,11 +33,10 @@ import de.butzlabben.missilewars.game.Team;
 import de.butzlabben.missilewars.game.enums.GameState;
 import de.butzlabben.missilewars.game.enums.MapChooseProcedure;
 import de.butzlabben.missilewars.player.MWPlayer;
+import java.util.Optional;
 import org.bukkit.command.CommandSender;
 import org.bukkit.entity.Player;
 
-import java.util.Optional;
-
 @CommandAlias("mw|missilewars")
 public class UserCommands extends BaseCommand {
 
@@ -93,7 +92,7 @@ public class UserCommands extends BaseCommand {
 
         if (!MWCommands.senderIsPlayer(sender)) return;
         Player player = (Player) sender;
-        
+
         if (args.length < 1) {
             player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_TEAM_NUMBER_NEEDED));
             return;
@@ -109,33 +108,33 @@ public class UserCommands extends BaseCommand {
             player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.GAME_NOT_IN_GAME_AREA));
             return;
         }
-        
+
         if (game.getState() != GameState.LOBBY) {
             player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.TEAM_CHANGE_TEAM_NOT_NOW));
             return;
         }
-        
+
         if (!(args[0].equalsIgnoreCase("1") || args[0].equalsIgnoreCase("2"))) {
             sender.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_INVALID_TEAM_NUMBER));
             return;
         }
-        
+
         MWPlayer mwPlayer = game.getPlayer(player);
         int teamNumber = Integer.parseInt(args[0]);
         Team to = teamNumber == 1 ? game.getTeam1() : game.getTeam2();
-        
+
         // Is the same team?
         if (to == mwPlayer.getTeam()) {
             player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.TEAM_ALREADY_IN_TEAM));
             return;
         }
-        
+
         // Would the number of team members be too far apart?
         if (to != game.getNextTeam()) {
             player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.TEAM_UNFAIR_TEAM_SIZE));
             return;
         }
-        
+
         // Remove the player from the old team and add him to the new team
         to.addMember(mwPlayer);
 

+ 6 - 8
missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/Config.java

@@ -22,20 +22,18 @@ import de.butzlabben.missilewars.Logger;
 import de.butzlabben.missilewars.MissileWars;
 import de.butzlabben.missilewars.game.GameManager;
 import de.butzlabben.missilewars.util.SetupUtil;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
 import org.bukkit.Bukkit;
 import org.bukkit.Location;
 import org.bukkit.Material;
+import static org.bukkit.Material.JUKEBOX;
+import static org.bukkit.Material.valueOf;
 import org.bukkit.World;
 import org.bukkit.configuration.ConfigurationSection;
 import org.bukkit.configuration.file.YamlConfiguration;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.bukkit.Material.JUKEBOX;
-import static org.bukkit.Material.valueOf;
-
 /**
  * @author Butzlabben
  * @since 01.01.2018
@@ -169,7 +167,7 @@ public class Config {
 
         return location;
     }
-    
+
     public static void setFallbackSpawn(Location spawnLocation) {
         cfg.set("fallback_spawn.world", spawnLocation.getWorld().getName());
         cfg.set("fallback_spawn.x", spawnLocation.getX());

+ 7 - 8
missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/Lobby.java

@@ -26,6 +26,12 @@ import de.butzlabben.missilewars.game.Arenas;
 import de.butzlabben.missilewars.game.enums.MapChooseProcedure;
 import de.butzlabben.missilewars.util.geometry.GameArea;
 import de.butzlabben.missilewars.util.serialization.Serializer;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
@@ -34,13 +40,6 @@ import org.bukkit.Bukkit;
 import org.bukkit.Location;
 import org.bukkit.World;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
 @Getter
 @ToString
 @RequiredArgsConstructor
@@ -79,7 +78,7 @@ public class Lobby {
         }
         return world;
     }
-    
+
     private World getBukkitDefaultWorld() {
         return Bukkit.getWorlds().get(0);
     }

+ 7 - 8
missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/Messages.java

@@ -20,12 +20,11 @@ package de.butzlabben.missilewars.configuration;
 
 import de.butzlabben.missilewars.MissileWars;
 import de.butzlabben.missilewars.util.SetupUtil;
+import java.io.File;
 import lombok.Getter;
 import org.bukkit.ChatColor;
 import org.bukkit.configuration.file.YamlConfiguration;
 
-import java.io.File;
-
 
 /**
  * @author Butzlabben
@@ -58,7 +57,7 @@ public class Messages {
     }
 
     private static void addDefaults() {
-        
+
         for (MessageEnum msg : MessageEnum.values()) {
             cfg.addDefault(msg.getPath(), msg.getDefaultMsg());
         }
@@ -73,6 +72,11 @@ public class Messages {
         return getConfigMessage(MessageEnum.PREFIX);
     }
 
+    private static String getConfigMessage(MessageEnum msg) {
+        return ChatColor.translateAlternateColorCodes('&', cfg.getString(msg.getPath(),
+                "&cError while reading from messages.yml: '" + msg.getPath() + "'"));
+    }
+
     @Getter
     public enum MessageEnum {
         PREFIX("prefix", "&6•&e● MissileWars &8▎ &7"),
@@ -184,12 +188,7 @@ public class Messages {
             this.path = path;
             this.defaultMsg = defaultMsg;
         }
-        
-    }
 
-    private static String getConfigMessage(MessageEnum msg) {
-        return ChatColor.translateAlternateColorCodes('&', cfg.getString(msg.getPath(), 
-                "&cError while reading from messages.yml: '" + msg.getPath() + "'"));
     }
 
 }

+ 2 - 3
missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/arena/Arena.java

@@ -21,14 +21,13 @@ package de.butzlabben.missilewars.configuration.arena;
 import com.google.gson.annotations.SerializedName;
 import de.butzlabben.missilewars.util.geometry.GameArea;
 import de.butzlabben.missilewars.util.serialization.Serializer;
+import java.io.File;
+import java.io.IOException;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
 import org.bukkit.Location;
 
-import java.io.File;
-import java.io.IOException;
-
 @Getter
 @ToString
 public class Arena implements Cloneable {

+ 2 - 3
missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/arena/EquipmentIntervalConfiguration.java

@@ -19,13 +19,12 @@
 package de.butzlabben.missilewars.configuration.arena;
 
 import com.google.gson.annotations.SerializedName;
+import java.util.HashMap;
+import java.util.Map;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.ToString;
 
-import java.util.HashMap;
-import java.util.Map;
-
 @Getter
 @ToString
 @RequiredArgsConstructor

+ 7 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/arena/MissileConfiguration.java

@@ -21,14 +21,17 @@ package de.butzlabben.missilewars.configuration.arena;
 import de.butzlabben.missilewars.Logger;
 import de.butzlabben.missilewars.game.missile.Missile;
 import de.butzlabben.missilewars.game.missile.MissileFacing;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.ToString;
 import org.bukkit.entity.EntityType;
 
-import java.io.File;
-import java.util.*;
-
 
 @Getter
 @ToString
@@ -89,7 +92,7 @@ public class MissileConfiguration {
         }
         missiles.removeAll(toRemove);
     }
-    
+
     public List<String> getMissileNames() {
         List<String> missileNames = new ArrayList<>();
         for (Missile missile : missiles) {

+ 3 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/Arenas.java

@@ -24,14 +24,13 @@ import de.butzlabben.missilewars.configuration.Config;
 import de.butzlabben.missilewars.configuration.arena.Arena;
 import de.butzlabben.missilewars.util.SetupUtil;
 import de.butzlabben.missilewars.util.serialization.Serializer;
-import lombok.Getter;
-import org.bukkit.Bukkit;
-
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import lombok.Getter;
+import org.bukkit.Bukkit;
 
 public class Arenas {
 
@@ -59,7 +58,7 @@ public class Arenas {
                 Bukkit.getPluginManager().disablePlugin(MissileWars.getInstance());
                 return;
             }
-            files = new File[]{defaultArena};
+            files = new File[] {defaultArena};
         }
 
         for (File config : files) {

+ 42 - 33
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/Game.java

@@ -51,9 +51,19 @@ import de.butzlabben.missilewars.util.PlayerDataProvider;
 import de.butzlabben.missilewars.util.geometry.GameArea;
 import de.butzlabben.missilewars.util.geometry.Geometry;
 import de.butzlabben.missilewars.util.serialization.Serializer;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.function.Consumer;
 import lombok.Getter;
 import lombok.ToString;
-import org.bukkit.*;
+import org.bukkit.Bukkit;
+import org.bukkit.GameMode;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.Sound;
+import org.bukkit.World;
 import org.bukkit.entity.Fireball;
 import org.bukkit.entity.Player;
 import org.bukkit.event.HandlerList;
@@ -62,12 +72,6 @@ import org.bukkit.inventory.ItemStack;
 import org.bukkit.scheduler.BukkitTask;
 import org.bukkit.util.Vector;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.function.Consumer;
-
 /**
  * @author Butzlabben
  * @since 01.01.2018
@@ -125,7 +129,7 @@ public class Game {
             Logger.ERROR.log("None of the specified arenas match a real arena for the lobby " + lobby.getName());
             return;
         }
-        
+
         team1 = new Team(lobby.getTeam1Name(), lobby.getTeam1Color(), this);
         team2 = new Team(lobby.getTeam2Name(), lobby.getTeam2Color(), this);
 
@@ -242,10 +246,10 @@ public class Game {
             teleportToArenaSpectatorSpawn(player);
 
         }
-        
+
         // Save the remaining game duration.
         remainingGameDuration = taskManager.getTimer().getSeconds();
-        
+
         taskManager.stopTimer();
         updateGameListener(new EndListener(this));
         taskManager.setTimer(new EndTimer(this));
@@ -290,7 +294,7 @@ public class Game {
     /**
      * This method adds the player to the game.
      *
-     * @param player the target Player
+     * @param player          the target Player
      * @param isSpectatorJoin should the player join as spectator or as normal player
      */
     public void playerJoinInGame(Player player, boolean isSpectatorJoin) {
@@ -320,21 +324,21 @@ public class Game {
             Team team = getNextTeam();
             team.addMember(mwPlayer);
             player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.TEAM_TEAM_ASSIGNED).replace("%team%", team.getFullname()));
-            
+
             String message = null;
             if (state == GameState.LOBBY) {
                 message = Messages.getMessage(true, Messages.MessageEnum.LOBBY_PLAYER_JOINED);
             } else if (state == GameState.INGAME) {
                 message = Messages.getMessage(true, Messages.MessageEnum.GAME_PLAYER_JOINED);
             }
-            
+
             if (message != null) {
                 broadcast(message.replace("%max_players%", Integer.toString(lobby.getMaxSize()))
                         .replace("%players%", Integer.toString(players.values().size()))
                         .replace("%player%", player.getName())
                         .replace("%team%", team.getFullname()));
             }
-            
+
         }
 
         player.setScoreboard(scoreboardManager.getBoard());
@@ -371,7 +375,7 @@ public class Game {
             BukkitTask task = playerTasks.get(mwPlayer.getUuid());
             if (task != null) task.cancel();
         }
-        
+
         PlayerDataProvider.getInstance().loadInventory(player);
 
         if (team != null) {
@@ -381,7 +385,7 @@ public class Game {
         }
 
         removePlayer(mwPlayer);
-        
+
         if (playerWasTeamMember) {
 
             String message = null;
@@ -390,7 +394,7 @@ public class Game {
             } else if (state == GameState.INGAME) {
                 message = Messages.getMessage(true, Messages.MessageEnum.GAME_PLAYER_LEFT);
             }
-            
+
             if (message != null) {
                 broadcast(message.replace("%max_players%", Integer.toString(lobby.getMaxSize()))
                         .replace("%players%", Integer.toString(players.values().size()))
@@ -407,7 +411,7 @@ public class Game {
         } else if (state == GameState.INGAME) {
             player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.GAME_LEFT).replace("%arena_name%", arena.getDisplayName()));
         }
-        
+
     }
 
     /**
@@ -437,7 +441,7 @@ public class Game {
     public void resetGame() {
         // Teleporting players; the event listener will handle the teleport event
         applyForAllPlayers(this::teleportToAfterGameSpawn);
-        
+
         // Deactivation of all event handlers
         HandlerList.unregisterAll(listener);
         taskManager.stopTimer();
@@ -454,8 +458,9 @@ public class Game {
 
     /**
      * This method checks if the location is inside in the Lobby-Area.
-     * 
+     *
      * @param location (Location) the location to be checked
+     *
      * @return true, if it's in the Lobby-Area
      */
     public boolean isInLobbyArea(Location location) {
@@ -466,6 +471,7 @@ public class Game {
      * This method checks if the location is inside in the Game-Area.
      *
      * @param location (Location) the location to be checked
+     *
      * @return true, if it's in the Game-Area
      */
     public boolean isInGameArea(Location location) {
@@ -474,10 +480,11 @@ public class Game {
 
     /**
      * This method checks if the location is inside in the Inner Game-Area.
-     * It's the arena from the Team 1 spawn position to the Team 2 spawn 
+     * It's the arena from the Team 1 spawn position to the Team 2 spawn
      * position ("length") with the same "width" of the (major) Game-Area.
      *
      * @param location (Location) the location to be checked
+     *
      * @return true, if it's in the Inner Game-Area
      */
     public boolean isInInnerGameArea(Location location) {
@@ -488,6 +495,7 @@ public class Game {
      * This method checks if the location is in the game world.
      *
      * @param location (Location) the location to be checked
+     *
      * @return true, if it's in the game world
      */
     public boolean isInGameWorld(Location location) {
@@ -499,6 +507,7 @@ public class Game {
      * Lobby-Area or inside in the game world.
      *
      * @param location (Location) the location to be checked
+     *
      * @return true, if the statement is correct
      */
     public boolean isIn(Location location) {
@@ -603,7 +612,7 @@ public class Game {
     public void spawnFireball(Player player, ItemStack itemStack) {
         int amount = itemStack.getAmount();
         itemStack.setAmount(amount - 1);
-        
+
         Fireball fb = player.launchProjectile(Fireball.class);
         fb.setVelocity(player.getLocation().getDirection().multiply(2.5D));
         player.playSound(fb.getLocation(), Sound.BLOCK_ANVIL_LAND, 100.0F, 2.0F);
@@ -638,7 +647,7 @@ public class Game {
             exception.printStackTrace();
             return;
         }
-        
+
         createInnerGameArea();
 
         if (lobby.getMapChooseProcedure() == MapChooseProcedure.MAPVOTING) {
@@ -650,7 +659,7 @@ public class Game {
     }
 
     private void createInnerGameArea() {
-        
+
         // Depending on the rotation of the (major) Game-Area, the spawn points 
         // of both teams are primarily on the X or Z axis opposite each other.
         // The Inner Game-Area is a copy of the (major) Game-Area, with the X or Z 
@@ -660,25 +669,25 @@ public class Game {
 
         int x1, x2, z1, z2;
         Location position1, position2;
-        
+
         if (gameArea.getDirection() == GameArea.Direction.NORTH_SOUTH) {
-            
+
             x1 = gameArea.getMinX();
             x2 = gameArea.getMaxX();
-            
+
             z1 = team1.getSpawn().getBlockZ();
             z2 = team2.getSpawn().getBlockZ();
-            
+
         } else {
-            
+
             z1 = gameArea.getMinZ();
             z2 = gameArea.getMaxZ();
-            
+
             x1 = team1.getSpawn().getBlockX();
             x2 = team2.getSpawn().getBlockX();
-            
+
         }
-        
+
         position1 = new Location(gameArea.getWorld(), x1, gameArea.getMinY(), z1);
         position2 = new Location(gameArea.getWorld(), x2, gameArea.getMaxY(), z2);
 
@@ -747,7 +756,7 @@ public class Game {
             subTitle = Messages.getMessage(false, Messages.MessageEnum.GAME_RESULT_SUBTITLE_DRAW);
 
         }
-        
+
         player.sendTitle(title, subTitle);
     }
 

+ 9 - 10
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/GameManager.java

@@ -24,13 +24,12 @@ import de.butzlabben.missilewars.configuration.Config;
 import de.butzlabben.missilewars.configuration.Lobby;
 import de.butzlabben.missilewars.util.geometry.GameArea;
 import de.butzlabben.missilewars.util.serialization.Serializer;
-import lombok.Getter;
-import org.bukkit.Bukkit;
-import org.bukkit.Location;
-
 import java.io.File;
 import java.io.IOException;
 import java.util.HashMap;
+import lombok.Getter;
+import org.bukkit.Bukkit;
+import org.bukkit.Location;
 
 @Getter
 public class GameManager {
@@ -65,7 +64,7 @@ public class GameManager {
             File lobbiesFolder = new File(Config.getLobbiesFolder());
             File file = new File(lobbiesFolder, Config.getDefaultLobby());
             if (file.exists()) {
-                lobbyFiles = new File[]{file};
+                lobbyFiles = new File[] {file};
             }
         }
         if (lobbyFiles == null) lobbyFiles = new File[0];
@@ -84,7 +83,7 @@ public class GameManager {
                 Bukkit.getPluginManager().disablePlugin(MissileWars.getInstance());
                 return;
             }
-            lobbyFiles = new File[]{file};
+            lobbyFiles = new File[] {file};
         }
 
         for (File lobbyFile : lobbyFiles) {
@@ -98,7 +97,7 @@ public class GameManager {
     /**
      * This method attempts to read the game lobby configuration and build a game
      * from it. Config mistakes are recognized and the config is saved again.
-     * 
+     *
      * @param lobbyFile (File) the arena configuration file
      */
     private void debugStart(File lobbyFile) {
@@ -128,10 +127,10 @@ public class GameManager {
 
     /**
      * This method (re)starts a MissileWars game.
-     * 
+     *
      * @param targetLobby (Lobby) the existing lobby of the game
-     * @param forceStart true, if it should also (re)start, if it's not an automatically
-     *                   starting game according to the lobby configuration
+     * @param forceStart  true, if it should also (re)start, if it's not an automatically
+     *                    starting game according to the lobby configuration
      */
     public void restartGame(Lobby targetLobby, boolean forceStart) {
         if (!targetLobby.isAutoLoad() && !forceStart) return;

+ 3 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/GameWorld.java

@@ -21,6 +21,8 @@ package de.butzlabben.missilewars.game;
 import de.butzlabben.missilewars.Logger;
 import de.butzlabben.missilewars.configuration.Config;
 import de.butzlabben.missilewars.configuration.Messages;
+import java.io.File;
+import java.io.IOException;
 import lombok.Getter;
 import lombok.ToString;
 import org.apache.commons.io.FileUtils;
@@ -31,9 +33,6 @@ import org.bukkit.WorldCreator;
 import org.bukkit.entity.Entity;
 import org.bukkit.entity.Player;
 
-import java.io.File;
-import java.io.IOException;
-
 @Getter
 @ToString(exclude = {"game", "lock"})
 public class GameWorld {
@@ -126,7 +125,7 @@ public class GameWorld {
             Logger.DEBUG.log("Loading new gameworld");
             World world = Bukkit.createWorld(new WorldCreator(worldName));
             Bukkit.getWorlds().add(world);
-            
+
             world.setGameRule(GameRule.DO_TILE_DROPS, game.getArena().isDoTileDrops());
             world.setGameRule(GameRule.KEEP_INVENTORY, game.getArena().isKeepInventory());
         }

+ 4 - 5
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/Team.java

@@ -24,6 +24,7 @@ import de.butzlabben.missilewars.game.enums.GameResult;
 import de.butzlabben.missilewars.player.MWPlayer;
 import de.butzlabben.missilewars.util.MoneyUtil;
 import de.butzlabben.missilewars.util.version.ColorConverter;
+import java.util.ArrayList;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
@@ -37,8 +38,6 @@ import org.bukkit.inventory.ItemStack;
 import org.bukkit.inventory.meta.ItemMeta;
 import org.bukkit.inventory.meta.LeatherArmorMeta;
 
-import java.util.ArrayList;
-
 /**
  * @author Butzlabben
  * @since 01.01.2018
@@ -140,7 +139,7 @@ public class Team {
         helmetMeta.setUnbreakable(true);
         helmetMeta.setColor(color);
         helmet.setItemMeta(helmetMeta);
-        
+
         teamArmor = new ItemStack[] {boots, leggings, chestplate, helmet};
     }
 
@@ -203,7 +202,7 @@ public class Team {
                 subTitle = null;
                 break;
         }
-        
+
         mwPlayer.getPlayer().sendTitle(title, subTitle);
     }
 
@@ -212,7 +211,7 @@ public class Team {
      * game result.
      */
     public void sendGameResultSound(MWPlayer mwPlayer) {
-        
+
         Player player = mwPlayer.getPlayer();
 
         switch (gameResult) {

+ 2 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/equipment/EquipmentManager.java

@@ -41,7 +41,7 @@ public class EquipmentManager {
     private ItemStack customBow;
     private ItemStack customPickaxe;
 
-    
+
     public EquipmentManager(Game game) {
         this.game = game;
 
@@ -84,7 +84,7 @@ public class EquipmentManager {
      * This method gives the player the starter item set, based on the config.yml
      * configuration for spawn and respawn.
      *
-     * @param player the target player
+     * @param player    the target player
      * @param isRespawn true, if the player should receive it after a respawn
      */
     public void sendGameItems(Player player, boolean isRespawn) {

+ 1 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/equipment/MissileGameEquipment.java

@@ -20,10 +20,9 @@ package de.butzlabben.missilewars.game.equipment;
 
 import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.game.missile.Missile;
-import lombok.Getter;
-
 import java.util.ArrayList;
 import java.util.List;
+import lombok.Getter;
 
 /**
  * @author Butzlabben

+ 1 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/equipment/PlayerEquipmentRandomizer.java

@@ -23,9 +23,8 @@ import de.butzlabben.missilewars.configuration.arena.Arena;
 import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.game.missile.Missile;
 import de.butzlabben.missilewars.player.MWPlayer;
-import org.bukkit.inventory.ItemStack;
-
 import java.util.Random;
+import org.bukkit.inventory.ItemStack;
 
 /**
  * @author Butzlabben

+ 2 - 3
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/equipment/SpecialGameEquipment.java

@@ -19,14 +19,13 @@
 package de.butzlabben.missilewars.game.equipment;
 
 import de.butzlabben.missilewars.game.Game;
+import java.util.ArrayList;
+import java.util.List;
 import lombok.Getter;
 import org.bukkit.Material;
 import org.bukkit.inventory.ItemStack;
 import org.bukkit.inventory.meta.ItemMeta;
 
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * @author Butzlabben
  * @since 19.01.2018

+ 3 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/misc/RespawnGoldBlock.java

@@ -23,6 +23,9 @@ import de.butzlabben.missilewars.configuration.Messages;
 import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.game.enums.GameState;
 import de.butzlabben.missilewars.util.version.BlockSetterProvider;
+import java.util.AbstractMap;
+import java.util.HashMap;
+import java.util.Map;
 import org.bukkit.Bukkit;
 import org.bukkit.GameMode;
 import org.bukkit.Location;
@@ -34,10 +37,6 @@ import org.bukkit.event.HandlerList;
 import org.bukkit.event.Listener;
 import org.bukkit.event.player.PlayerToggleSneakEvent;
 
-import java.util.AbstractMap;
-import java.util.HashMap;
-import java.util.Map;
-
 /**
  * @author Butzlabben
  * @since 14.01.2018

+ 6 - 5
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/misc/ScoreboardManager.java

@@ -24,6 +24,8 @@ import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.game.Team;
 import de.butzlabben.missilewars.game.enums.GameState;
 import de.butzlabben.missilewars.player.MWPlayer;
+import java.util.HashMap;
+import java.util.List;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.bukkit.Bukkit;
@@ -32,9 +34,6 @@ import org.bukkit.scoreboard.DisplaySlot;
 import org.bukkit.scoreboard.Objective;
 import org.bukkit.scoreboard.Scoreboard;
 
-import java.util.HashMap;
-import java.util.List;
-
 // Scoreboard Management: https://www.spigotmc.org/wiki/making-scoreboard-with-teams-no-flicker
 
 @RequiredArgsConstructor
@@ -59,7 +58,7 @@ public class ScoreboardManager {
     private Objective obj;
     private HashMap<Integer, org.bukkit.scoreboard.Team> teams = new HashMap<>();
     private static final String[] COLOR_CODES = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};
-    
+
     /**
      * This method registers the scoreboard.
      */
@@ -68,7 +67,7 @@ public class ScoreboardManager {
         team1 = game.getTeam1();
         team2 = game.getTeam2();
         arena = game.getArena();
-        
+
         // register Scoreboard
         if (board == null) {
             board = Bukkit.getScoreboardManager().getNewScoreboard();
@@ -224,7 +223,9 @@ public class ScoreboardManager {
 
     /**
      * This method replaces the placeholders with the current value.
+     *
      * @param text (String) the original config String
+     *
      * @return the replaced text as String
      */
     private String replaceScoreboardPlaceholders(String text) {

+ 1 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/misc/Shield.java

@@ -21,6 +21,7 @@ package de.butzlabben.missilewars.game.misc;
 import de.butzlabben.missilewars.MissileWars;
 import de.butzlabben.missilewars.configuration.arena.ShieldConfiguration;
 import de.butzlabben.missilewars.game.missile.paste.PasteProvider;
+import java.io.File;
 import lombok.RequiredArgsConstructor;
 import org.bukkit.Bukkit;
 import org.bukkit.Location;
@@ -33,8 +34,6 @@ import org.bukkit.event.entity.ProjectileHitEvent;
 import org.bukkit.event.entity.ProjectileLaunchEvent;
 import org.bukkit.util.Vector;
 
-import java.io.File;
-
 /**
  * @author Butzlabben
  * @since 11.09.2018

+ 3 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/missile/Missile.java

@@ -23,6 +23,7 @@ import de.butzlabben.missilewars.Logger;
 import de.butzlabben.missilewars.configuration.Config;
 import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.game.missile.paste.PasteProvider;
+import java.io.File;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.bukkit.Location;
@@ -33,8 +34,6 @@ import org.bukkit.inventory.ItemStack;
 import org.bukkit.inventory.meta.ItemMeta;
 import org.bukkit.util.Vector;
 
-import java.io.File;
-
 /**
  * @author Butzlabben
  * @since 06.01.2018
@@ -100,7 +99,7 @@ public class Missile {
                 .replace("%schematic_name_compact%", getSchematicName(true));
         return name;
     }
-    
+
     /**
      * This method provides the missile spawn item based on the
      * mob spawn item specification in the arena configuration.
@@ -126,7 +125,7 @@ public class Missile {
 
     public static boolean isSpawnEgg(Material material) {
         if (material == null) return false;
-        
+
         String name = material.name();
         return name.contains("SPAWN_EGG") || name.equals("MONSTER_EGG");
     }

+ 1 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/missile/MissileFacing.java

@@ -21,11 +21,10 @@ package de.butzlabben.missilewars.game.missile;
 import de.butzlabben.missilewars.Logger;
 import de.butzlabben.missilewars.configuration.arena.MissileConfiguration;
 import de.butzlabben.missilewars.util.missile.Interval;
-import org.bukkit.entity.Player;
-
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
+import org.bukkit.entity.Player;
 
 /**
  * @author Butzlabben

+ 1 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/missile/paste/Paster.java

@@ -19,9 +19,8 @@
 package de.butzlabben.missilewars.game.missile.paste;
 
 import de.butzlabben.missilewars.game.Team;
-import org.bukkit.util.Vector;
-
 import java.io.File;
+import org.bukkit.util.Vector;
 
 /**
  * @author Butzlabben

+ 1 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/missile/paste/R1_13FawePasteProvider.java

@@ -23,11 +23,10 @@ import de.butzlabben.missilewars.configuration.Config;
 import de.butzlabben.missilewars.game.Team;
 import de.butzlabben.missilewars.missile.paste.r1_13.fawe.R1_13Paster;
 import de.butzlabben.missilewars.util.version.ColorConverter;
+import java.io.File;
 import org.bukkit.World;
 import org.bukkit.util.Vector;
 
-import java.io.File;
-
 /**
  * @author Butzlabben
  * @since 23.09.2018

+ 1 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/missile/paste/R1_13WEPasteProvider.java

@@ -23,11 +23,10 @@ import de.butzlabben.missilewars.configuration.Config;
 import de.butzlabben.missilewars.game.Team;
 import de.butzlabben.missilewars.missile.paste.r1_13.we.R1_13Paster;
 import de.butzlabben.missilewars.util.version.ColorConverter;
+import java.io.File;
 import org.bukkit.World;
 import org.bukkit.util.Vector;
 
-import java.io.File;
-
 /**
  * @author Butzlabben
  * @since 23.09.2018

+ 1 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/missile/paste/R1_16FawePasteProvider.java

@@ -23,11 +23,10 @@ import de.butzlabben.missilewars.configuration.Config;
 import de.butzlabben.missilewars.game.Team;
 import de.butzlabben.missilewars.missile.paste.r1_16.fawe.R1_16Paster;
 import de.butzlabben.missilewars.util.version.ColorConverter;
+import java.io.File;
 import org.bukkit.World;
 import org.bukkit.util.Vector;
 
-import java.io.File;
-
 /**
  * @author Butzlabben
  * @since 23.09.2018

+ 0 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/signs/CheckRunnable.java

@@ -19,7 +19,6 @@
 package de.butzlabben.missilewars.game.signs;
 
 import de.butzlabben.missilewars.MissileWars;
-
 import java.util.List;
 
 public class CheckRunnable implements Runnable {

+ 4 - 5
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/signs/MWSign.java

@@ -23,6 +23,8 @@ import de.butzlabben.missilewars.MissileWars;
 import de.butzlabben.missilewars.configuration.Messages;
 import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.game.GameManager;
+import java.util.ArrayList;
+import java.util.List;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -32,9 +34,6 @@ import org.bukkit.block.Block;
 import org.bukkit.block.Sign;
 import org.bukkit.block.data.type.WallSign;
 
-import java.util.ArrayList;
-import java.util.List;
-
 @Data
 @AllArgsConstructor
 @EqualsAndHashCode(of = "location")
@@ -47,7 +46,7 @@ public class MWSign {
         boolean worldExists = location.getWorld() != null;
         boolean lobbyValid = GameManager.getInstance().getGames().containsKey(lobby);
         boolean blockIsSign = (location.getBlock().getBlockData() instanceof WallSign);
-        
+
         return worldExists && lobbyValid && blockIsSign;
     }
 
@@ -66,7 +65,7 @@ public class MWSign {
         lines.add(replace(Messages.getMessage(false, Messages.MessageEnum.SIGN_1), game));
         lines.add(replace(Messages.getMessage(false, Messages.MessageEnum.SIGN_2), game));
         lines.add(replace(Messages.getMessage(false, Messages.MessageEnum.SIGN_3), game));
-        
+
         if (game == null) {
             Logger.WARN.log("Could not find specifed arena \"" + getLobby() + "\" for sign at: " + getLocation().toString());
         }

+ 10 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/signs/SignRepository.java

@@ -26,15 +26,21 @@ import de.butzlabben.missilewars.Logger;
 import de.butzlabben.missilewars.MissileWars;
 import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.util.serialization.LocationTypeAdapter;
-import lombok.Getter;
-import org.bukkit.Location;
-
-import java.io.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
 import java.util.stream.Collectors;
+import lombok.Getter;
+import org.bukkit.Location;
 
 @Getter
 public class SignRepository {

+ 1 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/stats/FightStats.java

@@ -23,12 +23,11 @@ import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.game.enums.GameResult;
 import de.butzlabben.missilewars.player.MWPlayer;
 import de.butzlabben.missilewars.util.ConnectionHolder;
-import lombok.RequiredArgsConstructor;
-
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.Collection;
+import lombok.RequiredArgsConstructor;
 
 @RequiredArgsConstructor
 public class FightStats {

+ 1 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/stats/PlayerStats.java

@@ -18,13 +18,12 @@
 
 package de.butzlabben.missilewars.game.stats;
 
+import java.util.UUID;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import lombok.ToString;
 
-import java.util.UUID;
-
 @RequiredArgsConstructor
 @Getter
 @ToString(of = {"name", "uuid"})

+ 1 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/stats/PlayerStatsComparator.java

@@ -18,9 +18,8 @@
 
 package de.butzlabben.missilewars.game.stats;
 
-import lombok.AllArgsConstructor;
-
 import java.util.Comparator;
+import lombok.AllArgsConstructor;
 
 @AllArgsConstructor
 public class PlayerStatsComparator implements Comparator<PlayerStats> {

+ 1 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/stats/StatsFetcher.java

@@ -20,8 +20,6 @@ package de.butzlabben.missilewars.game.stats;
 
 import de.butzlabben.missilewars.configuration.Config;
 import de.butzlabben.missilewars.util.ConnectionHolder;
-import lombok.Getter;
-
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
@@ -29,6 +27,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.UUID;
+import lombok.Getter;
 
 @Getter
 public class StatsFetcher {

+ 1 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/timer/EndTimer.java

@@ -35,7 +35,7 @@ public class EndTimer extends Timer {
     @Override
     public void tick() {
 
-        switch(seconds) {
+        switch (seconds) {
             case 15:
                 broadcast(Messages.getMessage(true, Messages.MessageEnum.ENDGAME_TIMER_GAME_STARTS_NEW_IN).replace("%seconds%", Integer.toString(seconds)));
                 break;

+ 2 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/timer/GameTimer.java

@@ -36,7 +36,7 @@ public class GameTimer extends Timer {
     public void tick() {
         Game game = getGame();
 
-        switch(seconds) {
+        switch (seconds) {
             case 7200:
             case 5400:
             case 3600:
@@ -45,7 +45,7 @@ public class GameTimer extends Timer {
             case 600:
             case 300:
             case 180:
-                broadcast(Messages.getMessage(true, Messages.MessageEnum.GAME_TIMER_GAME_ENDS_IN_MINUTES).replace("%minutes%", Integer.toString(seconds/60)));
+                broadcast(Messages.getMessage(true, Messages.MessageEnum.GAME_TIMER_GAME_ENDS_IN_MINUTES).replace("%minutes%", Integer.toString(seconds / 60)));
                 break;
             case 60:
             case 30:

+ 2 - 3
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/timer/LobbyTimer.java

@@ -24,10 +24,9 @@ import de.butzlabben.missilewars.game.Arenas;
 import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.game.enums.MapChooseProcedure;
 import de.butzlabben.missilewars.player.MWPlayer;
-import org.bukkit.Sound;
-
 import java.util.Map;
 import java.util.Optional;
+import org.bukkit.Sound;
 
 /**
  * @author Butzlabben
@@ -72,7 +71,7 @@ public class LobbyTimer extends Timer implements Runnable {
             }
         }
 
-        switch(seconds) {
+        switch (seconds) {
             case 120:
             case 60:
             case 30:

+ 3 - 3
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/timer/TaskManager.java

@@ -41,14 +41,14 @@ public class TaskManager {
     public TaskManager(Game game) {
         this.game = game;
     }
-    
+
     public void runTimer(long delay, long period) {
-        bukkitTask = Bukkit.getScheduler().runTaskTimer(MissileWars.getInstance(), timer , delay, period);
+        bukkitTask = Bukkit.getScheduler().runTaskTimer(MissileWars.getInstance(), timer, delay, period);
     }
 
     public void stopTimer() {
         if (bukkitTask != null)
             bukkitTask.cancel();
     }
-    
+
 }

+ 3 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/inventory/OrcInventory.java

@@ -19,16 +19,15 @@
 package de.butzlabben.missilewars.inventory;
 
 import de.butzlabben.missilewars.Logger;
+import java.util.HashMap;
+import java.util.Map.Entry;
+import java.util.Objects;
 import lombok.Getter;
 import org.bukkit.Bukkit;
 import org.bukkit.entity.Player;
 import org.bukkit.event.inventory.InventoryType;
 import org.bukkit.inventory.Inventory;
 
-import java.util.HashMap;
-import java.util.Map.Entry;
-import java.util.Objects;
-
 @Getter
 public abstract class OrcInventory {
 

+ 4 - 5
missilewars-plugin/src/main/java/de/butzlabben/missilewars/inventory/OrcItem.java

@@ -19,17 +19,16 @@
 package de.butzlabben.missilewars.inventory;
 
 import de.butzlabben.missilewars.util.version.ColorConverter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
 import org.bukkit.Material;
 import org.bukkit.entity.Player;
 import org.bukkit.inventory.ItemFlag;
 import org.bukkit.inventory.ItemStack;
 import org.bukkit.inventory.meta.ItemMeta;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Objects;
-
 public class OrcItem {
 
     public static OrcItem enabled, disabled, coming_soon, back, fill, error = new OrcItem(Material.BARRIER, null,

+ 1 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/inventory/VoteInventory.java

@@ -21,11 +21,10 @@ package de.butzlabben.missilewars.inventory;
 import de.butzlabben.missilewars.Logger;
 import de.butzlabben.missilewars.configuration.Messages;
 import de.butzlabben.missilewars.configuration.arena.Arena;
-import org.bukkit.Material;
-
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import org.bukkit.Material;
 
 public class VoteInventory extends OrcInventory {
 

+ 7 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/PlayerListener.java

@@ -34,7 +34,12 @@ import org.bukkit.event.EventHandler;
 import org.bukkit.event.Listener;
 import org.bukkit.event.block.BlockPlaceEvent;
 import org.bukkit.event.entity.FoodLevelChangeEvent;
-import org.bukkit.event.player.*;
+import org.bukkit.event.player.PlayerDropItemEvent;
+import org.bukkit.event.player.PlayerJoinEvent;
+import org.bukkit.event.player.PlayerMoveEvent;
+import org.bukkit.event.player.PlayerPickupItemEvent;
+import org.bukkit.event.player.PlayerQuitEvent;
+import org.bukkit.event.player.PlayerTeleportEvent;
 import org.bukkit.event.server.ServerListPingEvent;
 import org.bukkit.scheduler.BukkitRunnable;
 
@@ -183,6 +188,7 @@ public class PlayerListener implements Listener {
      * (representing as a world).
      *
      * @param location (Location) of the player
+     *
      * @return the Game Object if existing for the location
      */
     private Game getGame(Location location) {

+ 1 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/SignListener.java

@@ -24,6 +24,7 @@ import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.game.GameManager;
 import de.butzlabben.missilewars.game.signs.MWSign;
 import de.butzlabben.missilewars.game.signs.SignRepository;
+import java.util.Optional;
 import org.bukkit.block.Block;
 import org.bukkit.block.data.type.WallSign;
 import org.bukkit.entity.Player;
@@ -34,8 +35,6 @@ import org.bukkit.event.block.BlockBreakEvent;
 import org.bukkit.event.block.SignChangeEvent;
 import org.bukkit.event.player.PlayerInteractEvent;
 
-import java.util.Optional;
-
 public class SignListener implements Listener {
 
     private static final String KEY_SIGN_HEADLINE = "[missilewars]";

+ 9 - 5
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/game/GameListener.java

@@ -41,7 +41,11 @@ import org.bukkit.event.EventHandler;
 import org.bukkit.event.EventPriority;
 import org.bukkit.event.block.Action;
 import org.bukkit.event.block.BlockPhysicsEvent;
-import org.bukkit.event.entity.*;
+import org.bukkit.event.entity.EntityDamageByEntityEvent;
+import org.bukkit.event.entity.EntityDamageEvent;
+import org.bukkit.event.entity.EntityExplodeEvent;
+import org.bukkit.event.entity.PlayerDeathEvent;
+import org.bukkit.event.entity.ProjectileLaunchEvent;
 import org.bukkit.event.inventory.InventoryClickEvent;
 import org.bukkit.event.inventory.InventoryType;
 import org.bukkit.event.player.PlayerInteractEvent;
@@ -77,10 +81,10 @@ public class GameListener extends GameBoundListener {
         if (event.getChangedType() != Material.NETHER_PORTAL) return;
 
         Location location = event.getBlock().getLocation();
-        
+
         Team team1 = getGame().getTeam1();
         Team team2 = getGame().getTeam2();
-        
+
         if (Geometry.isCloser(location, team1.getSpawn(), team2.getSpawn())) {
             team1.setGameResult(GameResult.LOSE);
             team2.setGameResult(GameResult.WIN);
@@ -88,7 +92,7 @@ public class GameListener extends GameBoundListener {
             team1.setGameResult(GameResult.WIN);
             team2.setGameResult(GameResult.LOSE);
         }
-        
+
         getGame().sendGameResult();
         getGame().stopGame();
     }
@@ -106,7 +110,7 @@ public class GameListener extends GameBoundListener {
         // missile spawn with using of a missile spawn egg
         if (Missile.isSpawnEgg(itemStack.getType())) {
             event.setCancelled(true);
-            
+
             // Can missiles only be spawned if the item interaction was performed on a block (no air)?
             boolean isOnlyBlockPlaceable = getGame().getArena().getMissileConfiguration().isOnlyBlockPlaceable();
             if (isOnlyBlockPlaceable) {

+ 2 - 3
missilewars-plugin/src/main/java/de/butzlabben/missilewars/player/MWPlayer.java

@@ -21,15 +21,14 @@ package de.butzlabben.missilewars.player;
 import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.game.Team;
 import de.butzlabben.missilewars.game.equipment.PlayerEquipmentRandomizer;
+import java.util.UUID;
+import java.util.concurrent.atomic.AtomicLong;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
 import org.bukkit.Bukkit;
 import org.bukkit.entity.Player;
 
-import java.util.UUID;
-import java.util.concurrent.atomic.AtomicLong;
-
 /**
  * @author Butzlabben
  * @since 01.01.2018

+ 6 - 7
missilewars-plugin/src/main/java/de/butzlabben/missilewars/player/PlayerData.java

@@ -19,6 +19,12 @@
 package de.butzlabben.missilewars.player;
 
 import com.google.common.base.Preconditions;
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
 import lombok.AllArgsConstructor;
 import lombok.ToString;
 import org.bukkit.GameMode;
@@ -28,13 +34,6 @@ import org.bukkit.entity.Player;
 import org.bukkit.inventory.ItemStack;
 import org.jetbrains.annotations.NotNull;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
 @ToString
 @AllArgsConstructor
 public class PlayerData implements ConfigurationSerializable {

+ 6 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/ConnectionHolder.java

@@ -21,10 +21,14 @@ package de.butzlabben.missilewars.util;
 import de.butzlabben.missilewars.Logger;
 import de.butzlabben.missilewars.MissileWars;
 import de.butzlabben.missilewars.configuration.Config;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
 import org.bukkit.Bukkit;
 
-import java.sql.*;
-
 /**
  * @author Butzlabben
  * @since 13.08.2018

+ 1 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/MoneyUtil.java

@@ -20,14 +20,13 @@ package de.butzlabben.missilewars.util;
 
 import de.butzlabben.missilewars.Logger;
 import de.butzlabben.missilewars.configuration.Messages;
+import java.util.UUID;
 import net.milkbowl.vault.economy.Economy;
 import net.milkbowl.vault.economy.EconomyResponse;
 import org.bukkit.Bukkit;
 import org.bukkit.OfflinePlayer;
 import org.bukkit.plugin.RegisteredServiceProvider;
 
-import java.util.UUID;
-
 /**
  * @author Butzlabben
  * @since 13.08.2018

+ 29 - 29
missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/geometry/GameArea.java

@@ -34,7 +34,7 @@ public class GameArea {
     private int maxX, maxY, maxZ;
 
     private Direction direction;
-    
+
     /**
      * This method creates a new GameArena object.
      * <p>
@@ -45,22 +45,22 @@ public class GameArea {
      * @param pos2 (Location) the opposite corner of the desired area border
      */
     public GameArea(Location pos1, Location pos2) {
-        
+
         if (!Geometry.bothLocInSameWorld(pos1, pos2)) throw new IllegalArgumentException("Defined positions are not in the same world!");
         if (pos1.equals(pos2)) throw new IllegalArgumentException("The selected positions do not differ.");
-        
+
         this.world = pos1.getWorld();
-        
+
         this.position1 = pos1;
         this.position2 = pos2;
-        
+
         initialize();
     }
 
     /**
      * This method creates a new GameArena object.
      * <p>
-     * The GameArena is a rectangular area. Its border (1 block wide) is 
+     * The GameArena is a rectangular area. Its border (1 block wide) is
      * still part of the arena (= inside).
      *
      * @param center (Location) the horizontal center of the desired area; it's also the vertical minimum of the area (the floor)
@@ -68,12 +68,12 @@ public class GameArea {
      * @param height (int) the height of the desired area
      */
     public GameArea(Location center, int offset, int height) {
-        
+
         if (offset < 1) throw new IllegalArgumentException("The offset must be higher than 0.");
         if (height < 2) throw new IllegalArgumentException("The height must be higher than 1.");
-        
+
         this.world = center.getWorld();
-        
+
         long x1 = center.getBlockX() + offset;
         long x2 = center.getBlockX() - offset;
         long z1 = center.getBlockZ() + offset;
@@ -91,29 +91,29 @@ public class GameArea {
     /**
      * This method creates a new GameArena object.
      * <p>
-     * The GameArena is a rectangular area. Its border (1 block wide) is 
+     * The GameArena is a rectangular area. Its border (1 block wide) is
      * still part of the arena (= inside).
      *
-     * @param world (World) the target world for the desired area
+     * @param world      (World) the target world for the desired area
      * @param areaConfig (AreaConfiguration) the loaded Area-Configuration from which the data is taken
      */
     public GameArea(World world, AreaConfiguration areaConfig) {
-        
+
         this.world = world;
-        
+
         this.position1 = new Location(world, areaConfig.getMinX(), areaConfig.getMinY(), areaConfig.getMinZ());
         this.position2 = new Location(world, areaConfig.getMaxX(), areaConfig.getMaxY(), areaConfig.getMaxZ());
 
         if (position1.equals(position2)) throw new IllegalArgumentException("The selected positions do not differ.");
-        
+
         initialize();
     }
 
     /**
-     * This method calculates and saves the MIN and MAX positions 
-     * according to the current values. The assigned MIN and MAX 
-     * information can be used to later compare the GameArea more 
-     * easily with current live positions/areas. In addition, the 
+     * This method calculates and saves the MIN and MAX positions
+     * according to the current values. The assigned MIN and MAX
+     * information can be used to later compare the GameArea more
+     * easily with current live positions/areas. In addition, the
      * area direction is calculated afterwards.
      */
     private void initialize() {
@@ -159,7 +159,16 @@ public class GameArea {
     }
 
     /**
-     * This method defines the horizontal direction / rotation of the 
+     * This method returns the arena length along the X coordinate.
+     *
+     * @return (Integer) the X size
+     */
+    public int getXSize() {
+        return maxX - minX;
+    }
+
+    /**
+     * This method defines the horizontal direction / rotation of the
      * area based on the alignment of the team spawn points.
      * <p>
      * NORTH-SOUTH = primarily along the Z axis
@@ -170,15 +179,6 @@ public class GameArea {
         EAST_WEST
     }
 
-    /**
-     * This method returns the arena length along the X coordinate.
-     * 
-     * @return (Integer) the X size
-     */
-    public int getXSize() {
-        return maxX - minX;
-    }
-
     /**
      * This method returns the arena length along the Y coordinate.
      *
@@ -196,5 +196,5 @@ public class GameArea {
     public int getZSize() {
         return maxZ - minZ;
     }
-    
+
 }

+ 11 - 7
missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/geometry/Geometry.java

@@ -27,9 +27,10 @@ public class Geometry {
      * This method checks if a location is closer to a target location
      * than another location.
      *
-     * @param targetLocation (Location) the start location for the distance measure
-     * @param closerLocation (Location) the closer location
+     * @param targetLocation      (Location) the start location for the distance measure
+     * @param closerLocation      (Location) the closer location
      * @param furtherAwayLocation (Location) the location that is further away
+     *
      * @return true, if the statement is correct
      */
     public static boolean isCloser(Location targetLocation, Location closerLocation, Location furtherAwayLocation) {
@@ -41,7 +42,8 @@ public class Geometry {
      * arena (1 block wide) is still part of the arena (= inside).
      *
      * @param targetLocation (Location) the location to be checked
-     * @param area (Location) the arena, which should be around the location
+     * @param area           (Location) the arena, which should be around the location
+     *
      * @return true, if the statement is correct
      */
     public static boolean isInsideIn(Location targetLocation, GameArea area) {
@@ -62,9 +64,10 @@ public class Geometry {
 
     /**
      * This method checks, if both locations are in the same world.
-     * 
+     *
      * @param pos1 (Location) location 1
      * @param pos2 (Location) location 2
+     *
      * @return true, if they are in the same world
      */
     public static boolean bothLocInSameWorld(Location pos1, Location pos2) {
@@ -74,13 +77,14 @@ public class Geometry {
 
     /**
      * This method checks if a location is in a specified world.
-     * 
+     *
      * @param targetLocation (Location) the location to be checked
-     * @param world (World) the target world
+     * @param world          (World) the target world
+     *
      * @return true, if the statement is correct
      */
     public static boolean isInWorld(Location targetLocation, World world) {
         return targetLocation.getWorld().getName().equals(world.getName());
     }
-    
+
 }

+ 1 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/stats/GameProfileBuilder.java

@@ -30,6 +30,7 @@ import com.google.gson.JsonSerializer;
 import com.mojang.authlib.GameProfile;
 import com.mojang.authlib.properties.Property;
 import com.mojang.authlib.properties.PropertyMap;
+import com.mojang.util.UUIDTypeAdapter;
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
@@ -43,7 +44,6 @@ import java.util.Map;
 import java.util.UUID;
 import lombok.Getter;
 import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
-import com.mojang.util.UUIDTypeAdapter;
 
 /**
  * @author Butzlabben

+ 10 - 6
missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/stats/PlayerGuiFactory.java

@@ -27,6 +27,16 @@ import de.butzlabben.missilewars.game.stats.PlayerStats;
 import de.butzlabben.missilewars.game.stats.PlayerStatsComparator;
 import de.butzlabben.missilewars.inventory.OrcItem;
 import de.butzlabben.missilewars.inventory.pages.PageGUICreator;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ForkJoinPool;
+import java.util.stream.Collectors;
 import lombok.Getter;
 import org.bukkit.Bukkit;
 import org.bukkit.Material;
@@ -35,12 +45,6 @@ import org.bukkit.entity.Player;
 import org.bukkit.inventory.ItemStack;
 import org.bukkit.inventory.meta.SkullMeta;
 
-import java.io.IOException;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ForkJoinPool;
-import java.util.stream.Collectors;
-
 @Getter
 public class PlayerGuiFactory {
 

+ 6 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/stats/PreFetcher.java

@@ -25,14 +25,18 @@ import de.butzlabben.missilewars.game.stats.StatsFetcher;
 import de.butzlabben.missilewars.inventory.OrcItem;
 import de.butzlabben.missilewars.inventory.pages.InventoryPage;
 import de.butzlabben.missilewars.inventory.pages.PageGUICreator;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.bukkit.Material;
 import org.bukkit.inventory.ItemStack;
 import org.bukkit.inventory.meta.SkullMeta;
 
-import java.util.*;
-
 public class PreFetcher {
 
     @Getter

+ 4 - 5
missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/version/BlockSetterProvider.java

@@ -18,10 +18,9 @@
 
 package de.butzlabben.missilewars.util.version;
 
-import org.bukkit.block.Block;
-
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import org.bukkit.block.Block;
 
 /**
  * @author Butzlabben
@@ -47,7 +46,7 @@ public class BlockSetterProvider {
             Method m = block.getClass().getMethod("getBlockData");
             return m.invoke(block);
         } catch (NoSuchMethodException | IllegalAccessException | IllegalArgumentException
-                | InvocationTargetException e) {
+                 | InvocationTargetException e) {
             e.printStackTrace();
         }
         return null;
@@ -58,11 +57,11 @@ public class BlockSetterProvider {
             Method m = object.getClass().getMethod(method);
             m.invoke(object, args);
         } catch (NoSuchMethodException | IllegalAccessException | IllegalArgumentException
-                | InvocationTargetException e) {
+                 | InvocationTargetException e) {
             e.printStackTrace();
         }
     }
-    
+
     private static class NewBlockSetter implements BlockDataSetter {
 
         @Override

+ 1 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/version/VersionUtil.java

@@ -64,5 +64,5 @@ public class VersionUtil {
         }
         return version;
     }
-    
+
 }