diff --git a/paper-api/src/main/java/org/bukkit/Server.java b/paper-api/src/main/java/org/bukkit/Server.java index e47e482d7..041ebeb28 100644 --- a/paper-api/src/main/java/org/bukkit/Server.java +++ b/paper-api/src/main/java/org/bukkit/Server.java @@ -14,6 +14,9 @@ import java.util.Set; import java.util.UUID; import java.util.function.Consumer; import java.util.logging.Logger; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.MiniMessage; +import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import org.bukkit.Warning.WarningState; import org.bukkit.advancement.Advancement; import org.bukkit.block.data.BlockData; @@ -409,6 +412,40 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi } // Paper end + /** + * Sends a message with the MiniMessage format to the server. + *
+ * See MiniMessage docs + * for more information on the format. + * + * @param message MiniMessage content + */ + default void sendRichMessage(final @NotNull String message) { + this.sendMessage(MiniMessage.miniMessage().deserialize(message)); + } + + /** + * Sends a message with the MiniMessage format to the server. + *
+ * See MiniMessage docs and MiniMessage Placeholders docs + * for more information on the format. + * + * @param message MiniMessage content + * @param resolvers resolvers to use + */ + default void sendRichMessage(final @NotNull String message, final @NotNull TagResolver... resolvers) { + this.sendMessage(MiniMessage.miniMessage().deserialize(message, resolvers)); + } + + /** + * Sends a plain message to the server. + * + * @param message plain message + */ + default void sendPlainMessage(final @NotNull String message) { + this.sendMessage(Component.text(message)); + } + /** * Gets the name of the update folder. The update folder is used to safely * update plugins at the right moment on a plugin load.