From 98931566a1e075f6cd490c33f0cf78fe2ca80187 Mon Sep 17 00:00:00 2001 From: Risto Lahtela <24460436+Rsl1122@users.noreply.github.com> Date: Tue, 6 Oct 2020 15:29:03 +0300 Subject: [PATCH] Fixed issues related to sponge message building --- Plan/build.gradle | 2 +- .../commands/use/SpongeMessageBuilder.java | 31 +++++++++++++------ 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/Plan/build.gradle b/Plan/build.gradle index d91b9edc8..a0b652801 100644 --- a/Plan/build.gradle +++ b/Plan/build.gradle @@ -71,7 +71,7 @@ subprojects { ext.bukkitVersion = "1.13.2-R0.1-SNAPSHOT" ext.spigotVersion = "1.13.2-R0.1-SNAPSHOT" ext.paperVersion = "1.13.2-R0.1-SNAPSHOT" - ext.spongeVersion = "7.1.0" + ext.spongeVersion = "7.3.0" ext.nukkitVersion = "1.0-SNAPSHOT" ext.bungeeVersion = "1.16-R0.3" ext.velocityVersion = "1.0.0-SNAPSHOT" diff --git a/Plan/sponge/src/main/java/com/djrapitops/plan/commands/use/SpongeMessageBuilder.java b/Plan/sponge/src/main/java/com/djrapitops/plan/commands/use/SpongeMessageBuilder.java index f35610531..e712eadb6 100644 --- a/Plan/sponge/src/main/java/com/djrapitops/plan/commands/use/SpongeMessageBuilder.java +++ b/Plan/sponge/src/main/java/com/djrapitops/plan/commands/use/SpongeMessageBuilder.java @@ -18,6 +18,7 @@ package com.djrapitops.plan.commands.use; import org.spongepowered.api.text.Text; import org.spongepowered.api.text.action.TextActions; +import plan.org.apache.commons.text.TextStringBuilder; import java.net.MalformedURLException; import java.net.URL; @@ -27,16 +28,23 @@ public class SpongeMessageBuilder implements MessageBuilder { private final SpongeCMDSender sender; private final Text.Builder builder; + private final SpongeMessageBuilder previous; public SpongeMessageBuilder(SpongeCMDSender sender) { + this(sender, null); + } + + SpongeMessageBuilder(SpongeCMDSender sender, SpongeMessageBuilder previous) { this.sender = sender; - builder = Text.builder(); + this.builder = Text.builder(); + this.previous = previous; } @Override public MessageBuilder addPart(String s) { - builder.append(Text.of(s)); - return this; + SpongeMessageBuilder newBuilder = new SpongeMessageBuilder(sender, this); + newBuilder.builder.append(Text.of(s)); + return newBuilder; } @Override @@ -57,7 +65,7 @@ public class SpongeMessageBuilder implements MessageBuilder { @Override public MessageBuilder command(String command) { - builder.onClick(TextActions.runCommand(command.charAt(0) == '/' ? command.substring(1) : command)); + builder.onClick(TextActions.runCommand(command.charAt(0) == '/' ? command : '/' + command)); return this; } @@ -68,14 +76,14 @@ public class SpongeMessageBuilder implements MessageBuilder { } @Override - public MessageBuilder hover(String... strings) { - builder.onHover(TextActions.showText(Text.of((Object[]) strings))); + public MessageBuilder hover(String... lines) { + builder.onHover(TextActions.showText(Text.of(new TextStringBuilder().appendWithSeparators(lines, "\n")))); return this; } @Override - public MessageBuilder hover(Collection collection) { - builder.onHover(TextActions.showText(Text.of(collection.toArray()))); + public MessageBuilder hover(Collection lines) { + builder.onHover(TextActions.showText(Text.of(new TextStringBuilder().appendWithSeparators(lines, "\n")))); return this; } @@ -95,6 +103,11 @@ public class SpongeMessageBuilder implements MessageBuilder { @Override public void send() { - sender.source.sendMessage(builder.build()); + if (previous == null) { + sender.source.sendMessage(builder.build()); + } else { + previous.builder.append(builder.build()); + previous.send(); + } } }