From 7624b3a064252a33d3c82ab94ac3577f25b4edc9 Mon Sep 17 00:00:00 2001 From: "BT (calcastor/mame)" <43831917+calcastor@users.noreply.github.com> Date: Mon, 2 Dec 2024 22:41:30 -0800 Subject: [PATCH] Switch to Spotless, general cleanup, and adapt to upstream PGM changes (#34) * Switch to Spotless and cleanup pom.xml Signed-off-by: BT (calcastor/mame) <43831917+calcastor@users.noreply.github.com> * Further cleanup Signed-off-by: BT (calcastor/mame) <43831917+calcastor@users.noreply.github.com> --------- Signed-off-by: BT (calcastor/mame) <43831917+calcastor@users.noreply.github.com> --- .github/workflows/ci.yml | 2 + pom.xml | 90 +++++++++++++++++-- .../format/rounds/veto/VetoController.java | 2 +- .../format/rounds/veto/VetoHistory.java | 2 +- .../format/shutdown/ShutdownCountdown.java | 9 +- .../dev/pgm/events/ready/ReadyManager.java | 2 +- .../pgm/events/ready/ReadyManagerImpl.java | 16 ++-- .../dev/pgm/events/ready/ReadySystem.java | 2 +- .../pgm/events/team/DefaultTeamManager.java | 25 +++--- .../java/dev/pgm/events/utils/Response.java | 2 +- .../java/dev/pgm/events/xml/RoundParser.java | 30 +++---- 11 files changed, 123 insertions(+), 59 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0edb667..fdf04bf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,6 +10,8 @@ jobs: steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 - uses: actions/setup-java@v4 with: java-version: 21 diff --git a/pom.xml b/pom.xml index 3c0baac..c2d3f50 100644 --- a/pom.xml +++ b/pom.xml @@ -7,6 +7,12 @@ 1.0.0-SNAPSHOT Events + + 21 + 21 + UTF-8 + + ashcon-repo @@ -35,6 +41,12 @@ jdom2 2.0.6.1 + + org.jetbrains + annotations + 22.0.0 + provided + @@ -44,18 +56,31 @@ maven-compiler-plugin 3.13.0 - 21 - 21 + + + org.incendo + cloud-annotations + 2.0.0-rc.2 + + - com.coveo - fmt-maven-plugin - 2.9 + com.diffplug.spotless + spotless-maven-plugin + 2.43.0 - + origin/master + + + + 2.47.0 + + true + + @@ -66,6 +91,59 @@ + + org.apache.maven.plugins + maven-enforcer-plugin + 3.2.1 + + + de.skuzzle.enforcer + restrict-imports-enforcer-rule + 2.1.0 + + + + + + enforce-jdk + + enforce + + + + + + [${maven.compiler.target},) + + + + + + + enforce-imports + process-sources + + enforce + + + + + Use org.jetbrains.annotations to add annotations + javax.annotation.** + + + Use tc.oc.pgm.util.Assert to add assertions + + com.google.common.base.Preconditions.** + java.util.Objects.requireNonNull + + + + + + + + org.apache.maven.plugins maven-shade-plugin diff --git a/src/main/java/dev/pgm/events/format/rounds/veto/VetoController.java b/src/main/java/dev/pgm/events/format/rounds/veto/VetoController.java index 81bb2a9..514c4c4 100644 --- a/src/main/java/dev/pgm/events/format/rounds/veto/VetoController.java +++ b/src/main/java/dev/pgm/events/format/rounds/veto/VetoController.java @@ -12,7 +12,7 @@ import java.util.List; import java.util.Optional; import java.util.Random; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; public class VetoController { diff --git a/src/main/java/dev/pgm/events/format/rounds/veto/VetoHistory.java b/src/main/java/dev/pgm/events/format/rounds/veto/VetoHistory.java index 83845dc..c6489fc 100644 --- a/src/main/java/dev/pgm/events/format/rounds/veto/VetoHistory.java +++ b/src/main/java/dev/pgm/events/format/rounds/veto/VetoHistory.java @@ -3,7 +3,7 @@ import dev.pgm.events.format.rounds.veto.settings.VetoOption; import dev.pgm.events.format.rounds.veto.settings.VetoSettings; import dev.pgm.events.team.TournamentTeam; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; public class VetoHistory { diff --git a/src/main/java/dev/pgm/events/format/shutdown/ShutdownCountdown.java b/src/main/java/dev/pgm/events/format/shutdown/ShutdownCountdown.java index cea4b0d..17108f1 100644 --- a/src/main/java/dev/pgm/events/format/shutdown/ShutdownCountdown.java +++ b/src/main/java/dev/pgm/events/format/shutdown/ShutdownCountdown.java @@ -1,22 +1,17 @@ package dev.pgm.events.format.shutdown; -import static net.kyori.adventure.key.Key.key; import static net.kyori.adventure.text.Component.text; import dev.pgm.events.utils.TimeFormatter; import java.time.Duration; -import net.kyori.adventure.sound.Sound; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import tc.oc.pgm.api.match.Match; import tc.oc.pgm.countdowns.MatchCountdown; +import tc.oc.pgm.util.bukkit.Sounds; public class ShutdownCountdown extends MatchCountdown { - - protected static final Sound COUNT_SOUND = - Sound.sound(key("note.pling"), Sound.Source.MASTER, 1f, 1.19f); - public ShutdownCountdown(Match match) { super(match); } @@ -25,7 +20,7 @@ public ShutdownCountdown(Match match) { public void onTick(Duration remaining, Duration total) { super.onTick(remaining, total); if (remaining.getSeconds() >= 1 && remaining.getSeconds() <= 3) - getMatch().playSound(COUNT_SOUND); + getMatch().playSound(Sounds.MATCH_COUNTDOWN); } @Override diff --git a/src/main/java/dev/pgm/events/ready/ReadyManager.java b/src/main/java/dev/pgm/events/ready/ReadyManager.java index 17a14de..35c4f89 100644 --- a/src/main/java/dev/pgm/events/ready/ReadyManager.java +++ b/src/main/java/dev/pgm/events/ready/ReadyManager.java @@ -1,7 +1,7 @@ package dev.pgm.events.ready; import dev.pgm.events.utils.Response; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; import tc.oc.pgm.api.match.Match; import tc.oc.pgm.api.party.Party; import tc.oc.pgm.api.player.MatchPlayer; diff --git a/src/main/java/dev/pgm/events/ready/ReadyManagerImpl.java b/src/main/java/dev/pgm/events/ready/ReadyManagerImpl.java index 8afe817..10972b7 100644 --- a/src/main/java/dev/pgm/events/ready/ReadyManagerImpl.java +++ b/src/main/java/dev/pgm/events/ready/ReadyManagerImpl.java @@ -6,9 +6,9 @@ import dev.pgm.events.utils.JoinUtils; import dev.pgm.events.utils.Response; import java.time.Duration; -import javax.annotation.Nullable; import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.format.NamedTextColor; +import org.jetbrains.annotations.Nullable; import tc.oc.pgm.api.match.Match; import tc.oc.pgm.api.match.MatchPhase; import tc.oc.pgm.api.party.Party; @@ -41,10 +41,9 @@ public void createMatchStart(Match match, Duration duration) { public void ready(Party party, @Nullable MatchPlayer player) { Match match = party.getMatch(); - TextComponent.Builder message = - text() - .append(party.getName()) - .append(text(" marked as ").append(text("ready", NamedTextColor.GREEN))); + TextComponent.Builder message = text() + .append(party.getName()) + .append(text(" marked as ").append(text("ready", NamedTextColor.GREEN))); if (player != null) message.append(text(" by ").append(player.getName(NameStyle.COLOR))); match.sendMessage(message); @@ -59,10 +58,9 @@ public void ready(Party party, @Nullable MatchPlayer player) { public void unready(Party party, @Nullable MatchPlayer player) { Match match = party.getMatch(); - TextComponent.Builder message = - text() - .append(party.getName()) - .append(text(" marked as ").append(text("unready", NamedTextColor.RED))); + TextComponent.Builder message = text() + .append(party.getName()) + .append(text(" marked as ").append(text("unready", NamedTextColor.RED))); if (player != null) message.append(text(" by ").append(player.getName(NameStyle.COLOR))); match.sendMessage(message); diff --git a/src/main/java/dev/pgm/events/ready/ReadySystem.java b/src/main/java/dev/pgm/events/ready/ReadySystem.java index 63ee219..f3bc4ba 100644 --- a/src/main/java/dev/pgm/events/ready/ReadySystem.java +++ b/src/main/java/dev/pgm/events/ready/ReadySystem.java @@ -3,7 +3,7 @@ import java.sql.Timestamp; import java.time.Duration; import java.time.Instant; -import javax.annotation.Nullable; +import org.jetbrains.annotations.Nullable; public class ReadySystem { diff --git a/src/main/java/dev/pgm/events/team/DefaultTeamManager.java b/src/main/java/dev/pgm/events/team/DefaultTeamManager.java index 136e77d..781bf36 100644 --- a/src/main/java/dev/pgm/events/team/DefaultTeamManager.java +++ b/src/main/java/dev/pgm/events/team/DefaultTeamManager.java @@ -8,8 +8,8 @@ import java.util.Map; import java.util.Optional; import java.util.UUID; -import javax.annotation.Nullable; import org.bukkit.ChatColor; +import org.jetbrains.annotations.Nullable; import tc.oc.pgm.api.party.Competitor; import tc.oc.pgm.api.party.Party; import tc.oc.pgm.api.player.MatchPlayer; @@ -120,10 +120,8 @@ private TeamSetup getTeamSetup() { public void syncTeams() { List unassigned = new ArrayList<>(); - teams.forEach( - eventsTeam -> - fromTournamentTeam(eventsTeam) - .ifPresent(pgmTeam -> syncTeam(eventsTeam, pgmTeam, unassigned))); + teams.forEach(eventsTeam -> fromTournamentTeam(eventsTeam) + .ifPresent(pgmTeam -> syncTeam(eventsTeam, pgmTeam, unassigned))); syncObserverPlayers(unassigned); } @@ -141,15 +139,14 @@ private void syncTeam(TournamentTeam eventsTeam, Team pgmTeam, List } // Move other players to the team (from obs or other teams) - toAssign.forEach( - tournamentPlayer -> { - MatchPlayer player = pgmTeam.getMatch().getPlayer(tournamentPlayer.getUUID()); - if (player != null && JoinUtils.canJoin(player.getId(), pgmTeam).isAllowed()) { - if (syncPlayer(player, pgmTeam, joinRequest)) { - unassigned.remove(player); - } - } - }); + toAssign.forEach(tournamentPlayer -> { + MatchPlayer player = pgmTeam.getMatch().getPlayer(tournamentPlayer.getUUID()); + if (player != null && JoinUtils.canJoin(player.getId(), pgmTeam).isAllowed()) { + if (syncPlayer(player, pgmTeam, joinRequest)) { + unassigned.remove(player); + } + } + }); } private void syncObserverPlayers(List unassigned) { diff --git a/src/main/java/dev/pgm/events/utils/Response.java b/src/main/java/dev/pgm/events/utils/Response.java index 9e2901f..e268912 100644 --- a/src/main/java/dev/pgm/events/utils/Response.java +++ b/src/main/java/dev/pgm/events/utils/Response.java @@ -2,8 +2,8 @@ import static net.kyori.adventure.text.Component.text; -import javax.annotation.Nullable; import net.kyori.adventure.text.Component; +import org.jetbrains.annotations.Nullable; public class Response { diff --git a/src/main/java/dev/pgm/events/xml/RoundParser.java b/src/main/java/dev/pgm/events/xml/RoundParser.java index 00f83ec..be73fe2 100644 --- a/src/main/java/dev/pgm/events/xml/RoundParser.java +++ b/src/main/java/dev/pgm/events/xml/RoundParser.java @@ -23,20 +23,15 @@ public class RoundParser { public static TournamentRound parse(TournamentFormat format, Element round) { - switch (round.getName().toLowerCase()) { - case "match": - return SingleParser.parse(format, round); - case "veto": - return VetoParser.parse(format, round); - case "result-from": - return ResultFromParser.parse(format, round); - case "format": - return FormatParser.parse(format, round); - case "veto-selector": - return new VetoSelectorRound(format, new VetoSelectorSettings()); - } - - throw new IllegalArgumentException("Round " + round.getName() + " is not supported!"); + return switch (round.getName().toLowerCase()) { + case "match" -> SingleParser.parse(format, round); + case "veto" -> VetoParser.parse(format, round); + case "result-from" -> ResultFromParser.parse(format, round); + case "format" -> FormatParser.parse(format, round); + case "veto-selector" -> new VetoSelectorRound(format, new VetoSelectorSettings()); + default -> throw new IllegalArgumentException( + "Round " + round.getName() + " is not supported!"); + }; } public static class SingleParser { @@ -118,10 +113,9 @@ private static VetoSettings.Veto parseVeto(Element element) { if (insert.equalsIgnoreCase("back")) type = VetoSettings.VetoType.CHOOSE_LAST; else if (insert.equalsIgnoreCase("front")) type = VetoSettings.VetoType.CHOOSE_FIRST; else - throw new IllegalArgumentException( - "Invalid insert position " - + insert - + ". Valid positions are back (default) or front."); + throw new IllegalArgumentException("Invalid insert position " + + insert + + ". Valid positions are back (default) or front."); } if (type == null)