Skip to content

Commit 318b026

Browse files
authored
Fix bug where new kits break the plugin (#178)
1 parent 71a127b commit 318b026

5 files changed

Lines changed: 31 additions & 28 deletions

File tree

Plugin/src/main/java/dev/lrxh/neptune/game/match/impl/solo/SoloFightMatch.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
package dev.lrxh.neptune.game.match.impl.solo;
22

3+
import java.time.LocalDateTime;
4+
import java.time.ZoneOffset;
5+
import java.time.format.DateTimeFormatter;
6+
import java.util.List;
7+
8+
import org.bukkit.Bukkit;
9+
310
import dev.lrxh.api.events.SoloMatchBedDestroyEvent;
411
import dev.lrxh.api.match.ISoloFightMatch;
512
import dev.lrxh.api.match.participant.IParticipant;
@@ -36,13 +43,6 @@
3643
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
3744
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
3845

39-
import org.bukkit.Bukkit;
40-
41-
import java.time.LocalDateTime;
42-
import java.time.ZoneOffset;
43-
import java.time.format.DateTimeFormatter;
44-
import java.util.List;
45-
4646
@Getter
4747
@Setter
4848
public class SoloFightMatch extends Match implements ISoloFightMatch {
@@ -143,7 +143,7 @@ public void addStats() {
143143
loser.setEloChange(loserData.get(getKit()).getElo() - initialLoserElo);
144144

145145
if (rankedUp) {
146-
String divisionName = winnerData.get(getKit()).getDivision().getDisplayName();
146+
String divisionName = winnerData.get(getKit()).getDivision() != null ? winnerData.get(getKit()).getDivision().getDisplayName() : "None";
147147

148148
winner.sendTitle(
149149
CC.color(MessagesLocale.RANKUP_TITLE_HEADER.getString().replace("<division>", divisionName)),

Plugin/src/main/java/dev/lrxh/neptune/profile/data/KitData.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
package dev.lrxh.neptune.profile.data;
22

3-
import dev.lrxh.api.data.IKitData;
4-
import dev.lrxh.neptune.feature.divisions.DivisionService;
5-
import dev.lrxh.neptune.feature.divisions.impl.Division;
6-
import lombok.Getter;
7-
import lombok.Setter;
8-
import org.bukkit.inventory.ItemStack;
9-
103
import java.math.BigDecimal;
114
import java.math.RoundingMode;
125
import java.util.ArrayList;
136
import java.util.HashMap;
147
import java.util.List;
158
import java.util.concurrent.ThreadLocalRandom;
169

10+
import org.bukkit.inventory.ItemStack;
11+
12+
import dev.lrxh.api.data.IKitData;
13+
import dev.lrxh.neptune.feature.divisions.DivisionService;
14+
import dev.lrxh.neptune.feature.divisions.impl.Division;
15+
import lombok.Getter;
16+
import lombok.Setter;
17+
1718
@Getter
1819
@Setter
1920
public class KitData implements IKitData {
@@ -24,7 +25,7 @@ public class KitData implements IKitData {
2425
private int bestStreak = 0;
2526
private int currentStreak = 0;
2627
private List<ItemStack> kitLoadout = new ArrayList<>();
27-
private Division division;
28+
private Division division = DivisionService.get().getDivisionByElo(0);
2829
private int elo = 0;
2930
private HashMap<String, Object> customData = new HashMap<>();
3031
private HashMap<String, Object> persistentData = new HashMap<>();

Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/PlaceholderUtil.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package dev.lrxh.neptune.providers.placeholder;
22

3+
import org.bukkit.Bukkit;
4+
import org.bukkit.entity.Player;
5+
36
import dev.lrxh.neptune.API;
47
import dev.lrxh.neptune.configs.impl.MessagesLocale;
58
import dev.lrxh.neptune.feature.party.Party;
@@ -24,9 +27,6 @@
2427
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
2528
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
2629

27-
import org.bukkit.Bukkit;
28-
import org.bukkit.entity.Player;
29-
3030
@UtilityClass
3131
public class PlaceholderUtil {
3232
public TagResolver getPlaceholders(Player player) {
@@ -47,7 +47,7 @@ public TagResolver getPlaceholders(Player player) {
4747
Match match = profile.getGameData().getMatch();
4848
QueueEntry queue = QueueService.get().get(profile.getPlayerUUID());
4949
placeholders = TagResolver.resolver(placeholders, getSettingsResolvers(profile),
50-
Placeholder.parsed("division", globalStats.getDivision().getDisplayName()),
50+
Placeholder.parsed("division", globalStats.getDivision() != null ? globalStats.getDivision().getDisplayName() : "None"),
5151
Placeholder.unparsed("max-ping", String.valueOf(profile.getSettingData().getMaxPing())),
5252
Placeholder.unparsed("wins", String.valueOf(globalStats.getWins())),
5353
Placeholder.unparsed("losses", String.valueOf(globalStats.getLosses())),
@@ -71,7 +71,7 @@ else if (profile.hasState(ProfileState.IN_GAME, ProfileState.IN_SPECTATOR) && ma
7171
KitData kitData = profile.getGameData().get(kit);
7272
placeholders = TagResolver.resolver(placeholders,
7373
Placeholder.parsed("kit", kit.getDisplayName()),
74-
Placeholder.parsed("kit-division", kitData.getDivision().getName()),
74+
Placeholder.parsed("kit-division", kitData.getDivision() != null ? kitData.getDivision().getName() : "None"),
7575
Placeholder.unparsed("rounds", kit.is(KitRule.BEST_OF_THREE) ? "3" : "1"),
7676
Placeholder.unparsed("kit-current-win-streak", String.valueOf(kitData.getCurrentStreak())),
7777
Placeholder.unparsed("kit-best-win-streak", String.valueOf(kitData.getBestStreak())),

Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitPlaceholders.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
package dev.lrxh.neptune.providers.placeholder.impl;
22

3+
import java.util.regex.Matcher;
4+
import java.util.regex.Pattern;
5+
6+
import org.bukkit.OfflinePlayer;
7+
38
import dev.lrxh.neptune.API;
49
import dev.lrxh.neptune.feature.queue.QueueEntry;
510
import dev.lrxh.neptune.feature.queue.QueueService;
@@ -11,10 +16,6 @@
1116
import dev.lrxh.neptune.profile.data.ProfileState;
1217
import dev.lrxh.neptune.profile.impl.Profile;
1318
import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder;
14-
import org.bukkit.OfflinePlayer;
15-
16-
import java.util.regex.Matcher;
17-
import java.util.regex.Pattern;
1819

1920
public class KitPlaceholders implements PAPIPlaceholder {
2021
@Override
@@ -56,7 +57,7 @@ else if (profile.hasState(ProfileState.IN_GAME, ProfileState.IN_SPECTATOR) && ma
5657
KitData kitData = profile.getGameData().get(kit);
5758
switch (type) {
5859
case "name" -> { return kit.getDisplayName(); }
59-
case "division" -> { return kitData.getDivision().getDisplayName(); }
60+
case "division" -> { return kitData.getDivision() != null ? kitData.getDivision().getDisplayName() : "None"; }
6061
case "rounds" -> { return kit.is(KitRule.BEST_OF_THREE) ? "3" : "1"; }
6162
case "current_win_streak" -> { return String.valueOf(kitData.getCurrentStreak()); }
6263
case "best_win_streak" -> { return String.valueOf(kitData.getBestStreak()); }

Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerPlaceholders.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package dev.lrxh.neptune.providers.placeholder.impl;
22

3+
import org.bukkit.OfflinePlayer;
4+
35
import dev.lrxh.neptune.API;
46
import dev.lrxh.neptune.profile.data.GlobalStats;
57
import dev.lrxh.neptune.profile.data.SettingData;
68
import dev.lrxh.neptune.profile.impl.Profile;
79
import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder;
8-
import org.bukkit.OfflinePlayer;
910

1011
public class PlayerPlaceholders implements PAPIPlaceholder {
1112

@@ -28,7 +29,7 @@ public String parse(OfflinePlayer player, String string) {
2829
case "kills" -> { return String.valueOf(globalStats.getKills()); }
2930
case "deaths" -> { return String.valueOf(globalStats.getDeaths()); }
3031
case "losses" -> { return String.valueOf(globalStats.getLosses()); }
31-
case "division" -> { return globalStats.getDivision().getDisplayName(); }
32+
case "division" -> { return globalStats.getDivision() != null ? globalStats.getDivision().getDisplayName() : "None"; }
3233
case "win_loss_ratio" -> { return String.valueOf(globalStats.getWinRatio()); }
3334
case "best_win_streak" -> { return String.valueOf(globalStats.getBestStreak()); }
3435
case "current_win_streak" -> { return String.valueOf(globalStats.getCurrentStreak()); }

0 commit comments

Comments
 (0)