diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml
index f98e623..789fc99 100644
--- a/dependency-reduced-pom.xml
+++ b/dependency-reduced-pom.xml
@@ -4,7 +4,7 @@
com.github.smuddgge
Leaf
Leaf
- 3.2.1
+ 3.3.0
A velocity utility plugin
diff --git a/pom.xml b/pom.xml
index 62e3a45..26d28fe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.github.smuddgge
Leaf
- 3.2.1
+ 3.3.0
jar
Leaf
diff --git a/src/main/java/com/github/smuddgge/leaf/Leaf.java b/src/main/java/com/github/smuddgge/leaf/Leaf.java
index d18c586..d5e639c 100644
--- a/src/main/java/com/github/smuddgge/leaf/Leaf.java
+++ b/src/main/java/com/github/smuddgge/leaf/Leaf.java
@@ -36,7 +36,7 @@
@Plugin(
id = "leaf",
name = "Leaf",
- version = "3.0.2",
+ version = "3.3.0",
description = "A velocity utility plugin",
authors = {"Smudge"}
)
diff --git a/src/main/java/com/github/smuddgge/leaf/MessageManager.java b/src/main/java/com/github/smuddgge/leaf/MessageManager.java
index 0bcbc58..b5b7d21 100644
--- a/src/main/java/com/github/smuddgge/leaf/MessageManager.java
+++ b/src/main/java/com/github/smuddgge/leaf/MessageManager.java
@@ -6,6 +6,7 @@
import com.velocitypowered.api.proxy.Player;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
+import org.jetbrains.annotations.Nullable;
import java.util.HashMap;
import java.util.Objects;
diff --git a/src/main/java/com/github/smuddgge/leaf/commands/types/Info.java b/src/main/java/com/github/smuddgge/leaf/commands/types/Info.java
index fb3dc71..1256edd 100644
--- a/src/main/java/com/github/smuddgge/leaf/commands/types/Info.java
+++ b/src/main/java/com/github/smuddgge/leaf/commands/types/Info.java
@@ -69,10 +69,10 @@ public CommandStatus onPlayerRun(ConfigurationSection section, String[] argument
// Get message as list.
// If the message is not a list it will return null.
- List message = section.getListString("message");
+ List message = section.getListString("message", new ArrayList<>());
// If null assume it's a string.
- if (message == null) {
+ if (message == null || message.isEmpty()) {
String messageString = section.getString("message", "null");
user.sendMessage(messageString);
return new CommandStatus();
diff --git a/src/main/java/com/github/smuddgge/leaf/datatype/User.java b/src/main/java/com/github/smuddgge/leaf/datatype/User.java
index d432bcf..d62971a 100644
--- a/src/main/java/com/github/smuddgge/leaf/datatype/User.java
+++ b/src/main/java/com/github/smuddgge/leaf/datatype/User.java
@@ -14,12 +14,11 @@
import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.api.proxy.ServerConnection;
import com.velocitypowered.api.proxy.server.RegisteredServer;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.title.TitlePart;
import java.time.Duration;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.UUID;
+import java.util.*;
import java.util.concurrent.CompletableFuture;
/**
@@ -236,12 +235,43 @@ public boolean isIgnoring(UUID uuid) {
/**
* Used to send a user a message.
* This will also convert the messages placeholders and colours.
+ * Title example: "::title =string::"
+ * Subtitle example: "::subtitle =string>::"
+ * Action bar example: "::actionbar =string::"
*
* @param message The message to send.
*/
public void sendMessage(String message) {
if (this.player == null) return;
- this.player.sendMessage(MessageManager.convert(message, this));
+ String[] parts = message.split("::");
+
+ // Loop though parts.
+ for (String part : parts) {
+ if (part.equals("")) continue;
+
+ // Check if it's a title part.
+ if (part.startsWith("title =")) {
+ String titleMessage = part.split("=")[1];
+ this.player.sendTitlePart(TitlePart.TITLE, MessageManager.convert(titleMessage));
+ continue;
+ }
+
+ // Check if it's a subtitle part.
+ if (part.startsWith("subtitle =")) {
+ String subtitleMessage = part.split("=")[1];
+ this.player.sendTitlePart(TitlePart.SUBTITLE, MessageManager.convert(subtitleMessage));
+ continue;
+ }
+
+ // Check if it's an actionbar part.
+ if (part.startsWith("actionbar =")) {
+ String actionbarMessage = part.split("=")[1];
+ this.player.sendActionBar(MessageManager.convert(actionbarMessage));
+ continue;
+ }
+
+ this.player.sendMessage(MessageManager.convert(part));
+ }
}
/**