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)); + } } /**