feat: 完善 DisplayMessage 功能
This commit is contained in:
@@ -59,12 +59,21 @@ public enum CoreMessage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public void show(CommandSender sender, TextReplacementConfig config) {
|
public void show(CommandSender sender, TextReplacementConfig replacement) {
|
||||||
if (message == null) {
|
if (message == null) {
|
||||||
sender.sendMessage(name());
|
sender.sendMessage(name());
|
||||||
}
|
}
|
||||||
Audience audience = CoreBukkitAPI.getInstance().getAudienceProvider().sender(sender);
|
Audience audience = CoreBukkitAPI.getInstance().getAudienceProvider().sender(sender);
|
||||||
message.show(audience, config);
|
message.show(audience, replacement);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public void show(CommandSender sender, TextReplacementConfig... replacement) {
|
||||||
|
if (message == null) {
|
||||||
|
sender.sendMessage(name());
|
||||||
|
}
|
||||||
|
Audience audience = CoreBukkitAPI.getInstance().getAudienceProvider().sender(sender);
|
||||||
|
message.show(audience, replacement);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
|
@@ -81,15 +81,15 @@ public class DisplayMessage {
|
|||||||
|
|
||||||
public void show(@NotNull Audience audience, @NotNull TextReplacementConfig replacement) {
|
public void show(@NotNull Audience audience, @NotNull TextReplacementConfig replacement) {
|
||||||
if (message != null) {
|
if (message != null) {
|
||||||
audience.sendMessage(message.compact().replaceText(replacement));
|
audience.sendMessage(message.replaceText(replacement).compact());
|
||||||
}
|
}
|
||||||
if (actionbar != null) {
|
if (actionbar != null) {
|
||||||
audience.sendActionBar(actionbar.replaceText(replacement));
|
audience.sendActionBar(actionbar.replaceText(replacement).compact());
|
||||||
}
|
}
|
||||||
if (title != null) {
|
if (title != null) {
|
||||||
audience.showTitle(Title.title(
|
audience.showTitle(Title.title(
|
||||||
title.title().replaceText(replacement),
|
title.title().replaceText(replacement).compact(),
|
||||||
title.subtitle().replaceText(replacement),
|
title.subtitle().replaceText(replacement).compact(),
|
||||||
title.times()
|
title.times()
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
@@ -98,13 +98,44 @@ public class DisplayMessage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void show(@NotNull Audience audience, @NotNull TextReplacementConfig... replacements) {
|
||||||
|
if (message != null) {
|
||||||
|
Component replacedMessage = message;
|
||||||
|
for (TextReplacementConfig replacement : replacements) {
|
||||||
|
replacedMessage = replacedMessage.replaceText(replacement);
|
||||||
|
}
|
||||||
|
audience.sendMessage(replacedMessage.compact());
|
||||||
|
}
|
||||||
|
if (actionbar != null) {
|
||||||
|
Component replacedActionBar = actionbar;
|
||||||
|
for (TextReplacementConfig replacement : replacements) {
|
||||||
|
replacedActionBar = replacedActionBar.replaceText(replacement);
|
||||||
|
}
|
||||||
|
audience.sendActionBar(replacedActionBar.compact());
|
||||||
|
}
|
||||||
|
if (title != null) {
|
||||||
|
Title replacedTitle = title;
|
||||||
|
for (TextReplacementConfig replacement : replacements) {
|
||||||
|
replacedTitle = Title.title(
|
||||||
|
title.title().replaceText(replacement).compact(),
|
||||||
|
title.subtitle().replaceText(replacement).compact(),
|
||||||
|
title.times()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
audience.showTitle(replacedTitle);
|
||||||
|
}
|
||||||
|
if (sound != null) {
|
||||||
|
audience.playSound(sound);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public JsonObject saveToJson() {
|
public JsonObject saveToJson() {
|
||||||
JsonObject object = new JsonObject();
|
JsonObject object = new JsonObject();
|
||||||
if (message != null) {
|
if (message != null) {
|
||||||
object.add("message", GsonComponentSerializer.gson().serializeToTree(message.compact()));
|
object.add("message", GsonComponentSerializer.gson().serializeToTree(message));
|
||||||
}
|
}
|
||||||
if (actionbar != null) {
|
if (actionbar != null) {
|
||||||
object.add("actionbar", GsonComponentSerializer.gson().serializeToTree(actionbar.compact()));
|
object.add("actionbar", GsonComponentSerializer.gson().serializeToTree(actionbar));
|
||||||
}
|
}
|
||||||
if (title != null) {
|
if (title != null) {
|
||||||
object.add("title", SerializeUtils.serializeTitle(title));
|
object.add("title", SerializeUtils.serializeTitle(title));
|
||||||
@@ -123,7 +154,7 @@ public class DisplayMessage {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public DisplayMessage setMessage(@NotNull Component message) {
|
public DisplayMessage setMessage(@NotNull Component message) {
|
||||||
this.message = message;
|
this.message = message.compact();
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -135,7 +166,7 @@ public class DisplayMessage {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public DisplayMessage setActionBar(@NotNull Component message) {
|
public DisplayMessage setActionBar(@NotNull Component message) {
|
||||||
this.actionbar = message;
|
this.actionbar = message.compact();
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -161,15 +192,15 @@ public class DisplayMessage {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public DisplayMessage setTitle(@NotNull Component title, @NotNull Component subtitle) {
|
public DisplayMessage setTitle(@NotNull Component title, @NotNull Component subtitle) {
|
||||||
this.title = Title.title(title, subtitle);
|
this.title = Title.title(title.compact(), subtitle.compact());
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public DisplayMessage setTitle(@NotNull Component title, @NotNull Component subtitle, int fadeIn, int stay, int fadeOut) {
|
public DisplayMessage setTitle(@NotNull Component title, @NotNull Component subtitle, int fadeIn, int stay, int fadeOut) {
|
||||||
this.title = Title.title(
|
this.title = Title.title(
|
||||||
title,
|
title.compact(),
|
||||||
subtitle,
|
subtitle.compact(),
|
||||||
Title.Times.times(
|
Title.Times.times(
|
||||||
Ticks.duration(fadeIn),
|
Ticks.duration(fadeIn),
|
||||||
Ticks.duration(stay),
|
Ticks.duration(stay),
|
||||||
@@ -235,10 +266,10 @@ public class DisplayMessage {
|
|||||||
}
|
}
|
||||||
JsonObject object = element.getAsJsonObject();
|
JsonObject object = element.getAsJsonObject();
|
||||||
if (object.has("message")) {
|
if (object.has("message")) {
|
||||||
message = GsonComponentSerializer.gson().deserializeFromTree(object.get("message"));
|
message = GsonComponentSerializer.gson().deserializeFromTree(object.get("message")).compact();
|
||||||
}
|
}
|
||||||
if (object.has("actionbar")) {
|
if (object.has("actionbar")) {
|
||||||
actionbar = GsonComponentSerializer.gson().deserializeFromTree(object.get("actionbar"));
|
actionbar = GsonComponentSerializer.gson().deserializeFromTree(object.get("actionbar")).compact();
|
||||||
}
|
}
|
||||||
if (object.has("title")) {
|
if (object.has("title")) {
|
||||||
title = SerializeUtils.deserializeTitle(object.getAsJsonObject("title"));
|
title = SerializeUtils.deserializeTitle(object.getAsJsonObject("title"));
|
||||||
|
Reference in New Issue
Block a user