2
0
Эх сурвалжийг харах

reworking end-game process

RedstoneFuture 3 жил өмнө
parent
commit
a9db444a5f

+ 5 - 6
missilewars-plugin/src/main/java/de/butzlabben/missilewars/MessageConfig.java

@@ -18,15 +18,12 @@
 
 package de.butzlabben.missilewars;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.nio.charset.StandardCharsets;
 import org.bukkit.ChatColor;
 import org.bukkit.configuration.file.YamlConfiguration;
 
+import java.io.*;
+import java.nio.charset.StandardCharsets;
+
 
 /**
  * @author Butzlabben
@@ -103,6 +100,8 @@ public class MessageConfig {
         cfg.addDefault("subtitle_winner", "&7have won");
         cfg.addDefault("title_loser", "You");
         cfg.addDefault("subtitle_loser", "&7have lost");
+        cfg.addDefault("title_draw", "Draw!");
+        cfg.addDefault("subtitle_draw", "");
 
         cfg.addDefault("spectator", "&7You are now a spectator");
         cfg.addDefault("change_team_not_now", "&cNow you cannot change your team anymore");

+ 65 - 55
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/Game.java

@@ -31,7 +31,6 @@ import de.butzlabben.missilewars.listener.EndListener;
 import de.butzlabben.missilewars.listener.GameBoundListener;
 import de.butzlabben.missilewars.listener.GameListener;
 import de.butzlabben.missilewars.listener.LobbyListener;
-import de.butzlabben.missilewars.util.MoneyUtil;
 import de.butzlabben.missilewars.util.MotdManager;
 import de.butzlabben.missilewars.util.ScoreboardManager;
 import de.butzlabben.missilewars.util.serialization.Serializer;
@@ -40,26 +39,14 @@ import de.butzlabben.missilewars.wrapper.abstracts.Arena;
 import de.butzlabben.missilewars.wrapper.abstracts.GameWorld;
 import de.butzlabben.missilewars.wrapper.abstracts.Lobby;
 import de.butzlabben.missilewars.wrapper.abstracts.MapChooseProcedure;
-import de.butzlabben.missilewars.wrapper.event.GameEndEvent;
 import de.butzlabben.missilewars.wrapper.event.GameStartEvent;
 import de.butzlabben.missilewars.wrapper.event.PlayerArenaJoinEvent;
 import de.butzlabben.missilewars.wrapper.game.Team;
 import de.butzlabben.missilewars.wrapper.player.MWPlayer;
 import de.butzlabben.missilewars.wrapper.stats.FightStats;
-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.Setter;
 import lombok.ToString;
-import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
-import org.bukkit.GameMode;
-import org.bukkit.Location;
-import org.bukkit.Material;
-import org.bukkit.World;
+import org.bukkit.*;
 import org.bukkit.enchantments.Enchantment;
 import org.bukkit.entity.Player;
 import org.bukkit.event.HandlerList;
@@ -68,6 +55,12 @@ import org.bukkit.inventory.meta.ItemMeta;
 import org.bukkit.scheduler.BukkitTask;
 import org.bukkit.scoreboard.Scoreboard;
 
+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
@@ -88,7 +81,6 @@ public class Game {
     private GameState state = GameState.LOBBY;
     private Team team1;
     private Team team2;
-    @Setter private boolean draw = true;
     @Getter private boolean ready = false;
     private boolean restart = false;
     private GameWorld gameWorld;
@@ -265,32 +257,24 @@ public class Game {
         }
 
         Logger.DEBUG.log("Stopping for players");
-        int money = arena.getMoney().getDraw();
-        for (Player all : Bukkit.getOnlinePlayers()) {
-            if (!isIn(all.getLocation()))
-                continue;
-            Logger.DEBUG.log("Stopping for: " + all.getName());
+        for (Player player : gameWorld.getWorld().getPlayers()) {
 
-            all.setGameMode(GameMode.SPECTATOR);
-            all.teleport(arena.getSpectatorSpawn());
-            all.setHealth(all.getMaxHealth());
+            Logger.DEBUG.log("Stopping for: " + player.getName());
+            player.setGameMode(GameMode.SPECTATOR);
+            player.teleport(arena.getSpectatorSpawn());
+            player.setHealth(player.getMaxHealth());
 
-            VersionUtil.playDraw(all);
-            if (draw) {
-                if (getPlayer(all).getTeam() == null)
-                    continue;
-                MoneyUtil.giveMoney(all.getUniqueId(), money);
-            }
         }
 
         stopTimer();
-
         HandlerList.unregisterAll(listener);
         GameBoundListener listener = new EndListener(this);
+
         try {
             Bukkit.getPluginManager().registerEvents(listener, MissileWars.getInstance());
         } catch (Exception ignored) {
         }
+
         this.listener = listener;
 
         timer = new EndTimer(this);
@@ -298,16 +282,15 @@ public class Game {
         scoreboardManager.removeScoreboard();
 
         // Change MOTD
-        if (!Config.isMultipleLobbies())
+        if (!Config.isMultipleLobbies()) {
             MotdManager.getInstance().updateMOTD(this);
+        }
 
         if (getArena().isSaveStatistics()) {
             FightStats stats = new FightStats(this);
             stats.insert();
         }
 
-        if (draw) Bukkit.getPluginManager().callEvent(new GameEndEvent(this, null));
-
         Logger.DEBUG.log("Stopped completely");
     }
 
@@ -327,10 +310,6 @@ public class Game {
         restart = true;
     }
 
-    public void draw(boolean draw) {
-        this.draw = draw;
-    }
-
     public void disable() {
         if (state == GameState.INGAME) stopGame();
 
@@ -464,33 +443,64 @@ public class Game {
         return mwPlayer;
     }
 
-    public void sendGameResult(Game game) {
-
-        // Send all player of both teams her money, even of offline or online.
-        team1.sendMoney();
-        team2.sendMoney();
+    /**
+     * This method manages the message output of the game result.
+     * Each player who is currently in the arena world gets a
+     * customized message.
+     */
+    public void sendGameResult() {
 
-        // Send all online players of the game world her own game result message
-        // as title / subtitle.
         for (Player player : gameWorld.getWorld().getPlayers()) {
-            MWPlayer missileWarsPlayer = game.getPlayer(player);
+            MWPlayer missileWarsPlayer = getPlayer(player);
 
+            // team member of team 1
             if (team1.isMember(missileWarsPlayer)) {
-                team1.sendGameResultTitle(player);
+                team1.sendMoney(missileWarsPlayer);
+                team1.sendGameResultTitle(missileWarsPlayer);
+                team1.sendGameResultSound(missileWarsPlayer);
+                continue;
+            }
 
-            } else if (team2.isMember(missileWarsPlayer)) {
-                team2.sendGameResultTitle(player);
+            // team member of team 2
+            if (team2.isMember(missileWarsPlayer)) {
+                team2.sendMoney(missileWarsPlayer);
+                team2.sendGameResultTitle(missileWarsPlayer);
+                team2.sendGameResultSound(missileWarsPlayer);
+                continue;
+            }
 
-            } else {
+            // spectator
+            if (player.isOnline()) {
+                sendNeutralGameResultTitle(player);
+            }
 
-                if (team1.isWon()) {
-                    team1.sendNeutralGameResultTitle(player);
-                } else if (team2.isWon()) {
-                    team2.sendNeutralGameResultTitle(player);
-                }
+        }
+    }
+
+
+    /**
+     * This method sends the players the title / subtitle of the
+     * game result there are not in a team (=spectator).
+     */
+    public void sendNeutralGameResultTitle(Player player) {
+        String title;
+        String subTitle;
+
+        if (team1.getGameResult() == GameResult.WIN) {
+            title = MessageConfig.getNativeMessage("title_won").replace("%team%", team1.getName());
+            subTitle = MessageConfig.getNativeMessage("subtitle_won");
+
+        } else if (team2.getGameResult() == GameResult.WIN) {
+            title = MessageConfig.getNativeMessage("title_won").replace("%team%", team2.getName());
+            subTitle = MessageConfig.getNativeMessage("subtitle_won");
+
+        } else {
+            title = MessageConfig.getNativeMessage("title_draw");
+            subTitle = MessageConfig.getNativeMessage("subtitle_draw");
 
-            }
         }
 
+        VersionUtil.sendTitle(player, title, subTitle);
     }
+
 }

+ 30 - 0
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/GameResult.java

@@ -0,0 +1,30 @@
+/*
+ * This file is part of MissileWars (https://github.com/Butzlabben/missilewars).
+ * Copyright (c) 2018-2021 Daniel Nägele.
+ *
+ * MissileWars is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * MissileWars is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with MissileWars.  If not, see <https://www.gnu.org/licenses/>.
+ */
+
+package de.butzlabben.missilewars.game;
+
+/**
+ * @author Butzlabben
+ * @since 01.01.2018
+ */
+public enum GameResult {
+
+    WIN,
+    LOSE,
+    DRAW
+}

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

@@ -21,6 +21,7 @@ package de.butzlabben.missilewars.listener;
 import de.butzlabben.missilewars.MessageConfig;
 import de.butzlabben.missilewars.MissileWars;
 import de.butzlabben.missilewars.game.Game;
+import de.butzlabben.missilewars.game.GameResult;
 import de.butzlabben.missilewars.util.PlayerDataProvider;
 import de.butzlabben.missilewars.util.version.VersionUtil;
 import de.butzlabben.missilewars.wrapper.abstracts.arena.FallProtectionConfiguration;
@@ -33,24 +34,15 @@ import de.butzlabben.missilewars.wrapper.geometry.Plane;
 import de.butzlabben.missilewars.wrapper.missile.Missile;
 import de.butzlabben.missilewars.wrapper.missile.MissileFacing;
 import de.butzlabben.missilewars.wrapper.player.MWPlayer;
-import java.util.Objects;
 import org.bukkit.Bukkit;
 import org.bukkit.GameMode;
 import org.bukkit.Location;
-import org.bukkit.entity.EntityType;
-import org.bukkit.entity.Fireball;
-import org.bukkit.entity.Player;
-import org.bukkit.entity.Projectile;
-import org.bukkit.entity.Snowball;
+import org.bukkit.entity.*;
 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.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.entity.*;
 import org.bukkit.event.inventory.InventoryClickEvent;
 import org.bukkit.event.inventory.InventoryType;
 import org.bukkit.event.player.PlayerInteractEvent;
@@ -61,6 +53,8 @@ import org.bukkit.scheduler.BukkitTask;
 import org.bukkit.scoreboard.Scoreboard;
 import org.bukkit.util.Vector;
 
+import java.util.Objects;
+
 /**
  * @author Butzlabben
  * @since 12.01.2018
@@ -98,24 +92,26 @@ public class GameListener extends GameBoundListener {
         if (!isInGameWorld(e.getLocation()))
             return;
         Game game = getGame();
+
         if (e.getEntity().getType() == EntityType.FIREBALL && !game.getArena().getFireballConfiguration().isDestroysPortal())
             e.blockList().removeIf(b -> b.getType() == VersionUtil.getPortal());
     }
 
     @EventHandler
-    public void on(BlockPhysicsEvent event) {
+    public void onBlockPhysics(BlockPhysicsEvent event) {
         Location location = event.getBlock().getLocation();
         if (!isInGameWorld(location)) return;
         if (event.getChangedType() != VersionUtil.getPortal()) return;
         Game game = getGame();
+
         if (game.getArena().getPlane1().distance(location.toVector()) > game.getArena().getPlane2().distance(location.toVector())) {
-            game.getTeam1().setWon();
-            game.sendGameResult(game);
+            game.getTeam1().setGameResult(GameResult.WIN);
+            game.getTeam2().setGameResult(GameResult.LOSE);
         } else {
-            game.getTeam2().setWon();
-            game.sendGameResult(game);
+            game.getTeam1().setGameResult(GameResult.LOSE);
+            game.getTeam2().setGameResult(GameResult.WIN);
         }
-        game.setDraw(false);
+        game.sendGameResult();
         game.stopGame();
     }
 
@@ -212,7 +208,7 @@ public class GameListener extends GameBoundListener {
     }
 
     @EventHandler
-    public void onDmg(EntityDamageByEntityEvent e) {
+    public void onDamage(EntityDamageByEntityEvent e) {
         if (!isInGameWorld(e.getEntity().getLocation()))
             return;
         if (!(e.getEntity() instanceof Player))
@@ -303,9 +299,9 @@ public class GameListener extends GameBoundListener {
             int teamSize = team.getMembers().size();
             if (teamSize == 0) {
                 Bukkit.getScheduler().runTask(MissileWars.getInstance(), () -> {
-                    getGame().draw(false);
-                    team.getEnemyTeam().setWon();
-                    game.sendGameResult(game);
+                    team.getEnemyTeam().setGameResult(GameResult.WIN);
+                    team.setGameResult(GameResult.LOSE);
+                    game.sendGameResult();
                     getGame().stopGame();
                 });
                 getGame().broadcast(MessageConfig.getMessage("team_offline").replace("%team%", team.getFullname()));
@@ -317,7 +313,7 @@ public class GameListener extends GameBoundListener {
 
     // TODO - Analyse, Ingame Check and Crop Cancel Analytic
     @EventHandler
-    public void onClick(InventoryClickEvent event) {
+    public void onInventoryClick(InventoryClickEvent event) {
         if (!(event.getWhoClicked() instanceof Player)) return;
         Player p = (Player) event.getWhoClicked();
         if (!isInGameWorld(p.getLocation())) return;

+ 4 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/LobbyListener.java

@@ -51,7 +51,7 @@ public class LobbyListener extends GameBoundListener {
     }
 
     @EventHandler
-    public void onClick(PlayerInteractEvent e) {
+    public void onInteract(PlayerInteractEvent e) {
         if (!isInLobbyArea(e.getPlayer().getLocation()))
             return;
         Player p = e.getPlayer();
@@ -132,17 +132,17 @@ public class LobbyListener extends GameBoundListener {
     }
 
     @EventHandler
-    public void on(EntityDamageEvent e) {
+    public void onDamage(EntityDamageEvent e) {
         if (isInLobbyArea(e.getEntity().getLocation())) e.setCancelled(true);
     }
 
     @EventHandler
-    public void on(PlayerRespawnEvent e) {
+    public void onRespawn(PlayerRespawnEvent e) {
         if (isInLobbyArea(e.getPlayer().getLocation())) e.setRespawnLocation(getGame().getLobby().getSpawnPoint());
     }
 
     @EventHandler
-    public void onClick(InventoryClickEvent e) {
+    public void onInventoryClick(InventoryClickEvent e) {
         if (!(e.getWhoClicked() instanceof Player))
             return;
         Player p = (Player) e.getWhoClicked();

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

@@ -43,12 +43,7 @@ import org.bukkit.event.block.BlockPlaceEvent;
 import org.bukkit.event.entity.FoodLevelChangeEvent;
 import org.bukkit.event.inventory.InventoryClickEvent;
 import org.bukkit.event.inventory.InventoryType;
-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.player.*;
 import org.bukkit.event.server.ServerListPingEvent;
 import org.bukkit.scoreboard.Scoreboard;
 import org.bukkit.scoreboard.Team;
@@ -69,14 +64,14 @@ public class PlayerListener implements Listener {
     }
 
     @EventHandler
-    public void on(FoodLevelChangeEvent e) {
+    public void onFoodLevelChange(FoodLevelChangeEvent e) {
         Game game = getGame(e.getEntity().getLocation());
         if (game != null)
             e.setCancelled(true);
     }
 
     @EventHandler
-    public void on(BlockPlaceEvent e) {
+    public void onBlockPlace(BlockPlaceEvent e) {
         Game game = getGame(e.getPlayer().getLocation());
         if (game != null && e.getPlayer().getGameMode() != GameMode.CREATIVE)
             e.setBuild(false);
@@ -90,14 +85,14 @@ public class PlayerListener implements Listener {
     }
 
     @EventHandler
-    public void onDrop(PlayerPickupItemEvent e) {
+    public void onPickup(PlayerPickupItemEvent e) {
         Game game = getGame(e.getPlayer().getLocation());
         if (game != null)
             e.setCancelled(true);
     }
 
     @EventHandler
-    public void on(PlayerQuitEvent e) {
+    public void onQuit(PlayerQuitEvent e) {
         Player p = e.getPlayer();
 
         Game game = getGame(p.getLocation());
@@ -110,7 +105,7 @@ public class PlayerListener implements Listener {
     }
 
     @EventHandler
-    public void on(PlayerJoinEvent event) {
+    public void onJoin(PlayerJoinEvent event) {
         Player p = event.getPlayer();
 
         Game game = getGame(p.getLocation());
@@ -231,7 +226,7 @@ public class PlayerListener implements Listener {
 
     // Internal stuff
     @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
-    public void on(PrePlayerArenaJoinEvent event) {
+    public void onPreJoin(PrePlayerArenaJoinEvent event) {
         Logger.DEBUG.log("PrePlayerArenaJoinEvent: " + event.getPlayer().getName());
         Bukkit.getScheduler().runTask(MissileWars.getInstance(), () -> Bukkit.getPluginManager().callEvent(new PlayerArenaJoinEvent(event.getPlayer(), event.getGame())));
     }

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

@@ -21,17 +21,15 @@ package de.butzlabben.missilewars.wrapper.game;
 import de.butzlabben.missilewars.Logger;
 import de.butzlabben.missilewars.MessageConfig;
 import de.butzlabben.missilewars.game.Game;
+import de.butzlabben.missilewars.game.GameResult;
 import de.butzlabben.missilewars.util.MoneyUtil;
 import de.butzlabben.missilewars.util.version.ColorConverter;
 import de.butzlabben.missilewars.util.version.VersionUtil;
-import de.butzlabben.missilewars.wrapper.event.GameEndEvent;
 import de.butzlabben.missilewars.wrapper.player.MWPlayer;
-import java.util.ArrayList;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import lombok.ToString;
-import org.bukkit.Bukkit;
 import org.bukkit.Color;
 import org.bukkit.Location;
 import org.bukkit.Material;
@@ -40,6 +38,8 @@ import org.bukkit.inventory.ItemStack;
 import org.bukkit.inventory.meta.LeatherArmorMeta;
 import org.bukkit.scoreboard.Scoreboard;
 
+import java.util.ArrayList;
+
 /**
  * @author Butzlabben
  * @since 01.01.2018
@@ -55,7 +55,7 @@ public class Team {
     private final Game game;
     private final transient ArrayList<MWPlayer> members = new ArrayList<>();
     @Setter private Location spawn;
-    private transient boolean won;
+    private transient GameResult gameResult;
     private transient org.bukkit.scoreboard.Team scoreboardTeam;
     private transient int currentInterval = 0;
 
@@ -160,73 +160,85 @@ public class Team {
         return members.contains(player);
     }
 
-    /**
-     *
-     * @return true, if the team has won the game
-     */
-    public boolean isWon() {
-        return won;
-    }
-
-    /**
-     * This method make the team to the winner.
-     */
-    public void setWon() {
-        this.won = true;
-        Bukkit.getPluginManager().callEvent(new GameEndEvent(game, this));
+    public void setGameResult(GameResult gameResult) {
+        this.gameResult = gameResult;
     }
 
     /**
-     * This method send all team players the money for play the game
+     * This method sends all team members the money for playing the game
      * with a specific amount for win and lose.
      */
-    public void sendMoney() {
+    public void sendMoney(MWPlayer missileWarsPlayer) {
         int money;
 
-        if (won) {
-            money = game.getArena().getMoney().getWin();
-        } else {
-            money = game.getArena().getMoney().getLoss();
-        }
-
-        for (MWPlayer missileWarsPlayer : members) {
-            MoneyUtil.giveMoney(missileWarsPlayer.getUUID(), money);
+        switch (gameResult) {
+            case WIN:
+                money = game.getArena().getMoney().getWin();
+                break;
+            case LOSE:
+                money = game.getArena().getMoney().getLoss();
+                break;
+            case DRAW:
+                money = game.getArena().getMoney().getDraw();
+                break;
+            default:
+                money = 0;
+                break;
         }
 
+        MoneyUtil.giveMoney(missileWarsPlayer.getUUID(), money);
     }
 
     /**
-     * This method send the player the title / subtitle of the
-     * game result to team members.
+     * This method sends all team members the title / subtitle of the
+     * game result.
      */
-    public void sendGameResultTitle(Player player) {
+    public void sendGameResultTitle(MWPlayer missileWarsPlayer) {
         String title;
         String subTitle;
 
-        if (won) {
-            title = MessageConfig.getNativeMessage("title_winner");
-            subTitle = MessageConfig.getNativeMessage("subtitle_winner");
-
-        } else {
-            title = MessageConfig.getNativeMessage("title_loser");
-            subTitle = MessageConfig.getNativeMessage("subtitle_loser");
+        switch (gameResult) {
+            case WIN:
+                title = MessageConfig.getNativeMessage("title_winner");
+                subTitle = MessageConfig.getNativeMessage("subtitle_winner");
+                break;
+            case LOSE:
+                title = MessageConfig.getNativeMessage("title_loser");
+                subTitle = MessageConfig.getNativeMessage("subtitle_loser");
+                break;
+            case DRAW:
+                title = MessageConfig.getNativeMessage("title_draw");
+                subTitle = MessageConfig.getNativeMessage("subtitle_draw");
+                break;
+            default:
+                title = null;
+                subTitle = null;
+                break;
         }
 
-        VersionUtil.sendTitle(player, title, subTitle);
-
+        VersionUtil.sendTitle(missileWarsPlayer.getPlayer(), title, subTitle);
     }
 
     /**
-     * This method send the player the title / subtitle of the
-     * game result to players there are not in a team (=spectator).
+     * This method sends all team members the end-sound of the
+     * game result.
      */
-    public void sendNeutralGameResultTitle(Player player) {
-
-        VersionUtil.sendTitle(player, MessageConfig.getNativeMessage("title_won").replace("%team%", getFullname()),
-                MessageConfig.getNativeMessage("subtitle_won"));
-
+    public void sendGameResultSound(MWPlayer missileWarsPlayer) {
+
+        switch (gameResult) {
+            case WIN:
+                VersionUtil.playPling(missileWarsPlayer.getPlayer());
+                break;
+            case LOSE:
+            case DRAW:
+                VersionUtil.playDraw(missileWarsPlayer.getPlayer());
+                break;
+            default:
+                break;
+        }
     }
 
+
     public void updateIntervals(int newInterval) {
         if (newInterval < currentInterval && currentInterval != 0) {
             getGame().broadcast(MessageConfig.getMessage("team_buffed").replace("%team%", getFullname()));
@@ -239,4 +251,5 @@ public class Team {
         }
         currentInterval = newInterval;
     }
+
 }