From b5bcea06b77cbed239febd06b5a02a9a96856049 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Tue, 7 Jul 2020 19:35:37 +0200 Subject: [PATCH] Send ELO to players + fix potential crash issue Signed-off-by: Lixfel --- .../src/de/steamwar/fightsystem/fight/FightTeam.java | 7 +++---- .../de/steamwar/fightsystem/utils/FightStatistics.java | 8 ++++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightTeam.java b/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightTeam.java index 5ecebdb..182b4bc 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightTeam.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightTeam.java @@ -187,10 +187,6 @@ public class FightTeam implements IFightTeam{ } public void setLeader(FightPlayer leader) { - this.leader = leader; - if(ready && leader != null) - setReady(false); - if (leader == null){ if(!players.isEmpty()) { setLeader(players.iterator().next()); @@ -202,6 +198,9 @@ public class FightTeam implements IFightTeam{ } return; } + this.leader = leader; + if(ready) + setReady(false); leader.setKit(KitManager.getKitByName(Config.LeaderDefault)); Inventory inventory = leader.getPlayer().getInventory(); diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/utils/FightStatistics.java b/FightSystem_Main/src/de/steamwar/fightsystem/utils/FightStatistics.java index bf48c30..85ccbd9 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/utils/FightStatistics.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/utils/FightStatistics.java @@ -52,8 +52,12 @@ public class FightStatistics { int redElo = Elo.getElo(redLeader.getId(), gameMode); double blueWinExpectation = 1 / (1 + Math.pow(10, (blueElo - redElo) / 400f)); double redWinExpectation = 1 / (1 + Math.pow(10, (redElo - blueElo) / 400f)); - Elo.setElo(blueLeader.getId(), gameMode, (int) Math.round(blueElo + K * (blueResult - blueWinExpectation))); - Elo.setElo(redLeader.getId(), gameMode, (int) Math.round(redElo + K * (1 - blueResult - redWinExpectation))); + int newBlueElo = (int) Math.round(blueElo + K * (blueResult - blueWinExpectation)); + int newRedElo = (int) Math.round(redElo + K * (1 - blueResult - redWinExpectation)); + Elo.setElo(blueLeader.getId(), gameMode, newBlueElo); + Elo.setElo(redLeader.getId(), gameMode, newRedElo); + Bukkit.broadcastMessage(FightSystem.PREFIX + "§7ELO von " + Fight.getBlueTeam().getPrefix() + blueLeader.getUserName() + "§8: §7" + blueElo + "§8»§e" + newBlueElo); + Bukkit.broadcastMessage(FightSystem.PREFIX + "§7ELO von " + Fight.getRedTeam().getPrefix() + redLeader.getUserName() + "§8: §7" + redElo + "§8»§e" + newRedElo); } }