diff --git a/src/main/java/net/tfminecraft/simplefactions/managers/inventory/CampaignView.java b/src/main/java/net/tfminecraft/simplefactions/managers/inventory/CampaignView.java index 5346df8e..1c1a8f6a 100644 --- a/src/main/java/net/tfminecraft/simplefactions/managers/inventory/CampaignView.java +++ b/src/main/java/net/tfminecraft/simplefactions/managers/inventory/CampaignView.java @@ -32,6 +32,7 @@ import net.tfminecraft.simplefactions.war.campaign.progression.BelligerentRole; import net.tfminecraft.simplefactions.war.campaign.ui.CampaignRouteEntry; import net.tfminecraft.simplefactions.war.campaign.ui.CampaignRouteRenderer; +import net.tfminecraft.simplefactions.war.campaign.ui.CampaignUiTimeFormatter; import net.tfminecraft.simplefactions.war.campaign.progression.CampaignChoiceService; import net.tfminecraft.simplefactions.war.campaign.progression.CampaignCapabilityService; import net.tfminecraft.simplefactions.war.campaign.progression.postbattle.CampaignPostBattleChoiceService; @@ -52,6 +53,7 @@ import net.tfminecraft.simplefactions.war.campaign.runtime.BattleWindowService; import net.tfminecraft.simplefactions.war.campaign.runtime.CampaignClock; import net.tfminecraft.simplefactions.enums.SFGUI; +import net.tfminecraft.tlibs.objects.api.subapi.StringFormatter; public class CampaignView { private static final int ROUTE_SLOT_COUNT = 9; @@ -494,8 +496,11 @@ private void handleHourToggleClick(Player player, War war, int hour) { BattleVoteToggleResult result = BattleVoteService.toggleVote( war, player.getUniqueId(), hour, faction, player.isOnline()); switch (result) { - case ADDED -> player.sendMessage("§aAdded " + hour + ":00 UTC to your availability."); - case REMOVED -> player.sendMessage("§aRemoved " + hour + ":00 UTC from your availability."); + // Battle hours are schedule (Europe/Paris) hours; label them the way the vote items do (the label can carry hex). + case ADDED -> player.sendMessage(StringFormatter.formatHex("§aAdded " + + CampaignUiTimeFormatter.formatUtcHour(war.getBattleDay(), hour) + "§a to your availability.")); + case REMOVED -> player.sendMessage(StringFormatter.formatHex("§aRemoved " + + CampaignUiTimeFormatter.formatUtcHour(war.getBattleDay(), hour) + "§a from your availability.")); case REJECTED_INVALID_HOUR -> player.sendMessage("§cThat hour is not in the battle window."); case REJECTED_NOT_PARTICIPANT -> player.sendMessage("§cYou are not eligible to vote in this war."); case REJECTED_OFFLINE -> player.sendMessage("§cYou must be online to vote."); diff --git a/src/test/java/net/tfminecraft/simplefactions/managers/inventory/CampaignMenusCoverageTest.java b/src/test/java/net/tfminecraft/simplefactions/managers/inventory/CampaignMenusCoverageTest.java index ff0ce00e..936bb28c 100644 --- a/src/test/java/net/tfminecraft/simplefactions/managers/inventory/CampaignMenusCoverageTest.java +++ b/src/test/java/net/tfminecraft/simplefactions/managers/inventory/CampaignMenusCoverageTest.java @@ -49,6 +49,7 @@ import net.tfminecraft.simplefactions.war.campaign.schedule.ScheduledCampaignBattle; import net.tfminecraft.simplefactions.war.campaign.ui.CampaignRouteEntry; import net.tfminecraft.simplefactions.war.campaign.ui.CampaignRouteRenderer; +import net.tfminecraft.simplefactions.war.campaign.ui.CampaignUiTimeFormatter; import net.tfminecraft.simplefactions.war.campaign.ui.CampaignViewRefreshService; import net.tfminecraft.simplefactions.war.campaign.vote.BattleVoteService; import net.tfminecraft.simplefactions.war.campaign.vote.VoteResults.BattleHourTally; @@ -63,6 +64,7 @@ import net.tfminecraft.tlibs.TLibs; import net.tfminecraft.tlibs.objects.api.ItemAPI; import net.tfminecraft.tlibs.objects.api.subapi.ItemCreator; +import net.tfminecraft.tlibs.objects.api.subapi.StringFormatter; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.NamespacedKey; @@ -588,11 +590,13 @@ void realHourTogglesAddRemovePersistAndRefreshAvailability() { view.campaignView(player, war, true); click(28); assertEquals(Set.of(20), war.getBattleVotes().get(player.getUniqueId())); - verify(player).sendMessage("§aAdded 20:00 UTC to your availability."); + String label = CampaignUiTimeFormatter.formatUtcHour(war.getBattleDay(), 20); + assertTrue(label.startsWith("20:00 CET")); + verify(player).sendMessage(StringFormatter.formatHex("§aAdded " + label + "§a to your availability.")); assertLore(top().getItem(28), "Click to remove"); click(28); assertFalse(war.getBattleVotes().containsKey(player.getUniqueId())); - verify(player).sendMessage("§aRemoved 20:00 UTC from your availability."); + verify(player).sendMessage(StringFormatter.formatHex("§aRemoved " + label + "§a from your availability.")); wars.verify(() -> WarManager.persist(war), times(2)); }