类 ConfigManager

java.lang.Object
com.playerblocklife.ConfigManager

public class ConfigManager extends Object
配置管理器 - 负责加载、保存和管理插件的配置文件

主要功能包括:

  • 加载和验证配置文件
  • 配置版本检查和自动更新
  • 提供类型安全的配置项访问方法
  • 处理配置文件的保存和重载
  • 管理SkinsRestorer插件集成配置
  • 支持多种皮肤来源的优先级配置

SkinsRestorer配置支持:

  • skin.source:皮肤来源优先级(skinsrestorer/player_profile/local_cache)
  • skin.use-skinsrestorer:是否启用SkinsRestorer支持
  • skin.cache.expire_days:皮肤缓存过期时间
  • 默认配置已优化,优先使用SkinsRestorer以支持离线服务器
从以下版本开始:
1.0.0
  • 构造器详细资料

    • ConfigManager

      public ConfigManager(PlayerBlockLife plugin)
      构造一个新的配置管理器
      参数:
      plugin - 插件主类实例,用于访问插件相关功能
  • 方法详细资料

    • loadConfig

      public void loadConfig()
      加载插件配置

      执行以下操作:

      1. 确保插件数据文件夹存在
      2. 如果配置文件不存在,从JAR中复制默认配置
      3. 调用reloadConfig()重新加载配置
      另请参阅:
    • reloadConfig

      public void reloadConfig()
      重新加载配置文件

      执行以下操作:

      1. 从磁盘重新加载配置文件
      2. 加载JAR中的默认配置作为后备
      3. 检查配置版本并进行必要的更新
      另请参阅:
      • checkConfigVersion()
    • saveConfig

      public void saveConfig()
      保存当前配置到文件

      将内存中的配置数据写入到config.yml文件中。 如果保存失败,会记录错误日志。

      抛出:
      IOException - 如果文件写入失败
    • getConfig

      public org.bukkit.configuration.file.FileConfiguration getConfig()
      获取配置对象

      如果配置对象为null,会自动调用reloadConfig()加载配置。

      返回:
      当前的FileConfiguration配置对象
      另请参阅:
    • getBlocksPerPlayer

      public int getBlocksPerPlayer()
    • getSpreadRange

      public int getSpreadRange()
    • getMinDistance

      public int getMinDistance()
    • getDepth

      public int getDepth()
    • getBlockMaterial

      public String getBlockMaterial()
      获取方块材质配置
      返回:
      方块材质配置值,默认为"player_head"
    • isDieWhenBlocksGone

      public boolean isDieWhenBlocksGone()
      检查玩家方块被挖光时是否死亡
      返回:
      如果玩家方块被挖光时死亡则返回true,否则返回false
    • isBecomeSpectator

      public boolean isBecomeSpectator()
      检查玩家死亡后是否成为观察者
      返回:
      如果玩家死亡后成为观察者则返回true,否则返回false
    • isHealthSystemEnabled

      public boolean isHealthSystemEnabled()
      检查是否启用生命值系统
      返回:
      如果启用生命值系统则返回true,否则返回false
    • isSkinSystemEnabled

      public boolean isSkinSystemEnabled()
      检查是否启用皮肤系统
      返回:
      如果启用皮肤系统则返回true,否则返回false
    • getSkinSource

      public String getSkinSource()
      获取皮肤来源配置

      支持的皮肤来源:

      • skinsrestorer:优先从SkinsRestorer插件获取皮肤纹理数据
        • 推荐用于离线服务器
        • 支持玩家自定义皮肤
        • 避免默认Steve皮肤问题
      • player_profile:优先使用Bukkit的PlayerProfile API
        • 需要玩家在线验证
        • 适合在线服务器
        • 支持Mojang官方皮肤
      • local_cache:优先从本地缓存加载皮肤数据
        • 减少网络请求
        • 提高加载速度
        • 支持离线使用

      默认配置已将此值设为"skinsrestorer",以优化离线服务器体验。

      返回:
      皮肤来源配置值
      另请参阅:
    • useSkinsRestorer

      public boolean useSkinsRestorer()
      检查是否启用SkinsRestorer插件支持

      当此方法返回true时,插件将:

      • 优先从SkinsRestorer插件获取玩家皮肤纹理
      • 支持离线服务器获取玩家自定义皮肤
      • 避免方块总是显示默认Steve皮肤的问题
      • 使用反射安全调用SkinsRestorer API,无需硬依赖

      默认配置已将此值设为true,以优化离线服务器体验。

      返回:
      如果启用SkinsRestorer支持返回true,否则返回false
      另请参阅:
    • getCacheExpireDays

      public int getCacheExpireDays()
      获取皮肤缓存过期天数
      返回:
      皮肤缓存过期天数,默认为7天
    • isAutoSaveEnabled

      public boolean isAutoSaveEnabled()
      检查是否启用自动保存
      返回:
      如果启用自动保存则返回true,否则返回false
    • getAutoSaveInterval

      public int getAutoSaveInterval()
      获取自动保存间隔
      返回:
      自动保存间隔(秒),默认为300秒(5分钟)
    • getStorageType

      public String getStorageType()
      获取存储类型配置
      返回:
      存储类型配置值,默认为"yaml"
    • isBroadcastOnBlockBreak

      public boolean isBroadcastOnBlockBreak()
      检查是否在方块被破坏时广播消息
      返回:
      如果在方块被破坏时广播消息则返回true,否则返回false
    • isBroadcastOnPlayerDeath

      public boolean isBroadcastOnPlayerDeath()
      检查是否在玩家死亡时广播消息
      返回:
      如果在玩家死亡时广播消息则返回true,否则返回false
    • getBroadcastRange

      public int getBroadcastRange()
      获取广播范围
      返回:
      广播范围(方块),默认为30
    • isGiveExpReward

      public boolean isGiveExpReward()
      检查是否给予挖掘奖励经验
      返回:
      如果给予挖掘奖励经验则返回true,否则返回false
    • getExpRewardAmount

      public int getExpRewardAmount()
      获取奖励经验数量
      返回:
      奖励经验数量,默认为5
    • isProtectFromExplosions

      public boolean isProtectFromExplosions()
      检查是否保护方块免受爆炸破坏
      返回:
      如果保护方块免受爆炸破坏则返回true,否则返回false
    • isProtectFromFire

      public boolean isProtectFromFire()
      检查是否保护方块免受火灾破坏
      返回:
      如果保护方块免受火灾破坏则返回true,否则返回false
    • isProtectFromPistons

      public boolean isProtectFromPistons()
      检查是否保护方块免受活塞推动
      返回:
      如果保护方块免受活塞推动则返回true,否则返回false
    • isAutoGenerationEnabled

      public boolean isAutoGenerationEnabled()
      检查是否启用自动生成
      返回:
      如果启用自动生成则返回true,否则返回false
    • isRequireOpenSky

      public boolean isRequireOpenSky()
      检查是否需要开放天空
      返回:
      如果需要开放天空则返回true,否则返回false
    • getMaxAttempts

      public int getMaxAttempts()
      获取最大尝试次数
      返回:
      最大尝试次数,默认为50
    • getOnFailureAction

      public String getOnFailureAction()
      获取失败时的处理方式
      返回:
      失败时的处理方式,默认为"notify"
    • isCommandEnabled

      public boolean isCommandEnabled(String commandName)
      检查命令是否启用
      参数:
      commandName - 命令名称
      返回:
      如果命令启用则返回true,否则返回false
    • isSelfUseAllowed

      public boolean isSelfUseAllowed(String commandName)
      检查是否允许玩家自己使用命令
      参数:
      commandName - 命令名称
      返回:
      如果允许玩家自己使用命令则返回true,否则返回false
    • isAdminUseAllowed

      public boolean isAdminUseAllowed(String commandName)
      检查是否允许管理员使用命令
      参数:
      commandName - 命令名称
      返回:
      如果允许管理员使用命令则返回true,否则返回false
    • isAdminOnly

      public boolean isAdminOnly(String commandName)
      检查命令是否仅管理员可用
      参数:
      commandName - 命令名称
      返回:
      如果命令仅管理员可用则返回true,否则返回false
    • useExternalMessageFile

      public boolean useExternalMessageFile()
      检查是否使用外部消息文件
      返回:
      如果使用外部消息文件则返回true,否则返回false
    • getExternalMessageFileName

      public String getExternalMessageFileName()
      获取外部消息文件名
      返回:
      外部消息文件名,默认为"messages.yml"
    • getMessage

      public String getMessage(String path, String defaultValue)
      获取消息
      参数:
      path - 消息路径
      defaultValue - 默认值
      返回:
      消息内容