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..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
@@ -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,17 @@ 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);
+
this.noticeService.create()
.player(player.getUniqueId())
.notice(this.config.messagesSettings.combatNotification)
.placeholder("{TIME}", DurationUtil.format(remaining, this.config.messagesSettings.withoutMillis))
+ .placeholder("{OPPONENT}", opponent)
.send();
}