feat: 完善 DisplayMessage 功能

This commit is contained in:
2022-10-29 06:47:54 +08:00
parent 2f891e71a9
commit 0d2716298f

View File

@@ -80,55 +80,54 @@ public class DisplayMessage {
} }
public void show(@NotNull Audience audience, @NotNull TextReplacementConfig replacement) { public void show(@NotNull Audience audience, @NotNull TextReplacementConfig replacement) {
if (message != null) { copy().replace(replacement).show(audience);
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);
}
} }
public void show(@NotNull Audience audience, @NotNull TextReplacementConfig... replacements) { public void show(@NotNull Audience audience, @NotNull TextReplacementConfig... replacements) {
copy().replace(replacements).show(audience);
}
public DisplayMessage replace(@NotNull TextReplacementConfig replacement) {
if (message != null) { if (message != null) {
Component replacedMessage = message; message = message.replaceText(replacement).compact();
for (TextReplacementConfig replacement : replacements) {
replacedMessage = replacedMessage.replaceText(replacement);
}
audience.sendMessage(replacedMessage.compact());
} }
if (actionbar != null) { if (actionbar != null) {
Component replacedActionBar = actionbar; actionbar = actionbar.replaceText(replacement).compact();
for (TextReplacementConfig replacement : replacements) {
replacedActionBar = replacedActionBar.replaceText(replacement);
}
audience.sendActionBar(replacedActionBar.compact());
} }
if (title != null) { 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) { 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.title().replaceText(replacement).compact(),
title.subtitle().replaceText(replacement).compact(), title.subtitle().replaceText(replacement).compact(),
title.times() title.times()
); );
} }
audience.showTitle(replacedTitle);
}
if (sound != null) {
audience.playSound(sound);
} }
return this;
} }
@NotNull
public JsonObject saveToJson() { public JsonObject saveToJson() {
JsonObject object = new JsonObject(); JsonObject object = new JsonObject();
if (message != null) { if (message != null) {
@@ -258,7 +257,6 @@ public class DisplayMessage {
} }
@NotNull @NotNull
@SuppressWarnings("UnusedReturnValue")
public DisplayMessage fromJson(@NotNull JsonElement element) { public DisplayMessage fromJson(@NotNull JsonElement element) {
if (!element.isJsonObject()) { if (!element.isJsonObject()) {
message = Component.text(element.toString()); message = Component.text(element.toString());
@@ -280,6 +278,15 @@ public class DisplayMessage {
return this; return this;
} }
@NotNull
public DisplayMessage copy() {
return new DisplayMessage()
.setMessage(message)
.setActionBar(actionbar)
.setTitle(title)
.setSound(sound);
}
@Override @Override
public String toString() { public String toString() {
return CoreConstantObjects.GSON.toJson(this); return CoreConstantObjects.GSON.toJson(this);