diff --git a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/constant/CoreMessage.java b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/constant/CoreMessage.java index e0819cd..d735c7a 100644 --- a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/constant/CoreMessage.java +++ b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/constant/CoreMessage.java @@ -60,16 +60,6 @@ public enum CoreMessage { } } - public void show(CommandSender sender) { - if (message == null) { - sender.sendMessage(name()); - return; - } - Audience audience = CoreBukkitAPI.getInstance().getAudienceProvider().sender(sender); - message.show(audience); - } - - @SuppressWarnings("unused") public void show(CommandSender sender, TextReplacementConfig... replacement) { if (message == null) { sender.sendMessage(name()); diff --git a/hamster-core-common/src/main/java/cn/hamster3/mc/plugin/core/common/data/DisplayMessage.java b/hamster-core-common/src/main/java/cn/hamster3/mc/plugin/core/common/data/DisplayMessage.java index dab6a3a..4d98cf8 100644 --- a/hamster-core-common/src/main/java/cn/hamster3/mc/plugin/core/common/data/DisplayMessage.java +++ b/hamster-core-common/src/main/java/cn/hamster3/mc/plugin/core/common/data/DisplayMessage.java @@ -46,29 +46,39 @@ public class DisplayMessage { return displayMessage; } - public void show(@NotNull Audience audience) { - if (message != null) { - audience.sendMessage(message); + public void show(@NotNull Audience audience, @NotNull TextReplacementConfig... replacements) { + Component replacedMessage = message; + Component replacedActionbar = actionbar; + Title replacedTitle = title; + for (TextReplacementConfig replacement : replacements) { + if (replacedMessage != null) { + replacedMessage = replacedMessage.replaceText(replacement); + } + if (replacedActionbar != null) { + replacedActionbar = replacedActionbar.replaceText(replacement); + } + if (replacedTitle != null) { + replacedTitle = Title.title( + replacedTitle.title().replaceText(replacement).compact(), + replacedTitle.subtitle().replaceText(replacement).compact(), + replacedTitle.times() + ); + } } - if (actionbar != null) { - audience.sendActionBar(actionbar); + if (replacedMessage != null) { + audience.sendMessage(replacedMessage); } - if (title != null) { - audience.showTitle(title); + if (replacedActionbar != null) { + audience.sendActionBar(replacedActionbar); + } + if (replacedTitle != null) { + audience.showTitle(replacedTitle); } if (sound != null) { audience.playSound(sound); } } - public void show(@NotNull Audience audience, @NotNull TextReplacementConfig replacement) { - copy().replace(replacement).show(audience); - } - - public void show(@NotNull Audience audience, @NotNull TextReplacementConfig... replacements) { - copy().replace(replacements).show(audience); - } - @NotNull public DisplayMessage setMessage(@NotNull String message) { this.message = Component.text(message);