From 0d2716298f977c92f1458e958e509c630c3244ad Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Sat, 29 Oct 2022 06:47:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=20DisplayMessage=20?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/common/data/DisplayMessage.java | 73 ++++++++++--------- 1 file changed, 40 insertions(+), 33 deletions(-) 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 5e33e11..089dd4d 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 @@ -80,55 +80,54 @@ public class DisplayMessage { } public void show(@NotNull Audience audience, @NotNull TextReplacementConfig replacement) { - if (message != null) { - audience.sendMessage(message.replaceText(replacement).compact()); - } - if (actionbar != null) { - audience.sendActionBar(actionbar.replaceText(replacement).compact()); - } - if (title != null) { - audience.showTitle(Title.title( - title.title().replaceText(replacement).compact(), - title.subtitle().replaceText(replacement).compact(), - title.times() - )); - } - if (sound != null) { - audience.playSound(sound); - } + copy().replace(replacement).show(audience); } public void show(@NotNull Audience audience, @NotNull TextReplacementConfig... replacements) { + copy().replace(replacements).show(audience); + } + + public DisplayMessage replace(@NotNull TextReplacementConfig replacement) { if (message != null) { - Component replacedMessage = message; - for (TextReplacementConfig replacement : replacements) { - replacedMessage = replacedMessage.replaceText(replacement); - } - audience.sendMessage(replacedMessage.compact()); + message = message.replaceText(replacement).compact(); } if (actionbar != null) { - Component replacedActionBar = actionbar; - for (TextReplacementConfig replacement : replacements) { - replacedActionBar = replacedActionBar.replaceText(replacement); - } - audience.sendActionBar(replacedActionBar.compact()); + actionbar = actionbar.replaceText(replacement).compact(); } if (title != null) { - Title replacedTitle = title; + title = Title.title( + title.title().replaceText(replacement).compact(), + title.subtitle().replaceText(replacement).compact(), + title.times() + ); + } + return this; + } + + public DisplayMessage replace(@NotNull TextReplacementConfig... replacements) { + if (message != null) { for (TextReplacementConfig replacement : replacements) { - replacedTitle = Title.title( + message = message.replaceText(replacement).compact(); + } + } + if (actionbar != null) { + for (TextReplacementConfig replacement : replacements) { + actionbar = actionbar.replaceText(replacement).compact(); + } + } + if (title != null) { + for (TextReplacementConfig replacement : replacements) { + title = Title.title( title.title().replaceText(replacement).compact(), title.subtitle().replaceText(replacement).compact(), title.times() ); } - audience.showTitle(replacedTitle); - } - if (sound != null) { - audience.playSound(sound); } + return this; } + @NotNull public JsonObject saveToJson() { JsonObject object = new JsonObject(); if (message != null) { @@ -258,7 +257,6 @@ public class DisplayMessage { } @NotNull - @SuppressWarnings("UnusedReturnValue") public DisplayMessage fromJson(@NotNull JsonElement element) { if (!element.isJsonObject()) { message = Component.text(element.toString()); @@ -280,6 +278,15 @@ public class DisplayMessage { return this; } + @NotNull + public DisplayMessage copy() { + return new DisplayMessage() + .setMessage(message) + .setActionBar(actionbar) + .setTitle(title) + .setSound(sound); + } + @Override public String toString() { return CoreConstantObjects.GSON.toJson(this);