Selaa lähdekoodia

Merge pull request #18 from RedstoneFuture/refactoring6

Refactoring 6
Daniel 3 vuotta sitten
vanhempi
sitoutus
5611b55f84

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

@@ -102,6 +102,8 @@ public class MissileWars extends JavaPlugin {
         framework.registerCommands(new MWCommands());
         framework.registerCommands(new StatsCommands());
         framework.registerCommands(new UserCommands());
+        // TODO make more admin commands usable with console by adding more optional arguments like game name etc.
+        framework.setInGameOnlyMessage(MessageConfig.getPrefix() + "§cYou are not a player");
 
         Arenas.load();
         SetupUtil.checkShields();

+ 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;
+    }
 }

+ 9 - 0
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/Game.java

@@ -585,4 +585,13 @@ public class Game {
         VersionUtil.sendTitle(player, title, subTitle);
     }
 
+
+    /**
+     * This method removes players from the game. Besides former
+     * team members, it also affects spectators.
+     */
+    public void removePlayer(MWPlayer mwPlayer) {
+        if (mwPlayer.getTeam() != null) mwPlayer.getTeam().removeMember(mwPlayer);
+        players.remove(mwPlayer);
+    }
 }

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

@@ -46,18 +46,18 @@ public class GameManager {
     }
 
     public void loadGames() {
-        File[] files = null;
+        File[] lobbyFiles = null;
         if (Config.isMultipleLobbies()) {
-            files = new File(Config.getLobbiesFolder()).listFiles();
+            lobbyFiles = new File(Config.getLobbiesFolder()).listFiles();
         } else {
             File file = new File(Config.getLobbiesFolder() + "/" + Config.getDefaultLobby());
             if (file.exists()) {
-                files = new File[] {file};
+                lobbyFiles = new File[] {file};
             }
         }
-        if (files == null) files = new File[0];
+        if (lobbyFiles == null) lobbyFiles = new File[0];
 
-        if (files.length == 0) {
+        if (lobbyFiles.length == 0) {
             Logger.WARN.log("No lobby configs found. Creating default one");
             File file = new File(Config.getLobbiesFolder() + "/" + Config.getDefaultLobby());
             try {
@@ -70,24 +70,24 @@ public class GameManager {
                 Bukkit.getPluginManager().disablePlugin(MissileWars.getInstance());
                 return;
             }
-            files = new File[] {file};
+            lobbyFiles = new File[] {file};
         }
 
-        loadGames(files);
+        loadGames(lobbyFiles);
     }
 
-    private void loadGames(File[] files) {
+    private void loadGames(File[] lobbyFileList) {
 
-        for (File game : files) {
-            if (game == null)
+        for (File lobbyFile : lobbyFileList) {
+            if (lobbyFile == null)
                 continue;
-            if (!game.getName().endsWith(".yml") && !game.getName().endsWith(".yaml")) continue;
+            if (!lobbyFile.getName().endsWith(".yml") && !lobbyFile.getName().endsWith(".yaml")) continue;
 
-            Logger.BOOT.log("Loading lobby " + game.getName());
+            Logger.BOOT.log("Loading lobby " + lobbyFile.getName());
             try {
-                Lobby lobby = Serializer.deserialize(game, Lobby.class);
+                Lobby lobby = Serializer.deserialize(lobbyFile, Lobby.class);
                 if (lobby == null) {
-                    Logger.ERROR.log("Could not load lobby " + game.getName());
+                    Logger.ERROR.log("Could not load lobby " + lobbyFile.getName());
                     continue;
                 }
                 Game potentialOtherGame = getGame(lobby.getName());
@@ -95,11 +95,11 @@ public class GameManager {
                     Logger.ERROR.log("A lobby with the same name was already loaded. Names of lobbies must be unique, this lobby will not be loaded");
                     continue;
                 }
-                lobby.setFile(game);
+                lobby.setFile(lobbyFile);
                 restartGame(lobby);
-                Logger.BOOTDONE.log("Loaded lobby " + game.getName());
+                Logger.BOOTDONE.log("Loaded lobby " + lobbyFile.getName());
             } catch (IOException exception) {
-                Logger.ERROR.log("Could not load lobby " + game.getName());
+                Logger.ERROR.log("Could not load lobby " + lobbyFile.getName());
                 exception.printStackTrace();
             }
         }

+ 12 - 10
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/timer/LobbyTimer.java

@@ -47,30 +47,32 @@ public class LobbyTimer extends Timer implements Runnable {
 
     @Override
     public void tick() {
-        if (getGame().getPlayers().values().size() == 0)
-            return;
+        if (getGame().getPlayers().values().size() == 0) return;
 
         for (MWPlayer mp : getGame().getPlayers().values()) {
-            if (mp.getPlayer() != null) mp.getPlayer().setLevel(seconds);
-            else {
-                if (mp.getTeam() != null) mp.getTeam().removeMember(mp);
-                getGame().getPlayers().remove(mp.getUUID());
+            if (mp.getPlayer() != null) {
+                mp.getPlayer().setLevel(seconds);
+            } else {
+                getGame().removePlayer(mp);
             }
         }
 
         int size1 = getGame().getTeam1().getMembers().size();
         int size2 = getGame().getTeam2().getMembers().size();
+
         if (size1 == 0 || size2 == 0) {
             seconds = startTime;
             return;
         }
+
         --remaining;
         if (remaining == 0) {
-            if (size1 + size1 < getGame().getLobby().getMinSize())
+            if (size1 + size2 < getGame().getLobby().getMinSize()) {
+                seconds = startTime;
+                remaining = 90;
+                broadcast(MessageConfig.getMessage("not_enough_players"));
                 return;
-            seconds = startTime;
-            remaining = 90;
-            broadcast(MessageConfig.getMessage("not_enough_players"));
+            }
         }
 
         switch(seconds) {

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

@@ -315,7 +315,7 @@ public class GameListener extends GameBoundListener {
 
         MWPlayer player = getGame().getPlayer(e.getPlayer());
         if (player == null) return;
-        BukkitTask task = game.getPlayerTasks().get(player.getUUID());
+        BukkitTask task = game.getPlayerTasks().get(player.getUuid());
         if (task != null) task.cancel();
 
         Team team = player.getTeam();

+ 3 - 16
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/PlayerListener.java

@@ -144,26 +144,13 @@ public class PlayerListener implements Listener {
         Game game = event.getGame();
 
         MWPlayer mwPlayer = game.getPlayer(event.getPlayer());
-        if (mwPlayer == null) return;
-
-        // Already in a team?
-        if (mwPlayer.getTeam() != null) {
-            mwPlayer.getTeam().removeMember(mwPlayer);
-        }
-
-        game.getPlayers().remove(event.getPlayer().getUniqueId());
-
         Player player = mwPlayer.getPlayer();
-        if (player == null) {
-            Logger.WARN.log("Player was null as he left the game");
-            return;
-        }
 
-        player.getInventory().clear();
+        PlayerDataProvider.getInstance().loadInventory(player);
 
-        MissileWars.getInstance().getSignRepository().getSigns(game).forEach(MWSign::update);
+        game.removePlayer(mwPlayer);
 
-        PlayerDataProvider.getInstance().loadInventory(player);
+        MissileWars.getInstance().getSignRepository().getSigns(game).forEach(MWSign::update);
     }
 
     @EventHandler

+ 3 - 3
missilewars-plugin/src/main/java/de/butzlabben/missilewars/wrapper/game/Team.java

@@ -79,7 +79,7 @@ public class Team {
             p.setDisplayName("§7" + p.getName() + "§r");
         }
 
-        members.removeIf(mp -> mp.getUUID().equals(player.getUUID()));
+        members.removeIf(mp -> mp.getUuid().equals(player.getUuid()));
 
         game.getScoreboardManager().resetScoreboard();
         p.setScoreboard(Bukkit.getScoreboardManager().getMainScoreboard());
@@ -95,7 +95,7 @@ public class Team {
 
         Player p = player.getPlayer();
         if (p == null) {
-            Logger.WARN.log("Could not add player " + player.getUUID().toString() + " to a team because he went offline");
+            Logger.WARN.log("Could not add player " + player.getUuid().toString() + " to a team because he went offline");
             return;
         }
 
@@ -181,7 +181,7 @@ public class Team {
                 break;
         }
 
-        MoneyUtil.giveMoney(missileWarsPlayer.getUUID(), money);
+        MoneyUtil.giveMoney(missileWarsPlayer.getUuid(), money);
     }
 
     /**

+ 5 - 11
missilewars-plugin/src/main/java/de/butzlabben/missilewars/wrapper/missile/Missile.java

@@ -23,7 +23,7 @@ import de.butzlabben.missilewars.MissileWars;
 import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.util.version.VersionUtil;
 import de.butzlabben.missilewars.wrapper.missile.paste.PasteProvider;
-import java.io.File;
+import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.bukkit.Location;
 import org.bukkit.entity.EntityType;
@@ -34,6 +34,8 @@ import org.bukkit.inventory.meta.SpawnEggMeta;
 import org.bukkit.material.SpawnEgg;
 import org.bukkit.util.Vector;
 
+import java.io.File;
+
 /**
  * @author Butzlabben
  * @since 06.01.2018
@@ -43,11 +45,11 @@ import org.bukkit.util.Vector;
 public class Missile {
 
     private final String schematic;
-    private final String name;
+    @Getter private final String name;
     private final EntityType egg;
     private final int down;
     private final int dist;
-    private final int occurrence;
+    @Getter private final int occurrence;
 
     public void paste(Player p, MissileFacing mf, Game game) {
         if (mf == null)
@@ -86,14 +88,6 @@ public class Missile {
         return file;
     }
 
-    public int occurrence() {
-        return occurrence;
-    }
-
-    public String getName() {
-        return name;
-    }
-
     public EntityType getType() {
         return egg;
     }

+ 9 - 22
missilewars-plugin/src/main/java/de/butzlabben/missilewars/wrapper/player/MWPlayer.java

@@ -21,13 +21,15 @@ package de.butzlabben.missilewars.wrapper.player;
 import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.util.GameRandomizer;
 import de.butzlabben.missilewars.wrapper.game.Team;
-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
@@ -41,40 +43,25 @@ public class MWPlayer implements Runnable {
     private final UUID uuid;
     private final Game game;
     int i = -1;
-    private Team t;
+    @Setter private Team team;
     private GameRandomizer r;
-    private int period;
+    @Setter private int period;
 
     public MWPlayer(Player player, Game game) {
         this.uuid = player.getUniqueId();
         this.game = game;
     }
 
-    public Team getTeam() {
-        return t;
-    }
-
-    public void setTeam(Team t) {
-        this.t = t;
-    }
-
     public Player getPlayer() {
         return Bukkit.getPlayer(uuid);
     }
 
-    public UUID getUUID() {
-        return uuid;
-    }
-
-    public void setPeriod(int period) {
-        this.period = period;
-    }
-
     @Override
     public void run() {
+
         Player p = Bukkit.getPlayer(uuid);
-        if (p == null || !p.isOnline())
-            return;
+        if (p == null || !p.isOnline()) return;
+
         if (i == -1) {
             i = period - 10;
             if (i >= period || i < 0) i = 0;

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

@@ -108,7 +108,7 @@ public class FightStats {
                     PreparedStatement statement = ConnectionHolder.prepareStatement("INSERT INTO " + Config.getFightMembersTable() + " (fid, player, team) VALUES "
                             + " (?, ?, ?)");
                     statement.setInt(1, fightID);
-                    statement.setString(2, player.getUUID().toString());
+                    statement.setString(2, player.getUuid().toString());
 
                     if (player.getTeam() == game.getTeam1())
                         statement.setInt(3, 1);