Browse Source

reworking end-game process

RedstoneFuture 3 năm trước cách đây
mục cha
commit
c043cc1190

+ 1 - 5
missilewars-plugin/src/main/java/de/butzlabben/missilewars/wrapper/event/GameEndEvent.java

@@ -19,8 +19,6 @@
 package de.butzlabben.missilewars.wrapper.event;
 
 import de.butzlabben.missilewars.game.Game;
-import de.butzlabben.missilewars.wrapper.game.Team;
-import java.util.Optional;
 import lombok.Getter;
 import org.bukkit.event.HandlerList;
 
@@ -28,11 +26,9 @@ import org.bukkit.event.HandlerList;
 public class GameEndEvent extends GameEvent {
 
     public final static HandlerList handlers = new HandlerList();
-    private final Optional<Team> winningTeam;
 
-    public GameEndEvent(Game game, Team winningTeam) {
+    public GameEndEvent(Game game) {
         super(game);
-        this.winningTeam = Optional.ofNullable(winningTeam);
     }
 
     public static HandlerList getHandlerList() {

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

@@ -55,8 +55,7 @@ public class Team {
     private final Game game;
     private final transient ArrayList<MWPlayer> members = new ArrayList<>();
     @Setter private Location spawn;
-    private transient GameResult gameResult;
-    private transient org.bukkit.scoreboard.Team scoreboardTeam;
+    @Setter private transient GameResult gameResult = GameResult.DRAW;
     private transient int currentInterval = 0;
     ItemStack[] teamArmor;
 
@@ -160,10 +159,6 @@ public class Team {
         return members.contains(player);
     }
 
-    public void setGameResult(GameResult gameResult) {
-        this.gameResult = gameResult;
-    }
-
     /**
      * This method sends all team members the money for playing the game
      * with a specific amount for win and lose.

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

@@ -20,13 +20,15 @@ package de.butzlabben.missilewars.wrapper.stats;
 
 import de.butzlabben.missilewars.Config;
 import de.butzlabben.missilewars.game.Game;
+import de.butzlabben.missilewars.game.GameResult;
 import de.butzlabben.missilewars.util.ConnectionHolder;
 import de.butzlabben.missilewars.wrapper.player.MWPlayer;
+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 {
@@ -43,16 +45,25 @@ public class FightStats {
         arenaName = game.getArena().getName();
         timeStart = game.getTimestart();
         timeElapsed = System.currentTimeMillis() - timeStart;
-        if (game.getTeam1().isWon())
-            teamWon = 1;
-        else if (game.getTeam2().isWon())
-            teamWon = 2;
-        else
-            teamWon = 0;
+        teamWon = getGameResultCode();
         players = game.getPlayers().values();
     }
 
 
+    /**
+     * This method returns the game result code for the database.
+     */
+    private int getGameResultCode() {
+
+        if (game.getTeam1().getGameResult() == GameResult.WIN) {
+            return 1;
+        } else if (game.getTeam2().getGameResult() == GameResult.WIN) {
+            return 2;
+        }
+
+        return 0;
+    }
+
     public static void checkTables() {
         if (!Config.isFightStatsEnabled())
             return;