WSkinLoader

WSkinLoader

An offline skin patch for Minecraft that allows offline players to load custom skins and capes while maintaining compatibility with the official skin system for premium players./一个用于 Minecraft 的离线皮肤补丁,允许离线玩家加载自定义皮肤和披风,同时保持对正版玩家官方皮肤系统的兼容。

工具

WSkinLoader

一个 Minecraft Fabric 模组,支持为 离线玩家加载自定义皮肤和披风,同时保持 正版玩家使用 Mojang 官方皮肤系统。


功能特性

  • ✅ 正版玩家使用 Mojang 官方皮肤系统
  • ✅ 离线玩家从自定义 API 加载皮肤和披风
  • ✅ 支持多个 API 源并按顺序回退加载
  • ✅ 通过 Cloth Config API 提供图形化配置界面
  • ✅ 支持 ModMenu 集成
  • ✅ 支持玩家级别的覆盖配置
  • ✅ 混合模式:正版皮肤 + 第三方披风(或反之)
  • ✅ Tab 列表中显示玩家头像(支持多人服务器)
  • ✅ 玩家头颅显示自定义皮肤

默认配置

默认使用 LittleSkin 作为皮肤源。

皮肤

https://littleskin.cn/skin/%name%.png

披风

https://littleskin.cn/cape/%name%.png

%name% 会被自动替换为玩家名。


配置方法

游戏内配置(推荐)

  1. 安装 ModMenu
  2. 进入 主菜单 → Mods → WSkinLoader → 配置
  3. 在配置界面中添加、删除或修改 API 地址
  4. 在 玩家覆盖(Player Overrides) 标签页中配置特定玩家

通过配置文件

配置文件路径:

.minecraft/config/wskinloader.json

基础配置

{
  "skinUrls": [
    "https://littleskin.cn/skin/%name%.png",
    "https://example.com/skins/%name%.png"
  ],
  "capeUrls": [
    "https://littleskin.cn/cape/%name%.png"
  ],
  "enableTabListHeads": true
}

配置字段

  • enableTabListHeads 是否在 Tab 玩家列表中显示玩家头像。 默认值:true。

高级配置

玩家覆盖配置(Player Overrides)

可以为特定玩家设置独立规则。

{
  "skinUrls": ["https://littleskin.cn/skin/%name%.png"],
  "capeUrls": ["https://littleskin.cn/cape/%name%.png"],
  "playerOverrides": {
    "PlayerName": {
      "skipPremiumCheck": true,
      "skin": {
        "useCustomApi": true,
        "apiIndex": 0
      },
      "cape": {
        "useCustomApi": true,
        "apiIndex": -1
      }
    },
    "AnotherPlayer": {
      "skipPremiumCheck": false,
      "skin": {
        "useCustomApi": true,
        "apiIndex": 0
      },
      "cape": {
        "useCustomApi": false
      }
    }
  }
}

字段说明

skipPremiumCheck 是否跳过 Mojang 正版检测。 true = 始终使用自定义 API。

skin.useCustomApi 皮肤是否使用自定义 API。 false = 使用 Mojang 官方皮肤。

skin.apiIndex

  • 0 → 第一个 API
  • 1 → 第二个 API
  • -1 → 按顺序尝试所有 API

cape.useCustomApi 披风是否使用自定义 API。


使用场景示例

正版玩家强制使用第三方皮肤

"PlayerName": {
  "skipPremiumCheck": true,
  "skin": { "useCustomApi": true, "apiIndex": 0 },
  "cape": { "useCustomApi": true, "apiIndex": 0 }
}

混合模式

正版皮肤 + 自定义披风

"PlayerName": {
  "skipPremiumCheck": false,
  "skin": { "useCustomApi": false },
  "cape": { "useCustomApi": true, "apiIndex": 0 }
}

使用指定的 API

"PlayerName": {
  "skipPremiumCheck": true,
  "skin": { "useCustomApi": true, "apiIndex": 1 },
  "cape": { "useCustomApi": true, "apiIndex": 1 }
}

工作原理

皮肤加载流程

  1. 当 Minecraft 尝试加载玩家皮肤时,模组会首先查询 Mojang API:
https://api.mojang.com/users/profiles/minecraft/{name}
  1. 正版玩家
  • 模组会直接查询 Mojang Session Server:
https://sessionserver.mojang.com/session/minecraft/profile/{UUID}
  • 获取真实的皮肤与披风 URL
  • 下载并缓存到本地。
  1. 离线玩家
  • 模组会按配置的顺序尝试自定义 API URL。
  1. 下载后的材质会缓存到 SkinCache 中。

  2. 如果所有来源都失败,则使用 Minecraft 默认皮肤。


Tab 列表玩家头像

玩家类型判断:

  • HTTP 200 → 正版玩家
  • HTTP 404 → 离线玩家

对于正版玩家,模组会直接从 Mojang Session Server 获取皮肤和披风 URL 并立即下载,从而确保在 Tab 列表中显示正确的头像材质,而无需等待原版逻辑。