From 9f77a2931a59be389a1dfc77098610c6510f3470 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Wojtas?= Date: Fri, 10 Apr 2026 19:28:13 +0200 Subject: [PATCH 1/2] Add opponent placeholder in combat notification MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Wojtas --- eternalcombat-plugin/build.gradle.kts | 2 +- .../combat/config/implementation/MessagesSettings.java | 9 ++++++++- .../java/com/eternalcode/combat/fight/FightTask.java | 9 ++++++++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/eternalcombat-plugin/build.gradle.kts b/eternalcombat-plugin/build.gradle.kts index 6edfab7f..3cbf3602 100644 --- a/eternalcombat-plugin/build.gradle.kts +++ b/eternalcombat-plugin/build.gradle.kts @@ -96,7 +96,7 @@ bukkit { tasks { runServer { - minecraftVersion("1.21.10") + minecraftVersion("1.21.11") downloadPlugins.modrinth("WorldEdit", Versions.WORLDEDIT) downloadPlugins.modrinth("PacketEvents", "${Versions.PACKETEVENTS}+spigot") downloadPlugins.modrinth("WorldGuard", Versions.WORLDGUARD) diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/config/implementation/MessagesSettings.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/config/implementation/MessagesSettings.java index d5f69e21..b1d2b586 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/config/implementation/MessagesSettings.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/config/implementation/MessagesSettings.java @@ -17,10 +17,11 @@ public class MessagesSettings extends OkaeriConfig { " ", "# Configure the combat log notification displayed to players.", "# You can use the {TIME} variable to display the remaining combat time.", + "# Placeholder {OPPONENT} will be replaced with player name or 'unknownPlayerPlaceholder' variable", " ", }) public Notice combatNotification = BukkitNotice.builder() - .actionBar("Combat ends in: {TIME}") + .actionBar("Combat ends in: {TIME} | Enemy: {OPPONENT} ⚔") .build(); @Comment({ @@ -28,6 +29,12 @@ public class MessagesSettings extends OkaeriConfig { }) public boolean withoutMillis = true; + @Comment({ + " ", + "# When player is not known this text will be used as {OPPONENT} in 'combatNotification'" + }) + public String unknownPlayerPlaceholder = "Unknown"; + @Comment({ "# Message displayed when a player lacks permission to execute a command.", "# The {PERMISSION} placeholder is replaced with the required permission." diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/FightTask.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/FightTask.java index 76435166..a8141a1a 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/FightTask.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/FightTask.java @@ -4,6 +4,7 @@ import com.eternalcode.combat.fight.event.CauseOfUnTag; import com.eternalcode.combat.notification.NoticeService; import com.eternalcode.combat.util.DurationUtil; +import java.util.Optional; import org.bukkit.Server; import org.bukkit.entity.Player; @@ -17,7 +18,7 @@ public class FightTask implements Runnable { private final FightManager fightManager; private final NoticeService noticeService; - public FightTask(Server server, PluginConfig config, FightManager fightManager, NoticeService noticeService) { + public FightTask(Server server, PluginConfig config, FightManager fightManager, NoticeService noticeService) { this.server = server; this.config = config; this.fightManager = fightManager; @@ -42,10 +43,16 @@ public void run() { Duration remaining = fightTag.getRemainingDuration(); + String opponent = Optional.ofNullable(fightTag.getTagger()) + .map(this.server::getPlayer) + .map(Player::getName) + .orElse(this.config.messagesSettings.unknownPlayerPlaceholder); + this.noticeService.create() .player(player.getUniqueId()) .notice(this.config.messagesSettings.combatNotification) .placeholder("{TIME}", DurationUtil.format(remaining, this.config.messagesSettings.withoutMillis)) + .placeholder("{OPPONENT}", opponent) .send(); } From 2bbe28f52f6e63d583254f2363e175253f380740 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Wojtas?= <80779749+CitralFlo@users.noreply.github.com> Date: Tue, 14 Apr 2026 15:40:32 +0200 Subject: [PATCH 2/2] Update eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/FightTask.java Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- .../src/main/java/com/eternalcode/combat/fight/FightTask.java | 1 + 1 file changed, 1 insertion(+) diff --git a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/FightTask.java b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/FightTask.java index a8141a1a..9f78f18b 100644 --- a/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/FightTask.java +++ b/eternalcombat-plugin/src/main/java/com/eternalcode/combat/fight/FightTask.java @@ -44,6 +44,7 @@ public void run() { Duration remaining = fightTag.getRemainingDuration(); String opponent = Optional.ofNullable(fightTag.getTagger()) + .filter(uuid -> !uuid.equals(playerUniqueId)) .map(this.server::getPlayer) .map(Player::getName) .orElse(this.config.messagesSettings.unknownPlayerPlaceholder);