Class MessageTemplate<T,K extends ConfigHandler>

java.lang.Object
top.magstar.framework.configs.MagstarConfig<K>
top.magstar.framework.configs.MessageTemplate<T,K>
Type Parameters:
T - 消息键的类型,通常是枚举类型
K - 配置管理类的类型。
All Implemented Interfaces:
CommandMessageProvider

public abstract class MessageTemplate<T,K extends ConfigHandler> extends MagstarConfig<K> implements CommandMessageProvider
抽象消息配置模板类

提供类型安全的消息访问和管理功能,支持枚举和常量两种消息键定义方式。 完整支持 SmartString 的所有高级格式化功能,包括RGB颜色、渐变、高级标签等。 子类只需要定义消息键,即可享受完整的消息管理功能。

  • Constructor Details

    • MessageTemplate

      protected MessageTemplate(K configHandler)
  • Method Details

    • getKeyType

      protected abstract Class<T> getKeyType()
      获取消息键的类型 子类必须实现此方法来指定消息键类型
    • getPath

      protected String getPath(T key)
      获取消息键对应的配置路径 子类可以重写此方法来自定义路径获取逻辑
    • getDefaultValue

      protected String getDefaultValue(T key)
      获取消息键的默认值 子类可以重写此方法来自定义默认值获取逻辑
    • getSmartMessage

      public SmartString getSmartMessage(T key, Object... placeholders)
      获取 SmartString 消息(推荐使用)
      Parameters:
      key - 消息键
      placeholders - 占位符替换 (key1, value1, key2, value2, ...)
      Returns:
      SmartString 实例,支持所有高级格式
    • getSmartMessageList

      public List<SmartString> getSmartMessageList(T key, Object... placeholders)
      获取 SmartString 消息列表
      Parameters:
      key - 消息键
      placeholders - 占位符替换
      Returns:
      SmartString 列表
    • getRawSmartMessage

      public SmartString getRawSmartMessage(T key)
      获取原始 SmartString(不处理占位符)
      Parameters:
      key - 消息键
      Returns:
      原始 SmartString
    • getParsedSmartMessage

      public SmartString getParsedSmartMessage(T key)
      获取已解析的 SmartString(处理所有格式但不处理占位符)
      Parameters:
      key - 消息键
      Returns:
      解析后的 SmartString
    • getMessage

      public String getMessage(T key, Object... placeholders)
      获取传统格式化字符串消息(兼容旧代码)
      Parameters:
      key - 消息键
      placeholders - 占位符替换
      Returns:
      格式化后的字符串
    • getMessageList

      public List<String> getMessageList(T key, Object... placeholders)
      获取传统字符串消息列表(兼容旧代码)
    • sendSmartMessage

      public void sendSmartMessage(org.bukkit.command.CommandSender receiver, T key, Object... placeholders)
      发送 SmartString 消息给指定接收者(推荐使用)
      Parameters:
      receiver - 消息接收者
      key - 消息键
      placeholders - 占位符
    • sendMessage

      public void sendMessage(org.bukkit.command.CommandSender receiver, T key, Object... placeholders)
      发送传统字符串消息(兼容性方法)
    • sendSmartMessageList

      public void sendSmartMessageList(org.bukkit.command.CommandSender receiver, T key, Object... placeholders)
      发送 SmartString 消息列表
    • sendMessageList

      public void sendMessageList(org.bukkit.command.CommandSender receiver, T key, Object... placeholders)
      发送传统字符串消息列表
    • getCenteredMessage

      public SmartString getCenteredMessage(T key, int width, Object... placeholders)
      获取居中显示的消息
      Parameters:
      key - 消息键
      width - 显示宽度
      placeholders - 占位符
      Returns:
      居中的 SmartString
    • getPlainMessage

      public String getPlainMessage(T key, Object... placeholders)
      获取去除格式的纯文本消息
      Parameters:
      key - 消息键
      placeholders - 占位符
      Returns:
      纯文本字符串
    • combineMessages

      public SmartString combineMessages(T... keys)
      组合多个消息
      Parameters:
      keys - 消息键数组
      Returns:
      组合后的 SmartString
    • joinMessages

      public SmartString joinMessages(String separator, T... keys)
      使用分隔符连接多个消息
      Parameters:
      separator - 分隔符
      keys - 消息键数组
      Returns:
      连接后的 SmartString
    • setMessage

      public void setMessage(T key, String message)
      设置消息
    • setMessageList

      public void setMessageList(T key, List<String> messages)
      设置消息列表
    • getSmartMessages

      public Map<T,SmartString> getSmartMessages(T... keys)
      批量获取消息
    • getMessages

      public Map<T,String> getMessages(T... keys)
      批量获取传统字符串消息
    • ensureDefaults

      public void ensureDefaults()
      确保所有默认消息存在于配置文件中