Class LoggerCore

java.lang.Object
dev.ua.theroer.magicutils.logger.LoggerCoreMethods
dev.ua.theroer.magicutils.logger.LoggerCore

public class LoggerCore extends dev.ua.theroer.magicutils.logger.LoggerCoreMethods
Platform-agnostic logger core with configurable formatting and placeholders.
  • Constructor Details

    • LoggerCore

      public LoggerCore(Platform platform, ConfigManager configManager, Object placeholderOwner, String pluginName)
      Create a logger core instance.
      Parameters:
      platform - platform adapter
      configManager - config manager
      placeholderOwner - owner key for local placeholders
      pluginName - plugin/mod name for prefix defaults
  • Method Details

    • setExternalPlaceholderEngine

      public void setExternalPlaceholderEngine(ExternalPlaceholderEngine externalPlaceholderEngine)
      Sets external placeholder engine (PlaceholderAPI, MiniPlaceholders, etc).
      Parameters:
      externalPlaceholderEngine - engine instance
    • setEscapePlaceholders

      public void setEscapePlaceholders(boolean escapePlaceholders)
      Controls whether inline {placeholder} values are escaped before MiniMessage parsing. When true, untrusted user input cannot inject MiniMessage tags through placeholders. When false (default), placeholder values can themselves contain MiniMessage markup. Recommended: true for chat output that may contain user-supplied data.
      Parameters:
      escapePlaceholders - true to escape placeholder values
    • reload

      public void reload()
      Reloads logger configuration from disk.
    • log

      public LogBuilderCore log()
      Creates an INFO level log builder.
      Returns:
      log builder
    • noPrefix

      public LogBuilderCore noPrefix()
      Creates an INFO level log builder with prefix disabled.
      Returns:
      log builder
    • info

      public LogBuilderCore info()
      Creates an INFO level log builder.
      Returns:
      log builder
    • warn

      public LogBuilderCore warn()
      Creates a WARN level log builder.
      Returns:
      log builder
    • error

      public LogBuilderCore error()
      Creates an ERROR level log builder.
      Returns:
      log builder
    • debug

      public LogBuilderCore debug()
      Creates a DEBUG level log builder.
      Returns:
      log builder
    • success

      public LogBuilderCore success()
      Creates a SUCCESS level log builder.
      Returns:
      log builder
    • create

      public PrefixedLoggerCore create(String name)
      Creates or retrieves a prefixed logger with default prefix.
      Parameters:
      name - logger name
      Returns:
      prefixed logger core
    • create

      public PrefixedLoggerCore create(String name, String prefix)
      Creates or retrieves a prefixed logger with custom prefix.
      Parameters:
      name - logger name
      prefix - prefix string
      Returns:
      prefixed logger core
    • withPrefix

      public PrefixedLoggerCore withPrefix(String name)
      Creates or retrieves a prefixed logger with default bracketed prefix.
      Parameters:
      name - logger name
      Returns:
      prefixed logger core
    • withPrefix

      public PrefixedLoggerCore withPrefix(String name, String prefix)
      Creates or retrieves a prefixed logger with custom prefix.
      Parameters:
      name - logger name
      prefix - prefix string
      Returns:
      prefixed logger core
    • broadcast

      public void broadcast(Object message)
      Broadcasts a message to console and players.
      Parameters:
      message - message to send
    • setPrefixedLoggerEnabled

      public void setPrefixedLoggerEnabled(String name, boolean enabled)
      Enables or disables a prefixed logger by name.
      Parameters:
      name - prefixed logger name
      enabled - whether logging is enabled
    • parseMessage

      public net.kyori.adventure.text.Component parseMessage(Object message, LogLevel level, LogTarget target, @Nullable @Nullable Audience directAudience, @Nullable @Nullable Collection<? extends Audience> audienceCollection, Object... placeholdersArgs)
      Parses a message to a component using current logger configuration.
      Parameters:
      message - message input
      level - log level
      target - log target
      directAudience - direct audience
      audienceCollection - audience collection
      placeholdersArgs - placeholder arguments
      Returns:
      rendered component
    • parseMessage

      public net.kyori.adventure.text.Component parseMessage(Object message, LogLevel level, LogTarget target, @Nullable @Nullable PrefixMode prefixOverride, @Nullable @Nullable Audience directAudience, @Nullable @Nullable Collection<? extends Audience> audienceCollection, Object... placeholdersArgs)
      Parses a message to a component using custom prefix override.
      Parameters:
      message - message input
      level - log level
      target - log target
      prefixOverride - prefix override
      directAudience - direct audience
      audienceCollection - audience collection
      placeholdersArgs - placeholder arguments
      Returns:
      rendered component
    • parseMessage

      public net.kyori.adventure.text.Component parseMessage(Object message, @Nullable @Nullable Audience directAudience, @Nullable @Nullable Collection<? extends Audience> audienceCollection, Object... placeholdersArgs)
      Parses a message to a component using logger pipeline without any prefix.
      Parameters:
      message - message input
      directAudience - direct audience
      audienceCollection - audience collection
      placeholdersArgs - placeholder arguments
      Returns:
      rendered component without prefix
    • send

      public void send(LogLevel level, Object message, @Nullable @Nullable Audience audience, @Nullable @Nullable Collection<? extends Audience> audiences, LogTarget target, boolean broadcast, Object... placeholders)
      Sends a message through the logger pipeline.
      Parameters:
      level - log level
      message - message input
      audience - direct audience
      audiences - audience collection
      target - log target
      broadcast - whether to broadcast
      placeholders - placeholder arguments
    • send

      protected void send(LogLevel level, Object message)
      Specified by:
      send in class dev.ua.theroer.magicutils.logger.LoggerCoreMethods
    • send

      protected void send(LogLevel level, Object message, Audience player)
      Specified by:
      send in class dev.ua.theroer.magicutils.logger.LoggerCoreMethods
    • send

      protected void send(LogLevel level, Object message, Audience player, boolean all)
      Specified by:
      send in class dev.ua.theroer.magicutils.logger.LoggerCoreMethods
    • sendToConsole

      protected void sendToConsole(LogLevel level, Object message)
      Specified by:
      sendToConsole in class dev.ua.theroer.magicutils.logger.LoggerCoreMethods
    • sendToPlayers

      protected void sendToPlayers(LogLevel level, Object message, Collection<? extends Audience> players)
      Specified by:
      sendToPlayers in class dev.ua.theroer.magicutils.logger.LoggerCoreMethods
    • resolveColorsForLevel

      public String[] resolveColorsForLevel(LogLevel level, boolean forConsole)
      Resolves colors for the specified log level directly from the active configuration. Falls back to built-in defaults if the configuration isn't available yet.
      Parameters:
      level - log level being rendered
      forConsole - true to use console palette, false for chat palette
      Returns:
      array of colors representing a gradient for the given level/target
    • getChatPrefixMode

      public PrefixMode getChatPrefixMode()
      Returns the chat prefix mode from the active configuration.
      Returns:
      chat prefix mode
    • getConsolePrefixMode

      public PrefixMode getConsolePrefixMode()
      Returns the console prefix mode from the active configuration.
      Returns:
      console prefix mode
    • getCustomPrefix

      public String getCustomPrefix()
      Returns the custom prefix text from the active configuration.
      Returns:
      custom prefix string
    • getDefaultTarget

      public LogTarget getDefaultTarget()
      Returns the default log target from the active configuration.
      Returns:
      default log target
    • isLevelEnabled

      public boolean isLevelEnabled(LogLevel level)
      Returns whether a log level is enabled for the default target.
      Parameters:
      level - log level to check
      Returns:
      true when formatting and delivery should proceed
    • isLevelEnabled

      public boolean isLevelEnabled(LogLevel level, LogTarget target)
      Returns whether a log level is enabled for the provided target.
      Parameters:
      level - log level to check
      target - target to evaluate
      Returns:
      true when formatting and delivery should proceed
    • isConsoleStripFormatting

      public boolean isConsoleStripFormatting()
      Returns whether console formatting should be stripped from messages.
      Returns:
      true if console formatting is stripped
    • isConsoleUseGradient

      public boolean isConsoleUseGradient()
      Returns whether console messages should use gradient coloring.
      Returns:
      true if console gradient is enabled