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(); }