From 28c83b594174387978850396b0ff2c7eb7559467 Mon Sep 17 00:00:00 2001 From: mallusrgreatv2 Date: Sun, 22 Feb 2026 16:10:15 +0530 Subject: [PATCH 1/3] Clean up PAPI placeholders --- .../dev/lrxh/api/match/ITeamFightMatch.java | 4 +- .../api/match/participant/IParticipant.java | 3 + .../lrxh/neptune/game/match/MatchService.java | 11 +- .../match/impl/participant/Participant.java | 3 +- .../game/match/impl/team/TeamFightMatch.java | 22 +-- .../placeholder/PlaceholderManager.java | 70 ++------- .../placeholder/PlaceholderUtil.java | 31 ++-- .../placeholder/impl/AlivePlaceholder.java | 29 ---- .../placeholder/impl/ArenaPlaceholder.java | 24 --- .../impl/BedBrokenPlaceholder.java | 32 ---- .../impl/BestStreakPlaceholder.java | 22 --- .../impl/BlueAlivePlaceholder.java | 24 --- .../impl/BlueBedBrokenPlaceholder.java | 34 ---- .../placeholder/impl/BlueMaxPlaceholder.java | 24 --- .../placeholder/impl/ColorPlaceholder.java | 29 ---- .../placeholder/impl/ComboPlaceholder.java | 26 ---- .../impl/CurrentStreakPlaceholder.java | 22 --- .../placeholder/impl/DeathsPlaceholder.java | 22 --- .../placeholder/impl/DivisionPlaceholder.java | 22 --- .../placeholder/impl/EloPlaceholder.java | 22 --- .../placeholder/impl/GlobalPlaceholders.java | 22 +++ .../impl/HitDifferencePlaceholder.java | 28 ---- .../placeholder/impl/HitsPlaceholder.java | 26 ---- .../placeholder/impl/InMatchPlaceholder.java | 17 -- .../placeholder/impl/InQueuePlaceholder.java | 19 --- .../impl/IsTeamMatchPlaceholder.java | 25 --- .../placeholder/impl/KillsPlaceholder.java | 22 --- .../impl/KitBestStreakPlaceholder.java | 32 ---- .../impl/KitCurrentStreakPlaceholder.java | 33 ---- .../impl/KitDeathsPlaceholder.java | 33 ---- .../impl/KitDivisionPlaceholder.java | 33 ---- .../placeholder/impl/KitEloPlaceholder.java | 33 ---- .../impl/KitInMatchPlaceholder.java | 33 ---- .../placeholder/impl/KitKillsPlaceholder.java | 33 ---- .../impl/KitLossesPlaceholder.java | 33 ---- .../placeholder/impl/KitPlaceholder.java | 29 ---- .../placeholder/impl/KitPlaceholders.java | 73 +++++++++ .../impl/KitQueuedPlaceholder.java | 33 ---- .../placeholder/impl/KitWinsPlaceholder.java | 33 ---- .../placeholder/impl/LossesPlaceholder.java | 22 --- .../placeholder/impl/MatchPlaceholders.java | 145 ++++++++++++++++++ .../placeholder/impl/MaxPingPlaceholder.java | 20 --- .../placeholder/impl/MaxPlaceholder.java | 29 ---- .../impl/MaxPointsPlaceholder.java | 24 --- .../impl/OpponentAlivePlaceholder.java | 26 ---- .../impl/OpponentBedBrokenPlaceholder.java | 37 ----- .../impl/OpponentComboPlaceholder.java | 26 ---- .../impl/OpponentHitsPlaceholder.java | 26 ---- .../impl/OpponentMaxPlaceholder.java | 26 ---- .../impl/OpponentPingPlaceholder.java | 29 ---- .../placeholder/impl/OpponentPlaceholder.java | 26 ---- .../impl/OpponentPointsPlaceholder.java | 35 ----- .../placeholder/impl/PartyMaxPlaceholder.java | 20 --- ...laceholder.java => PartyPlaceholders.java} | 16 +- .../placeholder/impl/PingPlaceholder.java | 17 -- .../impl/PlayerBlueNamePlaceholder.java | 24 --- .../impl/PlayerBluePingPlaceholder.java | 24 --- .../placeholder/impl/PlayerPlaceholders.java | 44 ++++++ .../impl/PlayerRedNamePlaceholder.java | 24 --- .../impl/PlayerRedPingPlaceholder.java | 24 --- .../placeholder/impl/PointsPlaceholder.java | 29 ---- .../placeholder/impl/QueuedPlaceholder.java | 17 -- .../impl/RecentMatchPlaceholder.java | 3 +- .../placeholder/impl/RedAlivePlaceholder.java | 24 --- .../impl/RedBedBrokenPlaceholder.java | 31 ---- .../placeholder/impl/RedMaxPlaceholder.java | 24 --- .../placeholder/impl/SizePlaceholder.java | 23 --- .../placeholder/impl/StatePlaceholder.java | 20 --- .../placeholder/impl/WinRatePlaceholder.java | 22 --- .../placeholder/impl/WinsPlaceholder.java | 22 --- docs/placeholders.md | 110 ++++++------- 71 files changed, 400 insertions(+), 1655 deletions(-) delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/AlivePlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/ArenaPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BedBrokenPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BestStreakPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BlueAlivePlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BlueBedBrokenPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BlueMaxPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/ColorPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/ComboPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/CurrentStreakPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/DeathsPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/DivisionPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/EloPlaceholder.java create mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/GlobalPlaceholders.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/HitDifferencePlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/HitsPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/InMatchPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/InQueuePlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/IsTeamMatchPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KillsPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitBestStreakPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitCurrentStreakPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitDeathsPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitDivisionPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitEloPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitInMatchPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitKillsPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitLossesPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitPlaceholder.java create mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitPlaceholders.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitQueuedPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitWinsPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/LossesPlaceholder.java create mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/MatchPlaceholders.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/MaxPingPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/MaxPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/MaxPointsPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentAlivePlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentBedBrokenPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentComboPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentHitsPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentMaxPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentPingPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentPointsPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PartyMaxPlaceholder.java rename Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/{LeaderPlaceholder.java => PartyPlaceholders.java} (52%) delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PingPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerBlueNamePlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerBluePingPlaceholder.java create mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerPlaceholders.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerRedNamePlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerRedPingPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PointsPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/QueuedPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/RedAlivePlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/RedBedBrokenPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/RedMaxPlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/SizePlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/StatePlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/WinRatePlaceholder.java delete mode 100644 Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/WinsPlaceholder.java diff --git a/API/src/main/java/dev/lrxh/api/match/ITeamFightMatch.java b/API/src/main/java/dev/lrxh/api/match/ITeamFightMatch.java index 39001ff2..23bf95bd 100644 --- a/API/src/main/java/dev/lrxh/api/match/ITeamFightMatch.java +++ b/API/src/main/java/dev/lrxh/api/match/ITeamFightMatch.java @@ -9,9 +9,9 @@ public interface ITeamFightMatch extends IMatch { List getParticipants(); - IMatchTeam getTeamA(); + IMatchTeam getRedTeam(); - IMatchTeam getTeamB(); + IMatchTeam getBlueTeam(); IMatchTeam getWinner(); diff --git a/API/src/main/java/dev/lrxh/api/match/participant/IParticipant.java b/API/src/main/java/dev/lrxh/api/match/participant/IParticipant.java index 4a26ff48..ba73897d 100644 --- a/API/src/main/java/dev/lrxh/api/match/participant/IParticipant.java +++ b/API/src/main/java/dev/lrxh/api/match/participant/IParticipant.java @@ -56,6 +56,8 @@ public interface IParticipant { String getHitsDifferenceUncolored(IParticipant otherParticipant); + IMatch getMatch(); + void reset(); void toggleFreeze(); @@ -66,4 +68,5 @@ public interface IParticipant { void resetCombo(); + } diff --git a/Plugin/src/main/java/dev/lrxh/neptune/game/match/MatchService.java b/Plugin/src/main/java/dev/lrxh/neptune/game/match/MatchService.java index 43e3acbd..83667b64 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/game/match/MatchService.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/game/match/MatchService.java @@ -45,6 +45,8 @@ public void startMatch(Participant playerRed, Participant playerBlue, Kit kit, V playerBlue.setColor(ParticipantColor.BLUE); SoloFightMatch match = new SoloFightMatch(arena, kit, duel, Arrays.asList(playerRed, playerBlue), playerRed, playerBlue, rounds); + playerRed.setMatch(match); + playerBlue.setMatch(match); MatchReadyEvent event = new MatchReadyEvent(match); Bukkit.getPluginManager().callEvent(event); if (event.isCancelled()) { @@ -69,7 +71,9 @@ public void startMatch(MatchTeam teamA, MatchTeam teamB, Kit kit, VirtualArena a participants.addAll(teamB.participants()); TeamFightMatch match = new TeamFightMatch(arena, kit, participants, teamA, teamB); - + for (Participant participant : participants) { + participant.setMatch(match); + } MatchReadyEvent event = new MatchReadyEvent(match); Bukkit.getPluginManager().callEvent(event); if (event.isCancelled()) { @@ -108,11 +112,6 @@ public void startMatch(IMatch match, Player redPlayer, Player bluePlayer) { return; } - List participants = new ArrayList<>(); - for (IParticipant participant : match.getParticipants()) { - participants.add((Participant) participant); - } - ArenaService.get().copyFrom(match.getArena()).createDuplicate().thenAccept(virtualArena ->{ Match neptuneMatch = new SoloFightMatch( virtualArena, diff --git a/Plugin/src/main/java/dev/lrxh/neptune/game/match/impl/participant/Participant.java b/Plugin/src/main/java/dev/lrxh/neptune/game/match/impl/participant/Participant.java index 52f6c2cd..51ba6c42 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/game/match/impl/participant/Participant.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/game/match/impl/participant/Participant.java @@ -44,6 +44,7 @@ public class Participant implements IParticipant { private boolean frozen = false; private boolean bedBroken; private Time time; + private Match match; // ELO CHANGES private int eloChange = 0; @@ -206,7 +207,7 @@ public void handleHit(Participant opponent) { Match match = API.getProfile(playerUUID).getMatch(); if (match.getKit().is(KitRule.BOXING)) { if (match instanceof TeamFightMatch teamFightMatch - ? hits >= teamFightMatch.getTeamA().getParticipants().size() * 100 + ? hits >= teamFightMatch.getRedTeam().getParticipants().size() * 100 : hits >= 100) { opponent.setDeathCause(getLastAttacker() != null ? DeathCause.KILL : DeathCause.DIED); match.onDeath(opponent); diff --git a/Plugin/src/main/java/dev/lrxh/neptune/game/match/impl/team/TeamFightMatch.java b/Plugin/src/main/java/dev/lrxh/neptune/game/match/impl/team/TeamFightMatch.java index 37209df7..0357976e 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/game/match/impl/team/TeamFightMatch.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/game/match/impl/team/TeamFightMatch.java @@ -35,18 +35,18 @@ @Setter public class TeamFightMatch extends Match implements ITeamFightMatch { - private final MatchTeam teamA; - private final MatchTeam teamB; + private final MatchTeam redTeam; + private final MatchTeam blueTeam; public TeamFightMatch(VirtualArena arena, Kit kit, List participants, - MatchTeam teamA, MatchTeam teamB) { + MatchTeam redTeam, MatchTeam blueTeam) { super(MatchState.STARTING, arena, kit, participants, 1, 1, true, false); - this.teamA = teamA; - this.teamB = teamB; + this.redTeam = redTeam; + this.blueTeam = blueTeam; } public MatchTeam getParticipantTeam(Participant participant) { - return teamA.participants().contains(participant) ? teamA : teamB; + return redTeam.participants().contains(participant) ? redTeam : blueTeam; } public IMatchTeam getParticipantTeam(IParticipant participant) { @@ -54,11 +54,11 @@ public IMatchTeam getParticipantTeam(IParticipant participant) { } public IMatchTeam getWinner() { - return teamA.isLoser() ? teamB : teamA; + return redTeam.isLoser() ? blueTeam : redTeam; } public IMatchTeam getLoser() { - return teamA.isLoser() ? teamA : teamB; + return redTeam.isLoser() ? redTeam : blueTeam; } @Override @@ -71,7 +71,7 @@ public void win(Participant winner) { @Override public void end(Participant loser) { setState(MatchState.ENDING); - MatchTeam winnerTeam = teamA.isLoser() ? teamB : teamA; + MatchTeam winnerTeam = redTeam.isLoser() ? blueTeam : redTeam; MatchTeam loserTeam = getParticipantTeam(loser); @@ -89,8 +89,8 @@ public void end(Participant loser) { @Override public void sendEndMessage() { - MatchTeam winnerTeam = teamA.isLoser() ? teamB : teamA; - MatchTeam loserTeam = teamA.isLoser() ? teamA : teamB; + MatchTeam winnerTeam = redTeam.isLoser() ? blueTeam : redTeam; + MatchTeam loserTeam = redTeam.isLoser() ? redTeam : blueTeam; forEachParticipant(participant -> MessagesLocale.MATCH_END_DETAILS_TEAM.send(participant.getPlayerUUID(), TagResolver.resolver( diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/PlaceholderManager.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/PlaceholderManager.java index 5f41f799..de14f17c 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/PlaceholderManager.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/PlaceholderManager.java @@ -15,69 +15,15 @@ public PlaceholderManager() { this.placeholders = new ArrayList<>(); placeholders.addAll(Arrays.asList( - new PingPlaceholder(), - new InMatchPlaceholder(), - new QueuedPlaceholder(), - new WinsPlaceholder(), - new LossesPlaceholder(), - new KillsPlaceholder(), - new DeathsPlaceholder(), - new MaxPingPlaceholder(), - new CurrentStreakPlaceholder(), - new BestStreakPlaceholder(), + new GlobalPlaceholders(), + new KitPlaceholders(), new LastKitPlaceholder(), - new ColorPlaceholder(), - new KitDivisionPlaceholder(), - new KitWinsPlaceholder(), - new KitLossesPlaceholder(), - new KitKillsPlaceholder(), - new KitDeathsPlaceholder(), - new KitCurrentStreakPlaceholder(), - new KitBestStreakPlaceholder(), new LeaderboardPlaceholder(), - new KitInMatchPlaceholder(), - new KitQueuedPlaceholder(), - new WinRatePlaceholder(), - new OpponentPlaceholder(), - new OpponentPingPlaceholder(), - new ComboPlaceholder(), - new OpponentComboPlaceholder(), - new HitsPlaceholder(), - new OpponentHitsPlaceholder(), - new HitDifferencePlaceholder(), - new TimePlaceholder(), - new KitPlaceholder(), - new ArenaPlaceholder(), - new MaxPointsPlaceholder(), - new PointsPlaceholder(), - new OpponentPointsPlaceholder(), - new BedBrokenPlaceholder(), - new OpponentBedBrokenPlaceholder(), - new PlayerRedNamePlaceholder(), - new PlayerBlueNamePlaceholder(), - new PlayerRedPingPlaceholder(), - new PlayerBluePingPlaceholder(), - new RedBedBrokenPlaceholder(), - new BlueBedBrokenPlaceholder(), - new AlivePlaceholder(), - new OpponentAlivePlaceholder(), - new MaxPlaceholder(), - new OpponentMaxPlaceholder(), - new InQueuePlaceholder(), - new IsTeamMatchPlaceholder(), - new KitEloPlaceholder(), - new DivisionPlaceholder(), - new EloPlaceholder(), - new LeaderPlaceholder(), - new SizePlaceholder(), - new RedAlivePlaceholder(), - new BlueAlivePlaceholder(), - new RedMaxPlaceholder(), - new BlueMaxPlaceholder(), - new LossesPlaceholder(), - new PartyMaxPlaceholder(), + new MatchPlaceholders(), + new PartyPlaceholders(), + new PlayerPlaceholders(), new RecentMatchPlaceholder(), - new StatePlaceholder() + new TimePlaceholder() )); } @@ -90,7 +36,9 @@ public static PlaceholderManager get() { public String parse(OfflinePlayer player, String text) { for (PAPIPlaceholder placeholder : placeholders) { if (placeholder.match(text)) { - text = placeholder.parse(player, text); + String parsed = placeholder.parse(player, text); + if (parsed == null) continue; + text = parsed; } } return text; diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/PlaceholderUtil.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/PlaceholderUtil.java index 6faec2f2..24b71e64 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/PlaceholderUtil.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/PlaceholderUtil.java @@ -48,8 +48,6 @@ public TagResolver getPlaceholders(Player player) { QueueEntry queue = QueueService.get().get(profile.getPlayerUUID()); placeholders = TagResolver.resolver(placeholders, getSettingsResolvers(profile), Placeholder.parsed("division", globalStats.getDivision().getDisplayName()), - Placeholder.parsed("kill-effect", profile.getSettingData().getKillEffect().getDisplayName()), - Placeholder.parsed("kill-message", profile.getSettingData().getKillMessagePackage().getDisplayName()), Placeholder.unparsed("max-ping", String.valueOf(profile.getSettingData().getMaxPing())), Placeholder.unparsed("wins", String.valueOf(globalStats.getWins())), Placeholder.unparsed("losses", String.valueOf(globalStats.getLosses())), @@ -98,6 +96,7 @@ else if (profile.hasState(ProfileState.IN_GAME, ProfileState.IN_SPECTATOR) && ma ); } if (match != null) { + kit = match.getKit(); Participant participant = match.getParticipant(player); placeholders = TagResolver.resolver(placeholders, Placeholder.parsed("arena", match.getArena().getDisplayName()), @@ -106,12 +105,6 @@ else if (profile.hasState(ProfileState.IN_GAME, ProfileState.IN_SPECTATOR) && ma Placeholder.unparsed("round", String.valueOf(match.getCurrentRound())), Placeholder.unparsed("time", match.getTime().formatTime()) ); - if (kit.is(KitRule.BED_WARS) && participant != null) { - placeholders = TagResolver.resolver(placeholders, - Placeholder.unparsed("bed-broken", participant.isBedBroken() ? "&a✔" : "&c1"), - Placeholder.unparsed("opponent-bed-broken", participant.getOpponent().isBedBroken() ? "&a✔" : "&c1") - ); - } if (match instanceof SoloFightMatch sfm) { Participant red = sfm.getRedParticipant(); Participant blue = sfm.getBlueParticipant(); @@ -120,8 +113,6 @@ else if (profile.hasState(ProfileState.IN_GAME, ProfileState.IN_SPECTATOR) && ma placeholders = TagResolver.resolver(placeholders, Placeholder.parsed("bed-broken", participant.getBedMessage()), Placeholder.parsed("opponent-bed-broken", opponent.getBedMessage()), - Placeholder.parsed("red-bed-broken", red.getBedMessage()), - Placeholder.parsed("blue-bed-broken", blue.getBedMessage()), Placeholder.parsed("opponent-combo", opponent.getComboMessage()), Placeholder.unparsed("combo", participant.getComboMessage()), Placeholder.unparsed("longest-combo", String.valueOf(participant.getLongestCombo())), @@ -132,7 +123,9 @@ else if (profile.hasState(ProfileState.IN_GAME, ProfileState.IN_SPECTATOR) && ma Placeholder.unparsed("opponent-longest-combo", String.valueOf(opponent.getLongestCombo())), Placeholder.unparsed("opponent-hits", String.valueOf(opponent.getHits())), Placeholder.unparsed("opponent-hit-difference", String.valueOf(opponent.getHitsDifference(participant))), - Placeholder.unparsed("opponent-points", String.valueOf(opponent.getPoints())) + Placeholder.unparsed("opponent-points", String.valueOf(opponent.getPoints())), + Placeholder.unparsed("opponent-elo", String.valueOf(opponent.getProfile().getGameData().getGlobalStats().getElo())), + Placeholder.unparsed("opponent-kit-elo", String.valueOf(opponent.getProfile().getGameData().get(kit).getElo())) ); if (opponent.getPlayer() != null) placeholders = TagResolver.resolver(placeholders, Placeholder.unparsed("opponent-ping", String.valueOf(opponent.getPlayer().getPing()))); @@ -140,6 +133,10 @@ else if (profile.hasState(ProfileState.IN_GAME, ProfileState.IN_SPECTATOR) && ma placeholders = TagResolver.resolver(placeholders, Placeholder.parsed("red-combo", red.getComboMessage()), Placeholder.parsed("blue-combo", blue.getComboMessage()), + Placeholder.parsed("red-elo", String.valueOf(red.getProfile().getGameData().getGlobalStats().getElo())), + Placeholder.parsed("blue-elo", String.valueOf(blue.getProfile().getGameData().getGlobalStats().getElo())), + Placeholder.parsed("red-kit-elo", String.valueOf(red.getProfile().getGameData().get(kit).getElo())), + Placeholder.parsed("blue-elo", String.valueOf(blue.getProfile().getGameData().get(kit).getElo())), Placeholder.parsed("red-bed-broken", red.getBedMessage()), Placeholder.parsed("blue-bed-broken", blue.getBedMessage()), Placeholder.unparsed("red-name", red.getName()), @@ -147,13 +144,15 @@ else if (profile.hasState(ProfileState.IN_GAME, ProfileState.IN_SPECTATOR) && ma Placeholder.unparsed("red-hits", String.valueOf(red.getHits())), Placeholder.unparsed("red-hit-difference", red.getHitsDifference(sfm.getBlueParticipant())), Placeholder.unparsed("red-points", String.valueOf(red.getPoints())), - Placeholder.unparsed("red-ping", String.valueOf(red.getPlayer().getPing())), Placeholder.unparsed("blue-name", blue.getName()), Placeholder.unparsed("blue-longest-combo", String.valueOf(blue.getLongestCombo())), Placeholder.unparsed("blue-hits", String.valueOf(blue.getHits())), Placeholder.unparsed("blue-hit-difference", blue.getHitsDifference(sfm.getRedParticipant())), - Placeholder.unparsed("blue-points", String.valueOf(blue.getPoints())), - Placeholder.unparsed("blue-ping", String.valueOf(blue.getPlayer().getPing())) + Placeholder.unparsed("blue-points", String.valueOf(blue.getPoints())) + ); + if (kit.is(KitRule.BED_WARS) && participant != null) placeholders = TagResolver.resolver(placeholders, + Placeholder.parsed("bed-broken", participant.getBedMessage()), + Placeholder.parsed("opponent-bed-broken", participant.getOpponent().getBedMessage()) ); if (red.getPlayer() != null) placeholders = TagResolver.resolver(placeholders, Placeholder.unparsed("red-ping", String.valueOf(red.getPlayer().getPing()))); @@ -161,8 +160,8 @@ else if (profile.hasState(ProfileState.IN_GAME, ProfileState.IN_SPECTATOR) && ma Placeholder.unparsed("blue-ping", String.valueOf(blue.getPlayer().getPing()))); } if (match instanceof TeamFightMatch tfm) { - MatchTeam red = tfm.getTeamA(); - MatchTeam blue = tfm.getTeamB(); + MatchTeam red = tfm.getRedTeam(); + MatchTeam blue = tfm.getBlueTeam(); if (participant != null) { MatchTeam team = tfm.getParticipantTeam(participant); MatchTeam opponent = team.getOpponentTeam(); diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/AlivePlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/AlivePlaceholder.java deleted file mode 100644 index 5cef8532..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/AlivePlaceholder.java +++ /dev/null @@ -1,29 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.ffa.FfaFightMatch; -import dev.lrxh.neptune.game.match.impl.team.TeamFightMatch; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class AlivePlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("alive"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (match == null) return ""; - if (match instanceof TeamFightMatch tfm) { - return String.valueOf(tfm.getParticipantTeam(match.getParticipant(player.getUniqueId())).getAliveParticipants()); - } else if (match instanceof FfaFightMatch ffm) { - return String.valueOf(ffm.getParticipants().size() - ffm.deadParticipants.size()); - } else return ""; - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/ArenaPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/ArenaPlaceholder.java deleted file mode 100644 index 92ee3716..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/ArenaPlaceholder.java +++ /dev/null @@ -1,24 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.profile.data.ProfileState; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class ArenaPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("arena"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (profile.getState() != ProfileState.IN_GAME || match == null) return ""; - return match.getArena().getDisplayName(); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BedBrokenPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BedBrokenPlaceholder.java deleted file mode 100644 index 32f3a26b..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BedBrokenPlaceholder.java +++ /dev/null @@ -1,32 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.kit.impl.KitRule; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.solo.SoloFightMatch; -import dev.lrxh.neptune.game.match.impl.team.TeamFightMatch; -import dev.lrxh.neptune.profile.data.ProfileState; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class BedBrokenPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("bed-broken"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (profile.getState() != ProfileState.IN_GAME || match == null || !match.getKit().is(KitRule.BED_WARS)) - return ""; - if (match instanceof SoloFightMatch soloFightMatch) { - return soloFightMatch.getParticipant(player.getUniqueId()).isBedBroken() ? "true" : "false"; - } else if (match instanceof TeamFightMatch teamFightMatch) { - return teamFightMatch.getParticipantTeam(teamFightMatch.getParticipant(player.getUniqueId())).isBedBroken() ? "true" : "false"; - } else return ""; - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BestStreakPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BestStreakPlaceholder.java deleted file mode 100644 index 80e05aa9..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BestStreakPlaceholder.java +++ /dev/null @@ -1,22 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.profile.data.GlobalStats; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class BestStreakPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("bestStreak"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - GlobalStats globalStats = profile.getGameData().getGlobalStats(); - return String.valueOf(globalStats.getBestStreak()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BlueAlivePlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BlueAlivePlaceholder.java deleted file mode 100644 index 4785bf91..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BlueAlivePlaceholder.java +++ /dev/null @@ -1,24 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.team.TeamFightMatch; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class BlueAlivePlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("blue-alive"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (!(match instanceof TeamFightMatch teamMatch)) return ""; - return String.valueOf(teamMatch.getTeamB().getAliveParticipants()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BlueBedBrokenPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BlueBedBrokenPlaceholder.java deleted file mode 100644 index 90d1d7e5..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BlueBedBrokenPlaceholder.java +++ /dev/null @@ -1,34 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.kit.impl.KitRule; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.solo.SoloFightMatch; -import dev.lrxh.neptune.game.match.impl.team.TeamFightMatch; -import dev.lrxh.neptune.profile.data.ProfileState; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class BlueBedBrokenPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("blue-bed-broken"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (profile.getState() != ProfileState.IN_GAME || match == null || !match.getKit().is(KitRule.BED_WARS)) - return ""; - if (match instanceof SoloFightMatch soloFightMatch) { - return soloFightMatch.getParticipantB().isBedBroken() ? "true" : "false"; - } else if (match instanceof TeamFightMatch teamFightMatch) { - return teamFightMatch.getTeamB().isBedBroken() ? "true" : "false"; - } - - return ""; - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BlueMaxPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BlueMaxPlaceholder.java deleted file mode 100644 index 3a788fce..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/BlueMaxPlaceholder.java +++ /dev/null @@ -1,24 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.team.TeamFightMatch; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class BlueMaxPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("blue-max"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (!(match instanceof TeamFightMatch teamMatch)) return ""; - return String.valueOf(teamMatch.getTeamB().getParticipants().size()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/ColorPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/ColorPlaceholder.java deleted file mode 100644 index 8d638681..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/ColorPlaceholder.java +++ /dev/null @@ -1,29 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.participant.Participant; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class ColorPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("color"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) - return ""; - Match match = profile.getMatch(); - if (match == null) - return ""; - Participant participant = match.getParticipant(player.getUniqueId()); - if (participant == null) - return ""; - return participant.getColor().getColor(); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/ComboPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/ComboPlaceholder.java deleted file mode 100644 index 8c76892a..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/ComboPlaceholder.java +++ /dev/null @@ -1,26 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.solo.SoloFightMatch; -import dev.lrxh.neptune.profile.data.ProfileState; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class ComboPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("combo"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (profile.getState() != ProfileState.IN_GAME || !(match instanceof SoloFightMatch)) - return ""; - return String.valueOf(match.getParticipant(player.getUniqueId()).getCombo()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/CurrentStreakPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/CurrentStreakPlaceholder.java deleted file mode 100644 index bd3f6796..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/CurrentStreakPlaceholder.java +++ /dev/null @@ -1,22 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.profile.data.GlobalStats; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class CurrentStreakPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("currentStreak"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - GlobalStats globalStats = profile.getGameData().getGlobalStats(); - return String.valueOf(globalStats.getCurrentStreak()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/DeathsPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/DeathsPlaceholder.java deleted file mode 100644 index 75f0ad07..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/DeathsPlaceholder.java +++ /dev/null @@ -1,22 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.profile.data.GlobalStats; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class DeathsPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("deaths"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - GlobalStats globalStats = profile.getGameData().getGlobalStats(); - return String.valueOf(globalStats.getDeaths()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/DivisionPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/DivisionPlaceholder.java deleted file mode 100644 index 5f4661d9..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/DivisionPlaceholder.java +++ /dev/null @@ -1,22 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.profile.data.GlobalStats; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class DivisionPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("division"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - GlobalStats globalStats = profile.getGameData().getGlobalStats(); - return globalStats.getDivision() == null ? "null" : String.valueOf(globalStats.getDivision().getDisplayName()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/EloPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/EloPlaceholder.java deleted file mode 100644 index 43c39bc9..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/EloPlaceholder.java +++ /dev/null @@ -1,22 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.profile.data.GlobalStats; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class EloPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("elo"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - GlobalStats globalStats = profile.getGameData().getGlobalStats(); - return String.valueOf(globalStats.getElo()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/GlobalPlaceholders.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/GlobalPlaceholders.java new file mode 100644 index 00000000..a89d4f30 --- /dev/null +++ b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/GlobalPlaceholders.java @@ -0,0 +1,22 @@ +package dev.lrxh.neptune.providers.placeholder.impl; + +import dev.lrxh.neptune.feature.queue.QueueService; +import dev.lrxh.neptune.game.match.MatchService; +import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; +import org.bukkit.OfflinePlayer; + +public class GlobalPlaceholders implements PAPIPlaceholder { + @Override + public boolean match(String string) { + return true; + } + + @Override + public String parse(OfflinePlayer player, String string) { + switch (string) { + case "queued" -> { return String.valueOf(QueueService.get().getQueueSize()); } + case "matches" -> { return String.valueOf(MatchService.get().matches.size()); } + } + return null; + } +} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/HitDifferencePlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/HitDifferencePlaceholder.java deleted file mode 100644 index 91e2c7ce..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/HitDifferencePlaceholder.java +++ /dev/null @@ -1,28 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.participant.Participant; -import dev.lrxh.neptune.game.match.impl.solo.SoloFightMatch; -import dev.lrxh.neptune.profile.data.ProfileState; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class HitDifferencePlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("hit-difference"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (profile.getState() != ProfileState.IN_GAME || !(match instanceof SoloFightMatch)) - return ""; - Participant playerParticipant = match.getParticipant(player.getUniqueId()); - return String.valueOf(playerParticipant.getHitsDifference(playerParticipant.getOpponent())); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/HitsPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/HitsPlaceholder.java deleted file mode 100644 index a4e8f647..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/HitsPlaceholder.java +++ /dev/null @@ -1,26 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.solo.SoloFightMatch; -import dev.lrxh.neptune.profile.data.ProfileState; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class HitsPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("hits"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (profile.getState() != ProfileState.IN_GAME || !(match instanceof SoloFightMatch)) - return ""; - return String.valueOf(match.getParticipant(player.getUniqueId()).getHits()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/InMatchPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/InMatchPlaceholder.java deleted file mode 100644 index 0c2c1ada..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/InMatchPlaceholder.java +++ /dev/null @@ -1,17 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.game.match.MatchService; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class InMatchPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("in-match"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - return String.valueOf(MatchService.get().matches.size()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/InQueuePlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/InQueuePlaceholder.java deleted file mode 100644 index 8c08b0c1..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/InQueuePlaceholder.java +++ /dev/null @@ -1,19 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.feature.queue.QueueEntry; -import dev.lrxh.neptune.feature.queue.QueueService; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class InQueuePlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("in-queue"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - QueueEntry entry = QueueService.get().get(player.getUniqueId()); - return entry != null ? entry.getKit().getDisplayName() : ""; - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/IsTeamMatchPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/IsTeamMatchPlaceholder.java deleted file mode 100644 index 683f9334..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/IsTeamMatchPlaceholder.java +++ /dev/null @@ -1,25 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.team.TeamFightMatch; -import dev.lrxh.neptune.profile.data.ProfileState; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class IsTeamMatchPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("is-team-match"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (profile.getState() != ProfileState.IN_GAME || match == null) return ""; - return match instanceof TeamFightMatch ? "true" : "false"; - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KillsPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KillsPlaceholder.java deleted file mode 100644 index 217fde8e..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KillsPlaceholder.java +++ /dev/null @@ -1,22 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.profile.data.GlobalStats; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class KillsPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("kills"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - GlobalStats globalStats = profile.getGameData().getGlobalStats(); - return String.valueOf(globalStats.getKills()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitBestStreakPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitBestStreakPlaceholder.java deleted file mode 100644 index 05df5740..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitBestStreakPlaceholder.java +++ /dev/null @@ -1,32 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.kit.KitService; -import dev.lrxh.neptune.profile.data.KitData; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class KitBestStreakPlaceholder implements PAPIPlaceholder { - private final Pattern PATTERN = Pattern.compile("(.*)_bestStreak"); - - @Override - public boolean match(String string) { - return PATTERN.matcher(string).matches(); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Matcher matcher = PATTERN.matcher(string); - if (!matcher.matches()) return string; - KitData data = profile.getGameData().get(KitService.get().getKitByName(matcher.group(1))); - if (data == null) return string; - - return String.valueOf(data.getBestStreak()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitCurrentStreakPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitCurrentStreakPlaceholder.java deleted file mode 100644 index 9e94f814..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitCurrentStreakPlaceholder.java +++ /dev/null @@ -1,33 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.kit.KitService; -import dev.lrxh.neptune.profile.data.KitData; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class KitCurrentStreakPlaceholder implements PAPIPlaceholder { - private final Pattern PATTERN = Pattern.compile("(.*)_currentStreak"); - - @Override - public boolean match(String string) { - return PATTERN.matcher(string).matches(); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - - Matcher matcher = PATTERN.matcher(string); - if (!matcher.matches()) return string; - KitData data = profile.getGameData().get(KitService.get().getKitByName(matcher.group(1))); - if (data == null) return string; - - return String.valueOf(data.getCurrentStreak()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitDeathsPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitDeathsPlaceholder.java deleted file mode 100644 index 16e7cc92..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitDeathsPlaceholder.java +++ /dev/null @@ -1,33 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.kit.KitService; -import dev.lrxh.neptune.profile.data.KitData; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class KitDeathsPlaceholder implements PAPIPlaceholder { - private final Pattern PATTERN = Pattern.compile("(.*)_deaths"); - - @Override - public boolean match(String string) { - return PATTERN.matcher(string).matches(); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - - Matcher matcher = PATTERN.matcher(string); - if (!matcher.matches()) return string; - KitData data = profile.getGameData().get(KitService.get().getKitByName(matcher.group(1))); - if (data == null) return string; - - return String.valueOf(data.getDeaths()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitDivisionPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitDivisionPlaceholder.java deleted file mode 100644 index c75c08da..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitDivisionPlaceholder.java +++ /dev/null @@ -1,33 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.kit.KitService; -import dev.lrxh.neptune.profile.data.KitData; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class KitDivisionPlaceholder implements PAPIPlaceholder { - private final Pattern PATTERN = Pattern.compile("(.*)_division"); - - @Override - public boolean match(String string) { - return PATTERN.matcher(string).matches(); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - - Matcher matcher = PATTERN.matcher(string); - if (!matcher.matches()) return string; - KitData data = profile.getGameData().get(KitService.get().getKitByName(matcher.group(1))); - if (data == null) return string; - - return data.getDivision() == null ? "null" : String.valueOf(data.getDivision().getDisplayName()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitEloPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitEloPlaceholder.java deleted file mode 100644 index e24bd41f..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitEloPlaceholder.java +++ /dev/null @@ -1,33 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.kit.KitService; -import dev.lrxh.neptune.profile.data.KitData; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class KitEloPlaceholder implements PAPIPlaceholder { - private final Pattern PATTERN = Pattern.compile("(.*)_elo"); - - @Override - public boolean match(String string) { - return PATTERN.matcher(string).matches(); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - - Matcher matcher = PATTERN.matcher(string); - if (!matcher.matches()) return string; - KitData data = profile.getGameData().get(KitService.get().getKitByName(matcher.group(1))); - if (data == null) return string; - - return String.valueOf(data.getElo()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitInMatchPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitInMatchPlaceholder.java deleted file mode 100644 index 7a4a7002..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitInMatchPlaceholder.java +++ /dev/null @@ -1,33 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.kit.Kit; -import dev.lrxh.neptune.game.kit.KitService; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class KitInMatchPlaceholder implements PAPIPlaceholder { - private final Pattern PATTERN = Pattern.compile("in-match_(.*)"); - - @Override - public boolean match(String string) { - return PATTERN.matcher(string).matches(); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - - Matcher matcher = PATTERN.matcher(string); - if (!matcher.matches()) return string; - Kit kit = KitService.get().getKitByName(matcher.group(1)); - if (kit == null) return string; - - return String.valueOf(kit.getPlaying()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitKillsPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitKillsPlaceholder.java deleted file mode 100644 index b8f6b7ec..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitKillsPlaceholder.java +++ /dev/null @@ -1,33 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.kit.KitService; -import dev.lrxh.neptune.profile.data.KitData; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class KitKillsPlaceholder implements PAPIPlaceholder { - private final Pattern PATTERN = Pattern.compile("(.*)_kills"); - - @Override - public boolean match(String string) { - return PATTERN.matcher(string).matches(); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - - Matcher matcher = PATTERN.matcher(string); - if (!matcher.matches()) return string; - KitData data = profile.getGameData().get(KitService.get().getKitByName(matcher.group(1))); - if (data == null) return string; - - return String.valueOf(data.getKills()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitLossesPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitLossesPlaceholder.java deleted file mode 100644 index 3ba14aeb..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitLossesPlaceholder.java +++ /dev/null @@ -1,33 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.kit.KitService; -import dev.lrxh.neptune.profile.data.KitData; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class KitLossesPlaceholder implements PAPIPlaceholder { - private final Pattern PATTERN = Pattern.compile("(.*)_losses"); - - @Override - public boolean match(String string) { - return PATTERN.matcher(string).matches(); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - - Matcher matcher = PATTERN.matcher(string); - if (!matcher.matches()) return string; - KitData data = profile.getGameData().get(KitService.get().getKitByName(matcher.group(1))); - if (data == null) return string; - - return String.valueOf(data.getLosses()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitPlaceholder.java deleted file mode 100644 index 909b2acd..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitPlaceholder.java +++ /dev/null @@ -1,29 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.feature.queue.QueueService; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.profile.data.ProfileState; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class KitPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("kit"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (match != null && !match.isEnded()) return match.getKit().getDisplayName(); - else if (profile.getState().equals(ProfileState.IN_KIT_EDITOR)) - return profile.getGameData().getKitEditor().getDisplayName(); - else if (profile.getState().equals(ProfileState.IN_QUEUE)) - return QueueService.get().get(player.getUniqueId()).getKit().getDisplayName(); - else return ""; - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitPlaceholders.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitPlaceholders.java new file mode 100644 index 00000000..3304c64e --- /dev/null +++ b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitPlaceholders.java @@ -0,0 +1,73 @@ +package dev.lrxh.neptune.providers.placeholder.impl; + +import dev.lrxh.neptune.API; +import dev.lrxh.neptune.feature.queue.QueueEntry; +import dev.lrxh.neptune.feature.queue.QueueService; +import dev.lrxh.neptune.game.kit.Kit; +import dev.lrxh.neptune.game.kit.KitService; +import dev.lrxh.neptune.game.kit.impl.KitRule; +import dev.lrxh.neptune.game.match.Match; +import dev.lrxh.neptune.profile.data.KitData; +import dev.lrxh.neptune.profile.data.ProfileState; +import dev.lrxh.neptune.profile.impl.Profile; +import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; +import org.bukkit.OfflinePlayer; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class KitPlaceholders implements PAPIPlaceholder { + @Override + public boolean match(String string) { + return string.startsWith("kit_"); + } + + @Override + public String parse(OfflinePlayer player, String string) { + Profile profile = API.getProfile(player.getUniqueId()); + + Kit kit = null; + + Pattern pattern = Pattern.compile("kit_(?:(?[A-Za-z0-9_,.-]+)_)?(?[A-Za-z_]+)"); + Matcher matcher = pattern.matcher(string); + if (!matcher.matches()) { + throw new IllegalArgumentException("Invalid string for kit placeholder: " + string); + } + System.out.println(string); + String resultKit = null; + try { resultKit = matcher.group("kit"); } catch (Exception ignored) {} + String type = matcher.group("type"); + if (resultKit != null) kit = KitService.get().getKitByName(resultKit); + if (profile == null) return null; + + Match match = profile.getMatch(); + QueueEntry queue = QueueService.get().get(profile.getPlayerUUID()); + if (kit != null && type.equals("name")) return kit.getDisplayName(); + else if (profile.hasState(ProfileState.IN_QUEUE) && queue != null) + kit = queue.getKit(); + else if (profile.hasState(ProfileState.IN_KIT_EDITOR)) + kit = profile.getGameData().getKitEditor(); + else if (profile.hasState(ProfileState.IN_GAME, ProfileState.IN_SPECTATOR) && match != null) + kit = match.getKit(); + + if (kit == null) return null; + if (type == null) return kit.getDisplayName(); + + KitData kitData = profile.getGameData().get(kit); + switch (type) { + case "name" -> { return kit.getDisplayName(); } + case "division" -> { return kitData.getDivision().getDisplayName(); } + case "rounds" -> { return kit.is(KitRule.BEST_OF_THREE) ? "3" : "1"; } + case "current_win_streak" -> { return String.valueOf(kitData.getCurrentStreak()); } + case "best_win_streak" -> { return String.valueOf(kitData.getBestStreak()); } + case "wins" -> { return String.valueOf(kitData.getWins()); } + case "losses" -> { return String.valueOf(kitData.getLosses()); } + case "kills" -> { return String.valueOf(kitData.getKills()); } + case "deaths" -> { return String.valueOf(kitData.getDeaths()); } + case "elo" -> { return String.valueOf(kitData.getElo()); } + case "queued" -> { return String.valueOf(kit.getQueue()); } + case "in_match" -> { return String.valueOf(kit.getPlaying()); } + } + return null; + } +} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitQueuedPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitQueuedPlaceholder.java deleted file mode 100644 index 2c1df089..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitQueuedPlaceholder.java +++ /dev/null @@ -1,33 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.kit.Kit; -import dev.lrxh.neptune.game.kit.KitService; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class KitQueuedPlaceholder implements PAPIPlaceholder { - private final Pattern PATTERN = Pattern.compile("queued_(.*)"); - - @Override - public boolean match(String string) { - return PATTERN.matcher(string).matches(); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - - Matcher matcher = PATTERN.matcher(string); - if (!matcher.matches()) return string; - Kit kit = KitService.get().getKitByName(matcher.group(1)); - if (kit == null) return string; - - return String.valueOf(kit.getQueue()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitWinsPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitWinsPlaceholder.java deleted file mode 100644 index 09af1c67..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/KitWinsPlaceholder.java +++ /dev/null @@ -1,33 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.kit.KitService; -import dev.lrxh.neptune.profile.data.KitData; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class KitWinsPlaceholder implements PAPIPlaceholder { - private final Pattern PATTERN = Pattern.compile("(.*)_wins"); - - @Override - public boolean match(String string) { - return PATTERN.matcher(string).matches(); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - - Matcher matcher = PATTERN.matcher(string); - if (!matcher.matches()) return string; - KitData data = profile.getGameData().get(KitService.get().getKitByName(matcher.group(1))); - if (data == null) return string; - - return String.valueOf(data.getWins()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/LossesPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/LossesPlaceholder.java deleted file mode 100644 index 8ee9ee1c..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/LossesPlaceholder.java +++ /dev/null @@ -1,22 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.profile.data.GlobalStats; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class LossesPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("losses"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - GlobalStats globalStats = profile.getGameData().getGlobalStats(); - return String.valueOf(globalStats.getLosses()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/MatchPlaceholders.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/MatchPlaceholders.java new file mode 100644 index 00000000..0c982e81 --- /dev/null +++ b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/MatchPlaceholders.java @@ -0,0 +1,145 @@ +package dev.lrxh.neptune.providers.placeholder.impl; + +import dev.lrxh.neptune.API; +import dev.lrxh.neptune.game.kit.Kit; +import dev.lrxh.neptune.game.kit.impl.KitRule; +import dev.lrxh.neptune.game.match.Match; +import dev.lrxh.neptune.game.match.impl.ffa.FfaFightMatch; +import dev.lrxh.neptune.game.match.impl.participant.Participant; +import dev.lrxh.neptune.game.match.impl.solo.SoloFightMatch; +import dev.lrxh.neptune.game.match.impl.team.MatchTeam; +import dev.lrxh.neptune.game.match.impl.team.TeamFightMatch; +import dev.lrxh.neptune.profile.impl.Profile; +import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; +import org.bukkit.OfflinePlayer; + +public class MatchPlaceholders implements PAPIPlaceholder { + @Override + public boolean match(String string) { + return true; + } + + @Override + public String parse(OfflinePlayer player, String string) { + Profile profile = API.getProfile(player.getUniqueId()); + if (profile == null) return null; + Match match = profile.getMatch(); + if (match == null) return null; + Kit kit = match.getKit(); + switch (string) { + case "loser" -> { return match.getLoserName(); } + case "winner" -> { return match.getWinnerName(); } + case "arena" -> { return match.getArena().getDisplayName(); } + case "round" -> { return String.valueOf(match.getCurrentRound()); } + } + Participant participant = match.getParticipant(profile.getPlayer()); + if (participant != null) { + if (string.equals("color")) return participant.getColor().getColor(); + if (string.equals("opponent_color")) return participant.getOpponent().getColor().getColor(); + } + if (match instanceof SoloFightMatch sfm) { + Participant red = sfm.getRedParticipant(); + Participant blue = sfm.getBlueParticipant(); + switch (string) { + case "red_name" -> { return red.getName(); } + case "blue_name" -> { return blue.getName(); } + case "red_combo" -> { return red.getComboMessage(); } + case "blue_combo" -> { return blue.getComboMessage(); } + case "red_hits" -> { return String.valueOf(red.getHits()); } + case "blue_hits" -> { return String.valueOf(blue.getHits()); } + case "red_points" -> { return String.valueOf(red.getPoints()); } + case "blue_points" -> { return String.valueOf(blue.getPoints()); } + case "red_ping" -> { return String.valueOf(red.getPlayer().getPing()); } + case "blue_ping" -> { return String.valueOf(blue.getPlayer().getPing()); } + case "red_longest_combo" -> { return String.valueOf(red.getLongestCombo()); } + case "blue_longest_combo" -> { return String.valueOf(blue.getLongestCombo()); } + case "red_hit_difference" -> { return String.valueOf(red.getHitsDifference(red)); } + case "blue_hit_difference" -> { return String.valueOf(blue.getHitsDifference(blue)); } + case "red_elo" -> { return String.valueOf(red.getProfile().getGameData().getGlobalStats().getElo()); } + case "blue_elo" -> { return String.valueOf(blue.getProfile().getGameData().getGlobalStats().getElo()); } + } + if (participant != null) { + Participant opponent = participant.getOpponent(); + switch (string) { + case "combo" -> { return participant.getComboMessage(); } + case "opponent_combo" -> { return opponent.getComboMessage(); } + case "hits" -> { return String.valueOf(participant.getHits()); } + case "opponent_hits" -> { return String.valueOf(opponent.getHits()); } + case "longest_combo" -> { return String.valueOf(participant.getLongestCombo()); } + case "opponent_ping" -> { return String.valueOf(opponent.getPlayer().getPing()); } + case "opponent_hit_difference" -> { return opponent.getHitsDifference(participant); } + case "opponent_longest_combo" -> { return String.valueOf(opponent.getLongestCombo()); } + case "opponent_elo" -> { return String.valueOf(opponent.getProfile().getGameData().getGlobalStats().getElo()); } + } + } + if (kit.is(KitRule.BED_WARS)) { + switch (string) { + case "red_bed_broken" -> { return red.getBedMessage(); } + case "blue_bed_broken" -> { return blue.getBedMessage(); } + } + if (participant != null) { + Participant opponent = participant.getOpponent(); + switch (string) { + case "bed_broken" -> { return participant.getBedMessage(); } + case "opponent_bed_broken" -> { return opponent.getBedMessage(); } + } + } + } + } + if (match instanceof TeamFightMatch tfm) { + MatchTeam red = tfm.getRedTeam(); + MatchTeam blue = tfm.getBlueTeam(); + switch (string) { + case "red_players" -> { return red.getTeamNames(); } + case "blue_players" -> { return blue.getTeamNames(); } + case "red_points" -> { return String.valueOf(red.getPoints()); } + case "blue_points" -> { return String.valueOf(blue.getPoints()); } + case "red_alive" -> { return String.valueOf(red.getAliveParticipants()); } + case "red_total" -> { return String.valueOf(red.getParticipants().size()); } + case "blue_alive" -> { return String.valueOf(blue.getAliveParticipants()); } + case "blue_total" -> { return String.valueOf(blue.getParticipants().size()); } + case "red_dead" -> { return String.valueOf(red.getDeadParticipants().size()); } + case "blue_dead" -> { return String.valueOf(blue.getDeadParticipants().size()); } + } + if (participant != null) { + MatchTeam team = tfm.getParticipantTeam(participant); + MatchTeam opponent = team.getOpponentTeam(); + switch (string) { + case "team_players" -> { return team.getTeamNames(); } + case "opponent_players" -> { return opponent.getTeamNames(); } + case "team_points" -> { return String.valueOf(team.getPoints()); } + case "opponent_points" -> { return String.valueOf(opponent.getPoints()); } + case "team_alive" -> { return String.valueOf(team.getAliveParticipants()); } + case "team_total" -> { return String.valueOf(team.getParticipants().size()); } + case "team_dead" -> { return String.valueOf(team.getDeadParticipants().size()); } + case "opponent_alive" -> { return String.valueOf(opponent.getAliveParticipants()); } + case "opponent_total" -> { return String.valueOf(opponent.getParticipants().size()); } + case "opponent_dead" -> { return String.valueOf(opponent.getDeadParticipants().size()); } + } + } + if (kit.is(KitRule.BED_WARS)) { + switch (string) { + case "red_bed_broken" -> { return red.getBedMessage(); } + case "blue_bed_broken" -> { return blue.getBedMessage(); } + } + if (participant != null) { + MatchTeam team = tfm.getParticipantTeam(participant); + MatchTeam opponent = team.getOpponentTeam(); + switch (string) { + case "bed_broken" -> { return team.getBedMessage(); } + case "opponent_bed_broken" -> { return opponent.getBedMessage(); } + } + } + } + } + if (match instanceof FfaFightMatch ffm) { + switch (string) { + case "max" -> { return String.valueOf(ffm.getParticipants().size()); } + case "dead" -> { return String.valueOf(ffm.getDeadParticipants().size()); } + case "is_dead" -> { return ffm.getDeadParticipants().contains(participant) ? "true" : "false"; } + case "alive" -> { return String.valueOf(ffm.getParticipants().size() - ffm.getDeadParticipants().size()); } + } + } + return null; + } +} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/MaxPingPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/MaxPingPlaceholder.java deleted file mode 100644 index 76dc1a98..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/MaxPingPlaceholder.java +++ /dev/null @@ -1,20 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class MaxPingPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("maxPing"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - return String.valueOf(profile.getSettingData().getMaxPing()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/MaxPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/MaxPlaceholder.java deleted file mode 100644 index 1cdfede6..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/MaxPlaceholder.java +++ /dev/null @@ -1,29 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.ffa.FfaFightMatch; -import dev.lrxh.neptune.game.match.impl.team.TeamFightMatch; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class MaxPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("max"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (match == null) return ""; - if (match instanceof TeamFightMatch tfm) { - return String.valueOf(tfm.getParticipantTeam(match.getParticipant(player.getUniqueId())).getParticipants().size()); - } else if (match instanceof FfaFightMatch ffm) { - return String.valueOf(ffm.getParticipants().size()); - } else return ""; - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/MaxPointsPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/MaxPointsPlaceholder.java deleted file mode 100644 index 4e1719fd..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/MaxPointsPlaceholder.java +++ /dev/null @@ -1,24 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.profile.data.ProfileState; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class MaxPointsPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("max-points"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (profile.getState() != ProfileState.IN_GAME || match == null) return ""; - return String.valueOf(match.getRounds()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentAlivePlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentAlivePlaceholder.java deleted file mode 100644 index eed8fbd6..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentAlivePlaceholder.java +++ /dev/null @@ -1,26 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.team.MatchTeam; -import dev.lrxh.neptune.game.match.impl.team.TeamFightMatch; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class OpponentAlivePlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("opponent-alive"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (!(match instanceof TeamFightMatch teamMatch)) return ""; - MatchTeam opponentTeam = teamMatch.getParticipantTeam(teamMatch.getParticipant(player.getUniqueId())).equals(teamMatch.getTeamA()) ? teamMatch.getTeamB() : teamMatch.getTeamA(); - return String.valueOf(opponentTeam.getAliveParticipants()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentBedBrokenPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentBedBrokenPlaceholder.java deleted file mode 100644 index 56d2c889..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentBedBrokenPlaceholder.java +++ /dev/null @@ -1,37 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.kit.impl.KitRule; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.participant.Participant; -import dev.lrxh.neptune.game.match.impl.solo.SoloFightMatch; -import dev.lrxh.neptune.game.match.impl.team.MatchTeam; -import dev.lrxh.neptune.game.match.impl.team.TeamFightMatch; -import dev.lrxh.neptune.profile.data.ProfileState; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class OpponentBedBrokenPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("opponent-bed-broken"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (profile.getState() != ProfileState.IN_GAME || match == null || !match.getKit().is(KitRule.BED_WARS)) - return ""; - Participant playerParticipant = match.getParticipant(player.getUniqueId()); - if (match instanceof SoloFightMatch) { - return playerParticipant.getOpponent().isBedBroken() ? "true" : "false"; - } else if (match instanceof TeamFightMatch teamFightMatch) { - MatchTeam opponentTeam = teamFightMatch.getParticipantTeam(playerParticipant).equals(teamFightMatch.getTeamA()) ? teamFightMatch.getTeamB() : teamFightMatch.getTeamA(); - return opponentTeam.isBedBroken() ? "true" : "false"; - } - return ""; - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentComboPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentComboPlaceholder.java deleted file mode 100644 index 0876ec6b..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentComboPlaceholder.java +++ /dev/null @@ -1,26 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.solo.SoloFightMatch; -import dev.lrxh.neptune.profile.data.ProfileState; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class OpponentComboPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("opponent-combo"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (profile.getState() != ProfileState.IN_GAME || !(match instanceof SoloFightMatch)) - return ""; - return String.valueOf(match.getParticipant(player.getUniqueId()).getOpponent().getCombo()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentHitsPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentHitsPlaceholder.java deleted file mode 100644 index 06baf2f0..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentHitsPlaceholder.java +++ /dev/null @@ -1,26 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.solo.SoloFightMatch; -import dev.lrxh.neptune.profile.data.ProfileState; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class OpponentHitsPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("opponent-hits"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (profile.getState() != ProfileState.IN_GAME || !(match instanceof SoloFightMatch)) - return ""; - return String.valueOf(match.getParticipant(player.getUniqueId()).getOpponent().getHits()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentMaxPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentMaxPlaceholder.java deleted file mode 100644 index ad29e308..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentMaxPlaceholder.java +++ /dev/null @@ -1,26 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.team.MatchTeam; -import dev.lrxh.neptune.game.match.impl.team.TeamFightMatch; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class OpponentMaxPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("opponent-max"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (!(match instanceof TeamFightMatch teamMatch)) return ""; - MatchTeam opponentTeam = teamMatch.getParticipantTeam(teamMatch.getParticipant(player.getUniqueId())).equals(teamMatch.getTeamA()) ? teamMatch.getTeamB() : teamMatch.getTeamA(); - return String.valueOf(opponentTeam.getParticipants().size()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentPingPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentPingPlaceholder.java deleted file mode 100644 index d50b6002..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentPingPlaceholder.java +++ /dev/null @@ -1,29 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.solo.SoloFightMatch; -import dev.lrxh.neptune.profile.data.ProfileState; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; -import org.bukkit.entity.Player; - -public class OpponentPingPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("opponent-ping"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (profile.getState() != ProfileState.IN_GAME || !(match instanceof SoloFightMatch)) - return ""; - Player opponentPlayer = match.getParticipant(player.getUniqueId()).getOpponent().getPlayer(); - if (opponentPlayer == null) return ""; - return String.valueOf(match.getParticipant(player.getUniqueId()).getOpponent().getPlayer().getPing()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentPlaceholder.java deleted file mode 100644 index ccedd480..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentPlaceholder.java +++ /dev/null @@ -1,26 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.solo.SoloFightMatch; -import dev.lrxh.neptune.profile.data.ProfileState; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class OpponentPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("opponent"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (profile.getState() != ProfileState.IN_GAME || !(match instanceof SoloFightMatch)) - return ""; - return match.getParticipant(player.getUniqueId()).getOpponent().getNameUnColored(); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentPointsPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentPointsPlaceholder.java deleted file mode 100644 index 097c93f0..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/OpponentPointsPlaceholder.java +++ /dev/null @@ -1,35 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.participant.Participant; -import dev.lrxh.neptune.game.match.impl.solo.SoloFightMatch; -import dev.lrxh.neptune.game.match.impl.team.MatchTeam; -import dev.lrxh.neptune.game.match.impl.team.TeamFightMatch; -import dev.lrxh.neptune.profile.data.ProfileState; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class OpponentPointsPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("opponent-points"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - Participant playerParticipant = match.getParticipant(player.getUniqueId()); - if (profile.getState() != ProfileState.IN_GAME) return ""; - if (match instanceof SoloFightMatch) { - return String.valueOf(playerParticipant.getOpponent().getPoints()); - } else if (match instanceof TeamFightMatch teamFightMatch) { - MatchTeam opponentTeam = teamFightMatch.getParticipantTeam(playerParticipant).equals(teamFightMatch.getTeamA()) ? teamFightMatch.getTeamB() : teamFightMatch.getTeamA(); - return String.valueOf(opponentTeam.getPoints()); - } - return ""; - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PartyMaxPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PartyMaxPlaceholder.java deleted file mode 100644 index e1eb6ca5..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PartyMaxPlaceholder.java +++ /dev/null @@ -1,20 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.feature.party.Party; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class PartyMaxPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("party-max"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Party party = API.getProfile(player.getUniqueId()).getGameData().getParty(); - if (party == null) return ""; - return String.valueOf(party.getMaxUsers()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/LeaderPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PartyPlaceholders.java similarity index 52% rename from Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/LeaderPlaceholder.java rename to Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PartyPlaceholders.java index 386def06..f50d081e 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/LeaderPlaceholder.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PartyPlaceholders.java @@ -6,18 +6,24 @@ import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; import org.bukkit.OfflinePlayer; -public class LeaderPlaceholder implements PAPIPlaceholder { +public class PartyPlaceholders implements PAPIPlaceholder { @Override public boolean match(String string) { - return string.equals("leader"); + return string.startsWith("party_"); } @Override public String parse(OfflinePlayer player, String string) { + String p = string.split("_")[1]; Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; + if (profile == null) return null; Party party = profile.getGameData().getParty(); - if (party == null) return ""; - return party.getLeaderName(); + if (party == null) return string; + switch (p) { + case "leader" -> { return party.getLeaderName(); } + case "size" -> { return String.valueOf(party.getUsers().size()); } + case "max" -> { return String.valueOf(party.getMaxUsers()); } + } + return null; } } diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PingPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PingPlaceholder.java deleted file mode 100644 index 059e29bc..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PingPlaceholder.java +++ /dev/null @@ -1,17 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import dev.lrxh.neptune.utils.PlayerUtil; -import org.bukkit.OfflinePlayer; - -public class PingPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("ping"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - return String.valueOf(PlayerUtil.getPing(player.getUniqueId())); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerBlueNamePlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerBlueNamePlaceholder.java deleted file mode 100644 index 7760ddf9..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerBlueNamePlaceholder.java +++ /dev/null @@ -1,24 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.solo.SoloFightMatch; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class PlayerBlueNamePlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("player-blue-name"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (!(match instanceof SoloFightMatch soloFightMatch)) return ""; - return soloFightMatch.getParticipantB().getNameUnColored(); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerBluePingPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerBluePingPlaceholder.java deleted file mode 100644 index ed50f821..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerBluePingPlaceholder.java +++ /dev/null @@ -1,24 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.solo.SoloFightMatch; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class PlayerBluePingPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("player-blue-ping"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (!(match instanceof SoloFightMatch soloFightMatch)) return ""; - return String.valueOf(soloFightMatch.getParticipantB().getPlayer().getPing()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerPlaceholders.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerPlaceholders.java new file mode 100644 index 00000000..96b92c63 --- /dev/null +++ b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerPlaceholders.java @@ -0,0 +1,44 @@ +package dev.lrxh.neptune.providers.placeholder.impl; + +import dev.lrxh.neptune.API; +import dev.lrxh.neptune.profile.data.GlobalStats; +import dev.lrxh.neptune.profile.data.SettingData; +import dev.lrxh.neptune.profile.impl.Profile; +import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; +import org.bukkit.OfflinePlayer; + +public class PlayerPlaceholders implements PAPIPlaceholder { + + @Override + public boolean match(String string) { + return true; + } + + @Override + public String parse(OfflinePlayer player, String string) { + Profile profile = API.getProfile(player.getUniqueId()); + if (profile == null) return null; + GlobalStats globalStats = profile.getGameData().getGlobalStats(); + SettingData settings = profile.getSettingData(); + switch (string) { + case "state" -> { return profile.getProfileState(); } + case "kdr" -> { return String.valueOf(globalStats.getKdr()); } + case "elo" -> { return String.valueOf(globalStats.getElo()); } + case "wins" -> { return String.valueOf(globalStats.getWins()); } + case "kills" -> { return String.valueOf(globalStats.getKills()); } + case "deaths" -> { return String.valueOf(globalStats.getDeaths()); } + case "losses" -> { return String.valueOf(globalStats.getLosses()); } + case "division" -> { return globalStats.getDivision().getDisplayName(); } + case "win_loss_ratio" -> { return String.valueOf(globalStats.getWinRatio()); } + case "best_win_streak" -> { return String.valueOf(globalStats.getBestStreak()); } + case "current_win_streak" -> { return String.valueOf(globalStats.getCurrentStreak()); } + case "played" -> { return String.valueOf(globalStats.getWins() + globalStats.getLosses()); } + case "max_ping" -> { return String.valueOf(settings.getMaxPing()); } + case "kill_effect" -> { return settings.getKillEffect().getDisplayName(); } + case "kill_message" -> { return settings.getKillMessagePackage().getDisplayName(); } + case "armor_trim" -> { return settings.getArmorTrimPackage().getDisplayName(); } + case "shield_pattern" -> { return settings.getShieldPatternPackage().getDisplayName(); } + } + return null; + } +} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerRedNamePlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerRedNamePlaceholder.java deleted file mode 100644 index ea0edbdd..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerRedNamePlaceholder.java +++ /dev/null @@ -1,24 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.solo.SoloFightMatch; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class PlayerRedNamePlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("player-red-name"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (!(match instanceof SoloFightMatch soloFightMatch)) return ""; - return soloFightMatch.getParticipantA().getNameUnColored(); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerRedPingPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerRedPingPlaceholder.java deleted file mode 100644 index 60e3bac0..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PlayerRedPingPlaceholder.java +++ /dev/null @@ -1,24 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.solo.SoloFightMatch; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class PlayerRedPingPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("player-red-ping"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (!(match instanceof SoloFightMatch soloFightMatch)) return ""; - return String.valueOf(soloFightMatch.getParticipantA().getPlayer().getPing()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PointsPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PointsPlaceholder.java deleted file mode 100644 index e45e7bca..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/PointsPlaceholder.java +++ /dev/null @@ -1,29 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.solo.SoloFightMatch; -import dev.lrxh.neptune.game.match.impl.team.TeamFightMatch; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class PointsPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("points"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (match == null) return ""; - if (match instanceof SoloFightMatch) - return String.valueOf(match.getParticipant(player.getUniqueId()).getPoints()); - else if (match instanceof TeamFightMatch tfm) { - return String.valueOf(tfm.getParticipantTeam(match.getParticipant(profile.getPlayer())).getPoints()); - } else return ""; - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/QueuedPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/QueuedPlaceholder.java deleted file mode 100644 index 8eca106e..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/QueuedPlaceholder.java +++ /dev/null @@ -1,17 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.feature.queue.QueueService; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class QueuedPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("queued"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - return String.valueOf(QueueService.get().getQueueSize()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/RecentMatchPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/RecentMatchPlaceholder.java index b43135f5..8948adb4 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/RecentMatchPlaceholder.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/RecentMatchPlaceholder.java @@ -18,8 +18,7 @@ public class RecentMatchPlaceholder implements PAPIPlaceholder { @Override public boolean match(String string) { - boolean matches = PATTERN.matcher(string).matches(); - return matches; + return PATTERN.matcher(string).matches(); } @Override diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/RedAlivePlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/RedAlivePlaceholder.java deleted file mode 100644 index a59711ef..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/RedAlivePlaceholder.java +++ /dev/null @@ -1,24 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.team.TeamFightMatch; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class RedAlivePlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("red-alive"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (!(match instanceof TeamFightMatch teamMatch)) return ""; - return String.valueOf(teamMatch.getTeamA().getAliveParticipants()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/RedBedBrokenPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/RedBedBrokenPlaceholder.java deleted file mode 100644 index c75ab5e4..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/RedBedBrokenPlaceholder.java +++ /dev/null @@ -1,31 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.kit.impl.KitRule; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.solo.SoloFightMatch; -import dev.lrxh.neptune.game.match.impl.team.TeamFightMatch; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class RedBedBrokenPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("red-bed-broken"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (match == null || !match.getKit().is(KitRule.BED_WARS)) return ""; - if (match instanceof SoloFightMatch soloFightMatch) { - return soloFightMatch.getParticipantA().isBedBroken() ? "true" : "false"; - } else if (match instanceof TeamFightMatch teamFightMatch) { - return teamFightMatch.getTeamA().isBedBroken() ? "true" : "false"; - } - return ""; - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/RedMaxPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/RedMaxPlaceholder.java deleted file mode 100644 index 59b5dd91..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/RedMaxPlaceholder.java +++ /dev/null @@ -1,24 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.game.match.Match; -import dev.lrxh.neptune.game.match.impl.team.TeamFightMatch; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class RedMaxPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("red-max"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Match match = profile.getMatch(); - if (!(match instanceof TeamFightMatch teamMatch)) return ""; - return String.valueOf(teamMatch.getTeamA().getParticipants().size()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/SizePlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/SizePlaceholder.java deleted file mode 100644 index 0642418d..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/SizePlaceholder.java +++ /dev/null @@ -1,23 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.feature.party.Party; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class SizePlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("size"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - Party party = profile.getGameData().getParty(); - if (party == null) return ""; - return String.valueOf(party.getUsers().size()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/StatePlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/StatePlaceholder.java deleted file mode 100644 index 537e2e5c..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/StatePlaceholder.java +++ /dev/null @@ -1,20 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class StatePlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("state"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - return profile.getProfileState(); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/WinRatePlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/WinRatePlaceholder.java deleted file mode 100644 index 5d5ffe63..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/WinRatePlaceholder.java +++ /dev/null @@ -1,22 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.profile.data.GlobalStats; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class WinRatePlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("winRate"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - GlobalStats globalStats = profile.getGameData().getGlobalStats(); - return String.valueOf(globalStats.getWinRatio()); - } -} diff --git a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/WinsPlaceholder.java b/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/WinsPlaceholder.java deleted file mode 100644 index f47012e7..00000000 --- a/Plugin/src/main/java/dev/lrxh/neptune/providers/placeholder/impl/WinsPlaceholder.java +++ /dev/null @@ -1,22 +0,0 @@ -package dev.lrxh.neptune.providers.placeholder.impl; - -import dev.lrxh.neptune.API; -import dev.lrxh.neptune.profile.data.GlobalStats; -import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.providers.placeholder.PAPIPlaceholder; -import org.bukkit.OfflinePlayer; - -public class WinsPlaceholder implements PAPIPlaceholder { - @Override - public boolean match(String string) { - return string.equals("wins"); - } - - @Override - public String parse(OfflinePlayer player, String string) { - Profile profile = API.getProfile(player.getUniqueId()); - if (profile == null) return string; - GlobalStats globalStats = profile.getGameData().getGlobalStats(); - return String.valueOf(globalStats.getWins()); - } -} diff --git a/docs/placeholders.md b/docs/placeholders.md index 0caba849..4780479b 100644 --- a/docs/placeholders.md +++ b/docs/placeholders.md @@ -4,46 +4,49 @@ # Placeholders +May not be up-to-date. + > [!NOTE] > [PlaceholderAPI](https://placeholderapi.com) is required for placeholders. ## Globally Available -| Plugin | PlaceholderAPI | Description | -| ---------------- | --------------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| \ | None\* | Use server expansion for PAPI | -| \ | %neptune_queued% | Get the number of players in queue | -| \ | %neptune_in-match% | Get the number of players in matches | -| \ | None\* | The name of the player | -| \ | %neptune_ping% | The ping of the player in milliseconds | -| \ | %neptune_wins% | The number of wins a player has accumulated | -| \ | %neptune_losses% | The number of losses a player has accumulated | -| \ | %neptune_kills% | The number of kills a player has accumulated | -| \ | %neptune_deaths% | The number of deaths a player has accumulated | -| \ | %neptune_currentStreak% | The current win streak of the player | -| \ | %neptune_bestStreak% | The best win streak the player has achieved | -| \ | %neptune_division% | The global division name of the player | -| None | %neptune_recent_match_(num)\_(opponent/arena/kit/date/time/unix_timestamp)% | Get details about a recent match. Unix timestamp is in seconds, not ms | -| None | %neptune_state% | Get the current state of the player | +| Plugin | PlaceholderAPI | Description | +|-----------------------|-----------------------------------------------------------------------------|------------------------------------------------------------------------| +| \ | None\* | Use server expansion for PAPI | +| \ | %neptune_queued% | Get the number of players in queue | +| \ | %neptune_in-match% | Get the number of players in matches | +| \ | None\* | The name of the player | +| \ | %neptune_ping% | The ping of the player in milliseconds | +| \ | %neptune_wins% | The number of wins a player has accumulated | +| \ | %neptune_losses% | The number of losses a player has accumulated | +| \ | %neptune_kills% | The number of kills a player has accumulated | +| \ | %neptune_deaths% | The number of deaths a player has accumulated | +| \ | %neptune_current_win_streak% | The current win streak of the player | +| \ | %neptune_best_win_streak% | The best win streak the player has achieved | +| \ | %neptune_division% | The global division name of the player | +| None | %neptune_recent_match_(num)\_(opponent/arena/kit/date/time/unix_timestamp)% | Get details about a recent match. Unix timestamp is in seconds, not ms | +| None | %neptune_state% | Get the current state of the player | ## In Queue -| Plugin | PlaceholderAPI | Description | -| --------------- | -------------------------- | --------------------------------------------------------------------- | -| \ | %neptune_kit% | The display name of the kit the player is playing on | -| \ | %neptune_maxPing% | The maximum ping allowed by the player in their settings | -| \