Interface MessagePipeline


public interface MessagePipeline
Turns a raw message into what the client finally sees. It resolves the MiniMessage tags, runs the formatting modules and serializes the result to whatever form the destination needs.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static enum 
    Every tag the formatting modules can insert.
  • Method Summary

    Modifier and Type
    Method
    Description
    @NonNull net.kyori.adventure.text.Component
    build(MessageContext messageContext)
    Renders the message as a component, which is what the other build methods serialize.
    @NonNull String
    buildJson(MessageContext messageContext)
    Renders the message as the JSON form the protocol uses.
    buildLegacy(@NonNull FPlayer fPlayer, @NonNull String message)
    Renders a loose string for one reader using legacy color codes.
    @NonNull String
    buildLegacy(MessageContext messageContext)
    Renders the message using legacy section-sign color codes.
    @NonNull String
    buildPlain(MessageContext messageContext)
    Renders the message with all formatting stripped.
    @NonNull String
    buildStandard(MessageContext messageContext)
    Renders the message back to MiniMessage text.
    net.kyori.adventure.text.Component
    messageComponent(FEntity sender, FPlayer receiver, String message)
    Renders a nested message with its own sender and reader.
    net.kyori.adventure.text.minimessage.tag.resolver.TagResolver
    messageTag(FEntity sender, FPlayer receiver, String message)
    A resolver rendering a nested message with its own sender and reader.
    net.kyori.adventure.text.minimessage.tag.resolver.TagResolver
    messageTag(net.kyori.adventure.text.Component message)
    A resolver inserting an already rendered component.
    @NonNull String
    parse(MessageContext messageContext)
    Runs the formatting modules over a message and hands back the text they produced, stopping before it is turned into a component.
    @NonNull net.kyori.adventure.text.minimessage.tag.resolver.TagResolver
    resolver(@NonNull String name, @NonNull BiFunction<net.kyori.adventure.text.minimessage.tag.resolver.ArgumentQueue, net.kyori.adventure.text.minimessage.Context, net.kyori.adventure.text.minimessage.tag.Tag> handler)
    A resolver whose value is computed when the tag is met.
    @NonNull net.kyori.adventure.text.minimessage.tag.resolver.TagResolver
    resolver(@NonNull String name, @NonNull net.kyori.adventure.text.Component component)
    A resolver that inserts a component.
    @NonNull net.kyori.adventure.text.minimessage.tag.resolver.TagResolver
    resolver(@NonNull String name, @NonNull net.kyori.adventure.text.minimessage.tag.Tag tag)
    A resolver with a fixed tag.
    @NonNull net.kyori.adventure.text.minimessage.tag.resolver.TagResolver
    resolver(@NonNull Set<String> names, @NonNull BiFunction<net.kyori.adventure.text.minimessage.tag.resolver.ArgumentQueue, net.kyori.adventure.text.minimessage.Context, net.kyori.adventure.text.minimessage.tag.Tag> handler)
    A resolver serving several tag names with a computed value.
    @NonNull net.kyori.adventure.text.minimessage.tag.resolver.TagResolver
    resolver(@NonNull Set<String> names, @NonNull net.kyori.adventure.text.Component component)
    A resolver serving several tag names with one component.
    @NonNull net.kyori.adventure.text.minimessage.tag.resolver.TagResolver
    resolver(@NonNull Set<String> names, @NonNull net.kyori.adventure.text.minimessage.tag.Tag tag)
    A resolver serving several tag names with one fixed tag.
    net.kyori.adventure.text.minimessage.tag.resolver.TagResolver
    targetTag(String tag, String formatTarget, FPlayer receiver, @Nullable FEntity target)
    A resolver rendering another entity's name under a chosen tag and format.
    net.kyori.adventure.text.minimessage.tag.resolver.TagResolver
    targetTag(String tag, FPlayer receiver, @Nullable FEntity target)
    A resolver rendering another entity's name under a chosen tag.
    net.kyori.adventure.text.minimessage.tag.resolver.TagResolver
    targetTag(FPlayer receiver, @Nullable FEntity target)
    A resolver rendering another entity's name under the default target tag.
  • Method Details

    • buildStandard

      @NonNull String buildStandard(MessageContext messageContext)
      Renders the message back to MiniMessage text.
      Parameters:
      messageContext - the message
      Returns:
      the rendered text
    • buildPlain

      @NonNull String buildPlain(MessageContext messageContext)
      Renders the message with all formatting stripped.
      Parameters:
      messageContext - the message
      Returns:
      the plain text
    • buildLegacy

      @NonNull String buildLegacy(MessageContext messageContext)
      Renders the message using legacy section-sign color codes.
      Parameters:
      messageContext - the message
      Returns:
      the legacy text
    • buildLegacy

      Optional<String> buildLegacy(@NonNull FPlayer fPlayer, @NonNull String message)
      Renders a loose string for one reader using legacy color codes.
      Parameters:
      fPlayer - the reader
      message - the raw text
      Returns:
      the legacy text, or empty if it could not be rendered
    • buildJson

      @NonNull String buildJson(MessageContext messageContext)
      Renders the message as the JSON form the protocol uses.
      Parameters:
      messageContext - the message
      Returns:
      the JSON text
    • build

      @NonNull net.kyori.adventure.text.Component build(MessageContext messageContext)
      Renders the message as a component, which is what the other build methods serialize.
      Parameters:
      messageContext - the message
      Returns:
      the rendered component
    • parse

      @NonNull String parse(MessageContext messageContext)
      Runs the formatting modules over a message and hands back the text they produced, stopping before it is turned into a component.
      Parameters:
      messageContext - the message and its context
      Returns:
      the message text after the modules have rewritten it
    • messageTag

      net.kyori.adventure.text.minimessage.tag.resolver.TagResolver messageTag(net.kyori.adventure.text.Component message)
      A resolver inserting an already rendered component.
      Parameters:
      message - the component
      Returns:
      the resolver
    • messageTag

      net.kyori.adventure.text.minimessage.tag.resolver.TagResolver messageTag(FEntity sender, FPlayer receiver, String message)
      A resolver rendering a nested message with its own sender and reader.
      Parameters:
      sender - who wrote it
      receiver - who reads it
      message - the raw text
      Returns:
      the resolver
    • messageComponent

      net.kyori.adventure.text.Component messageComponent(FEntity sender, FPlayer receiver, String message)
      Renders a nested message with its own sender and reader.
      Parameters:
      sender - who wrote it
      receiver - who reads it
      message - the raw text
      Returns:
      the rendered component
    • targetTag

      net.kyori.adventure.text.minimessage.tag.resolver.TagResolver targetTag(@TagPattern String tag, String formatTarget, FPlayer receiver, @Nullable FEntity target)
      A resolver rendering another entity's name under a chosen tag and format.
      Parameters:
      tag - the tag name
      formatTarget - the format to render the name with
      receiver - who reads it
      target - the entity to name, may be null
      Returns:
      the resolver
    • targetTag

      net.kyori.adventure.text.minimessage.tag.resolver.TagResolver targetTag(@TagPattern String tag, FPlayer receiver, @Nullable FEntity target)
      A resolver rendering another entity's name under a chosen tag.
      Parameters:
      tag - the tag name
      receiver - who reads it
      target - the entity to name, may be null
      Returns:
      the resolver
    • targetTag

      net.kyori.adventure.text.minimessage.tag.resolver.TagResolver targetTag(FPlayer receiver, @Nullable FEntity target)
      A resolver rendering another entity's name under the default target tag.
      Parameters:
      receiver - who reads it
      target - the entity to name, may be null
      Returns:
      the resolver
    • resolver

      @NonNull net.kyori.adventure.text.minimessage.tag.resolver.TagResolver resolver(@TagPattern @NonNull String name, @NonNull BiFunction<net.kyori.adventure.text.minimessage.tag.resolver.ArgumentQueue, net.kyori.adventure.text.minimessage.Context, net.kyori.adventure.text.minimessage.tag.Tag> handler)
      A resolver whose value is computed when the tag is met.
      Parameters:
      name - the tag name
      handler - produces the tag from its arguments
      Returns:
      the resolver
    • resolver

      @NonNull net.kyori.adventure.text.minimessage.tag.resolver.TagResolver resolver(@TagPattern @NonNull String name, @NonNull net.kyori.adventure.text.minimessage.tag.Tag tag)
      A resolver with a fixed tag.
      Parameters:
      name - the tag name
      tag - the tag
      Returns:
      the resolver
    • resolver

      @NonNull net.kyori.adventure.text.minimessage.tag.resolver.TagResolver resolver(@TagPattern @NonNull String name, @NonNull net.kyori.adventure.text.Component component)
      A resolver that inserts a component.
      Parameters:
      name - the tag name
      component - the component to insert
      Returns:
      the resolver
    • resolver

      @NonNull net.kyori.adventure.text.minimessage.tag.resolver.TagResolver resolver(@NonNull Set<String> names, @NonNull net.kyori.adventure.text.minimessage.tag.Tag tag)
      A resolver serving several tag names with one fixed tag.
      Parameters:
      names - the tag names
      tag - the tag
      Returns:
      the resolver
    • resolver

      @NonNull net.kyori.adventure.text.minimessage.tag.resolver.TagResolver resolver(@NonNull Set<String> names, @NonNull net.kyori.adventure.text.Component component)
      A resolver serving several tag names with one component.
      Parameters:
      names - the tag names
      component - the component to insert
      Returns:
      the resolver
    • resolver

      @NonNull net.kyori.adventure.text.minimessage.tag.resolver.TagResolver resolver(@NonNull Set<String> names, @NonNull BiFunction<net.kyori.adventure.text.minimessage.tag.resolver.ArgumentQueue, net.kyori.adventure.text.minimessage.Context, net.kyori.adventure.text.minimessage.tag.Tag> handler)
      A resolver serving several tag names with a computed value.
      Parameters:
      names - the tag names
      handler - produces the tag from its arguments
      Returns:
      the resolver