类 SkinManager

java.lang.Object
com.playerblocklife.SkinManager

public class SkinManager extends Object
皮肤管理器 - 负责玩家皮肤的获取、缓存和应用

主要功能:

  • 从多种来源获取玩家皮肤数据(SkinsRestorer插件、PlayerProfile、本地缓存)
  • 皮肤数据Base64编码和缓存管理
  • 自定义模型数据分配和管理
  • 异步皮肤加载避免阻塞主线程
  • 皮肤缓存过期清理
  • 完整的SkinsRestorer插件集成支持

皮肤获取优先级(根据配置的source字段):

  1. skinsrestorer:优先从SkinsRestorer插件获取皮肤纹理数据
  2. player_profile:优先使用Bukkit的PlayerProfile API
  3. local_cache:优先从本地缓存加载
  4. 默认Steve皮肤(所有来源都失败时的备用)

SkinsRestorer集成特性:

  • 自动检测SkinsRestorer插件是否安装
  • 使用反射安全调用SkinsRestorer API,避免硬依赖
  • 获取完整的皮肤纹理数据(value和signature)
  • 支持离线服务器,避免默认Steve皮肤问题
  • 优雅降级:SkinsRestorer失败时自动回退到其他来源

皮肤缓存默认保留7天,过期后自动重新获取。

从以下版本开始:
1.0.0
  • 构造器详细资料

  • 方法详细资料

    • loadAllSkins

      public void loadAllSkins()
    • loadPlayerSkinAsync

      public void loadPlayerSkinAsync(org.bukkit.entity.Player player)
    • createPlayerHead

      public org.bukkit.inventory.ItemStack createPlayerHead(UUID playerId, String playerName)
      创建带有玩家皮肤的头颅物品

      使用Base64纹理数据创建自定义玩家头颅,支持离线服务器皮肤显示。

      参数:
      playerId - 玩家UUID
      playerName - 玩家名称
      返回:
      带有玩家皮肤的玩家头颅物品
    • isSkinLoaded

      public boolean isSkinLoaded(UUID playerId)
    • getCustomModelData

      public Integer getCustomModelData(UUID playerId)
    • getAllSkinData

      public Map<UUID,String> getAllSkinData()
    • getAllCustomModelData

      public Map<UUID,Integer> getAllCustomModelData()
    • saveSkinData

      public void saveSkinData()
    • cleanupOldCache

      public void cleanupOldCache()