Skip to content

Commit

Permalink
Fixed NPE if no one got killed
Browse files Browse the repository at this point in the history
Fixed plugin broadcasting a player as winner instead of a group in FUN mode
  • Loading branch information
RoinujNosde committed Aug 7, 2020
1 parent 7515863 commit c1c584d
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 13 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>me.roinujnosde</groupId>
<artifactId>TitansBattle</artifactId>
<version>3.0.4</version>
<version>3.0.5</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -303,10 +303,10 @@ public void save() {
if (scheduler) {
for (Scheduler a : schedulers) {
String id = a.getId();
config.set("scheduler.schedulers." + id + "game", a.getMode().toString());
config.set("scheduler.schedulers." + id + "day", a.getDay());
config.set("scheduler.schedulers." + id + "hour", a.getHour());
config.set("scheduler.schedulers." + id + "minute", a.getMinute());
config.set("scheduler.schedulers." + id + ".game", a.getMode().toString());
config.set("scheduler.schedulers." + id + ".day", a.getDay());
config.set("scheduler.schedulers." + id + ".hour", a.getHour());
config.set("scheduler.schedulers." + id + ".minute", a.getMinute());
}
}
config.set("destinations.general_exit", getGeneralExit());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,15 @@ public Game getCurrentGame() {
return currentGame;
}

private void processWinner(@NotNull Game game, @NotNull Player winner, Player killer) {
private void processWinner(@NotNull Game game, @NotNull Player winner, @Nullable Player killer) {

//Chama os eventos de Novo Killer e Novo Vencedor
Bukkit.getPluginManager().callEvent(new PlayerWinEvent(winner));

//Define o novo killer
setKiller(game, killer, null);
if (killer != null) {
setKiller(game, killer, null);
}
//Anuncia
Bukkit.getServer().broadcastMessage(MessageFormat.format(plugin.getLang("who_won", getCurrentGame()), winner.getName()));

Expand All @@ -87,9 +89,12 @@ private void setWinner(@NotNull Mode mode, @NotNull Player winner) {
plugin.getDatabaseManager().getTodaysWinners().setWinners(mode, uuids);
}

private void processWinners(@NotNull Game game, @NotNull Group group, Player killerPlayer) {
private void processWinners(@NotNull Game game, @NotNull Group group, @Nullable Player killerPlayer) {
//Chama os eventos
Bukkit.getPluginManager().callEvent(new NewKillerEvent(killerPlayer, null));
if (killerPlayer != null) {
Bukkit.getPluginManager().callEvent(new NewKillerEvent(killerPlayer, null));
setKiller(game, killerPlayer, null);
}
Bukkit.getPluginManager().callEvent(new GroupWinEvent(group));

List<Player> leaders = new ArrayList<>();
Expand Down Expand Up @@ -125,7 +130,6 @@ private void processWinners(@NotNull Game game, @NotNull Group group, Player kil
Winners today = db.getTodaysWinners();
today.setWinnerGroup(mode, group);
today.setWinners(mode, new HashSet<>(currentWinners));
setKiller(game, killerPlayer, null);

group.setVictories(mode, (group.getVictories(mode) + 1));

Expand Down Expand Up @@ -562,16 +566,17 @@ public boolean removeParticipant(@NotNull Player player) {
return false;
}

participants.remove(player.getUniqueId());

if (helper.isGroupBased(game)) {
processGroupMemberLeaving(game, player);
} else {
processRemainingParticipants(game);
}
if (!teleportToExit(game, player)) return false;

participants.remove(player.getUniqueId());

if (helper.isFun(game)) {
clearInventory(player);
processRemainingParticipants(game);
}

return true;
Expand Down

0 comments on commit c1c584d

Please sign in to comment.