Fixed issues related to sponge message building

This commit is contained in:
Risto Lahtela 2020-10-06 15:29:03 +03:00
parent 2cf7725b58
commit 98931566a1
2 changed files with 23 additions and 10 deletions

View File

@ -71,7 +71,7 @@ subprojects {
ext.bukkitVersion = "1.13.2-R0.1-SNAPSHOT" ext.bukkitVersion = "1.13.2-R0.1-SNAPSHOT"
ext.spigotVersion = "1.13.2-R0.1-SNAPSHOT" ext.spigotVersion = "1.13.2-R0.1-SNAPSHOT"
ext.paperVersion = "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.nukkitVersion = "1.0-SNAPSHOT"
ext.bungeeVersion = "1.16-R0.3" ext.bungeeVersion = "1.16-R0.3"
ext.velocityVersion = "1.0.0-SNAPSHOT" ext.velocityVersion = "1.0.0-SNAPSHOT"

View File

@ -18,6 +18,7 @@ package com.djrapitops.plan.commands.use;
import org.spongepowered.api.text.Text; import org.spongepowered.api.text.Text;
import org.spongepowered.api.text.action.TextActions; import org.spongepowered.api.text.action.TextActions;
import plan.org.apache.commons.text.TextStringBuilder;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
@ -27,16 +28,23 @@ public class SpongeMessageBuilder implements MessageBuilder {
private final SpongeCMDSender sender; private final SpongeCMDSender sender;
private final Text.Builder builder; private final Text.Builder builder;
private final SpongeMessageBuilder previous;
public SpongeMessageBuilder(SpongeCMDSender sender) { public SpongeMessageBuilder(SpongeCMDSender sender) {
this(sender, null);
}
SpongeMessageBuilder(SpongeCMDSender sender, SpongeMessageBuilder previous) {
this.sender = sender; this.sender = sender;
builder = Text.builder(); this.builder = Text.builder();
this.previous = previous;
} }
@Override @Override
public MessageBuilder addPart(String s) { public MessageBuilder addPart(String s) {
builder.append(Text.of(s)); SpongeMessageBuilder newBuilder = new SpongeMessageBuilder(sender, this);
return this; newBuilder.builder.append(Text.of(s));
return newBuilder;
} }
@Override @Override
@ -57,7 +65,7 @@ public class SpongeMessageBuilder implements MessageBuilder {
@Override @Override
public MessageBuilder command(String command) { 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; return this;
} }
@ -68,14 +76,14 @@ public class SpongeMessageBuilder implements MessageBuilder {
} }
@Override @Override
public MessageBuilder hover(String... strings) { public MessageBuilder hover(String... lines) {
builder.onHover(TextActions.showText(Text.of((Object[]) strings))); builder.onHover(TextActions.showText(Text.of(new TextStringBuilder().appendWithSeparators(lines, "\n"))));
return this; return this;
} }
@Override @Override
public MessageBuilder hover(Collection<String> collection) { public MessageBuilder hover(Collection<String> lines) {
builder.onHover(TextActions.showText(Text.of(collection.toArray()))); builder.onHover(TextActions.showText(Text.of(new TextStringBuilder().appendWithSeparators(lines, "\n"))));
return this; return this;
} }
@ -95,6 +103,11 @@ public class SpongeMessageBuilder implements MessageBuilder {
@Override @Override
public void send() { public void send() {
sender.source.sendMessage(builder.build()); if (previous == null) {
sender.source.sendMessage(builder.build());
} else {
previous.builder.append(builder.build());
previous.send();
}
} }
} }