Class LogBuilderCore<SELF extends LogBuilderCore<SELF>>

java.lang.Object
dev.ua.theroer.magicutils.logger.LogBuilderCore<SELF>
Type Parameters:
SELF - concrete builder type returned by the fluent methods

public class LogBuilderCore<SELF extends LogBuilderCore<SELF>> extends Object
Fluent API builder for logging messages with advanced options.

Uses a self-referential type parameter so the shared fluent methods return the concrete platform builder type. Platform subclasses declare class LogBuilder extends LogBuilderCore<LogBuilder> and only add their player/command-source overloads; they no longer need to re-declare covariant overrides of the shared methods just to keep the chain typed.

  • Field Details

    • logger

      protected final LoggerCore logger
      Logger core used to dispatch messages.
    • level

      protected final LogLevel level
      Log level associated with this builder.
  • Constructor Details

    • LogBuilderCore

      public LogBuilderCore(LoggerCore logger, LogLevel level)
      Creates a new LogBuilderCore with the specified log level.
      Parameters:
      logger - logger instance to dispatch through
      level - the log level for messages built by this instance
  • Method Details

    • getRecipients

      public List<Audience> getRecipients()
      Returns a snapshot of queued recipients.
      Returns:
      list of recipients
    • getTagResolvers

      public List<net.kyori.adventure.text.minimessage.tag.resolver.TagResolver> getTagResolvers()
      Returns a snapshot of registered tag resolvers.
      Returns:
      list of tag resolvers
    • getArgs

      public Object[] getArgs()
      Returns the argument array for placeholders.
      Returns:
      argument array or null
    • getPlaceholders

      public Map<String,Object> getPlaceholders()
      Returns placeholder mappings.
      Returns:
      placeholder map or null
    • target

      public SELF target(LogTarget target)
      Sets the log target for this message.
      Parameters:
      target - log target
      Returns:
      this builder
    • to

      public SELF to(Audience audience)
      Sets the direct audience for the message.
      Parameters:
      audience - target audience
      Returns:
      this builder
    • toAudiences

      public SELF toAudiences(Collection<? extends Audience> audiences)
      Adds a collection of audiences as recipients.
      Parameters:
      audiences - recipient collection
      Returns:
      this builder
    • recipient

      public SELF recipient(Audience audience)
      Adds a single recipient.
      Parameters:
      audience - recipient
      Returns:
      this builder
    • toAll

      public SELF toAll()
      Broadcasts the message to all recipients.
      Returns:
      this builder
    • toConsole

      public SELF toConsole()
      Forces the message to console target.
      Returns:
      this builder
    • noPrefix

      public SELF noPrefix()
      Disables prefix rendering for this message.
      Returns:
      this builder
    • prefixMode

      public SELF prefixMode(PrefixMode mode)
      Overrides prefix rendering mode for this message.
      Parameters:
      mode - prefix mode override
      Returns:
      this builder
    • args

      public SELF args(Object... args)
      Sets placeholder arguments.
      Parameters:
      args - placeholder arguments
      Returns:
      this builder
    • placeholders

      public SELF placeholders(Map<String,Object> placeholders)
      Sets named placeholders.
      Parameters:
      placeholders - placeholder map
      Returns:
      this builder
    • withResolvers

      public SELF withResolvers(net.kyori.adventure.text.minimessage.tag.resolver.TagResolver... resolvers)
      Adds MiniMessage tag resolvers.
      Parameters:
      resolvers - tag resolvers
      Returns:
      this builder
    • send

      public void send(Object message, Object... placeholders)
      Sends the message using the configured builder settings.
      Parameters:
      message - message to send
      placeholders - placeholder arguments
    • performSend

      protected void performSend(Object message, Object... placeholders)
      Performs the message dispatch with the current builder state.
      Parameters:
      message - message to send
      placeholders - placeholder arguments