From c08f781aa11ac044506afada90bc6acb4de8cd04 Mon Sep 17 00:00:00 2001 From: Stabar-ti Date: Sun, 26 Jul 2026 00:25:27 +0200 Subject: [PATCH 1/5] API and refactor --- .gitignore | 1 + .../AncientTradeRoutesAcd2ButtonHandler.java | 13 +- .../acd2/ArbitrationAcd2ButtonHandler.java | 28 +- .../acd2/ArmsDealAcd2ButtonHandler.java | 12 +- .../acd2/BetrayalAcd2ButtonHandler.java | 15 +- .../BlackMarketIntelAcd2ButtonHandler.java | 3 +- .../acd2/BountyAcd2ButtonHandler.java | 6 +- .../acd2/DefectorsAcd2ButtonHandler.java | 8 +- .../acd2/EspionageAcd2ButtonHandler.java | 16 +- .../acd2/FalseFlagAcd2ButtonHandler.java | 8 +- .../acd2/HeistAcd2ButtonHandler.java | 6 +- .../acd2/IxthianGiftAcd2ButtonHandler.java | 9 +- .../acd2/JointResearchAcd2ButtonHandler.java | 9 +- .../acd2/PrisonersOfWarAcd2ButtonHandler.java | 10 +- .../acd2/RefugeesAcd2ButtonHandler.java | 12 +- .../acd2/SyndicateAcd2ButtonHandler.java | 5 +- .../java/ti4/helpers/ActionCardHelper.java | 38 +- src/main/java/ti4/helpers/AgendaHelper.java | 7 + .../ti4/helpers/ButtonHelperAbilities.java | 24 +- .../ti4/helpers/ButtonHelperActionCards.java | 365 ++++++------------ .../java/ti4/helpers/ButtonHelperAgents.java | 38 +- .../helpers/ButtonHelperFactionSpecific.java | 122 ++---- .../java/ti4/helpers/ButtonHelperHeroes.java | 28 +- .../ButtonHelperTwilightsFallActionCards.java | 10 +- src/main/java/ti4/helpers/FoWHelper.java | 177 +++++++++ .../thundersedge/TeHelperActionCards.java | 15 +- .../helpers/thundersedge/TeHelperAgents.java | 3 +- .../thundersedge/TeHelperCommanders.java | 2 +- .../service/actioncard/SabotageService.java | 3 +- .../ti4/service/explore/ExploreService.java | 71 ++-- src/test/java/ti4/helpers/FoWHelperTest.java | 165 ++++++++ 31 files changed, 608 insertions(+), 621 deletions(-) create mode 100644 src/test/java/ti4/helpers/FoWHelperTest.java diff --git a/.gitignore b/.gitignore index a740fac065..4d32da6d64 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,4 @@ scripts/**/__pycache__/ /ti4-backup/ /ti4-bkup-cleaned/ /.claude/settings.local.json +/.claude/workfiles/ diff --git a/src/main/java/ti4/discord/interactions/buttons/handlers/actioncards/acd2/AncientTradeRoutesAcd2ButtonHandler.java b/src/main/java/ti4/discord/interactions/buttons/handlers/actioncards/acd2/AncientTradeRoutesAcd2ButtonHandler.java index 0451299685..5d568520f4 100644 --- a/src/main/java/ti4/discord/interactions/buttons/handlers/actioncards/acd2/AncientTradeRoutesAcd2ButtonHandler.java +++ b/src/main/java/ti4/discord/interactions/buttons/handlers/actioncards/acd2/AncientTradeRoutesAcd2ButtonHandler.java @@ -4,7 +4,6 @@ import java.util.List; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.components.buttons.Button; -import net.dv8tion.jda.api.entities.emoji.Emoji; import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent; import org.apache.commons.lang3.function.Consumers; import ti4.discord.interactions.buttons.Buttons; @@ -12,6 +11,7 @@ import ti4.game.Game; import ti4.game.Player; import ti4.helpers.ButtonHelperAgents; +import ti4.helpers.FoWHelper; import ti4.logging.BotLogger; import ti4.message.MessageHelper; @@ -29,16 +29,7 @@ public static void resolveAncientTradeRoutes(Player player, Game game, ButtonInt if (p2 == player) { continue; } - if (game.isFowMode()) { - buttons.add(Buttons.gray("ancientTradeRoutesStep2_" + p2.getFaction(), p2.getColor())); - } else { - Button button = Buttons.gray( - "ancientTradeRoutesStep2_" + p2.getFaction(), - p2.getFactionModel().getShortName()); - String factionEmojiString = p2.getFactionEmoji(); - button = button.withEmoji(Emoji.fromFormatted(factionEmojiString)); - buttons.add(button); - } + buttons.add(FoWHelper.fogSafeTargetButton("ancientTradeRoutesStep2_" + p2.getFaction(), "gray", p2)); } buttons.add(Buttons.red("deleteButtons", "Don't Give Commodities")); event.getMessage().delete().queue(Consumers.nop(), BotLogger::catchRestError); diff --git a/src/main/java/ti4/discord/interactions/buttons/handlers/actioncards/acd2/ArbitrationAcd2ButtonHandler.java b/src/main/java/ti4/discord/interactions/buttons/handlers/actioncards/acd2/ArbitrationAcd2ButtonHandler.java index 35afa56dcd..8b8ebb099a 100644 --- a/src/main/java/ti4/discord/interactions/buttons/handlers/actioncards/acd2/ArbitrationAcd2ButtonHandler.java +++ b/src/main/java/ti4/discord/interactions/buttons/handlers/actioncards/acd2/ArbitrationAcd2ButtonHandler.java @@ -6,7 +6,6 @@ import java.util.Objects; import lombok.experimental.UtilityClass; import net.dv8tion.jda.api.components.buttons.Button; -import net.dv8tion.jda.api.entities.emoji.Emoji; import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent; import ti4.discord.interactions.buttons.Buttons; import ti4.discord.interactions.routing.ButtonHandler; @@ -16,6 +15,7 @@ import ti4.game.Tile; import ti4.helpers.ButtonHelper; import ti4.helpers.ButtonHelperAbilities; +import ti4.helpers.FoWHelper; import ti4.helpers.Helper; import ti4.message.MessageHelper; import ti4.service.unit.AddUnitService; @@ -129,15 +129,8 @@ private static List