Class MessageQuery

java.lang.Object
dev.ua.theroer.magicutils.lang.MessageQuery

public final class MessageQuery extends Object
Fluent builder for cases that don't fit the direct Messages.getRaw(String), Messages.get(String), or Messages.send(Object, String) methods — primarily explicit language pinning and manual escape-mode control.
Messages.query("plugin.welcome")
        .audience(player)
        .args("name", playerName)
        .send();

Component c = Messages.query("plugin.error")
        .language("en")          // force English regardless of audience
        .escaped()
        .args(Map.of("error", e.getMessage()))
        .component();
  • Method Details

    • audience

      public MessageQuery audience(@Nullable @Nullable Object recipient)
      Resolves the message in the recipient's preferred language. Accepts any sender-like object — Audience, Player, etc.
      Parameters:
      recipient - Audience, platform sender, or null
      Returns:
      this builder
    • language

      public MessageQuery language(String languageCode)
      Forces resolution into the given language code, ignoring any audience preference.
      Parameters:
      languageCode - language code (e.g. "en")
      Returns:
      this builder
    • args

      public MessageQuery args(Object... args)
      Sets the placeholder values. Accepts the same shapes as MsgFmt.apply(String, Object...): a Map, an Iterable, an array, key-value pairs, or positional values.
      Parameters:
      args - placeholder values
      Returns:
      this builder
    • escaped

      public MessageQuery escaped()
      Escapes placeholder values before substitution to neutralize any MiniMessage tags they might contain. Always on for component() and send(), optional for raw().
      Returns:
      this builder
    • raw

      public String raw()
      Resolves to a plain string.
      Returns:
      resolved string or the key itself
    • component

      public net.kyori.adventure.text.Component component()
      Resolves to a Component, parsing through MiniMessage. Placeholder values are always tag-escaped.
      Returns:
      adventure component
    • send

      public void send()
      Sends the resolved component to the audience set on the builder.
      Throws:
      IllegalStateException - when no audience has been set
    • send

      public void send(@Nullable @Nullable Object recipient)
      Sends the resolved component to the given recipient, overriding any previously-set audience.
      Parameters:
      recipient - Audience, platform sender, or null (no-op)