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

是否跳过正版检测。

true  = 直接使用自定义 API
false = 按正常流程检测正版

skin.useCustomApi

皮肤是否使用自定义 API。

false = 使用 Mojang 官方皮肤
true  = 使用自定义皮肤 API

skin.apiIndex

指定使用哪个 API。

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

cape.useCustomApi

披风是否使用自定义 API。

false = 使用官方披风
true  = 使用自定义披风

使用场景示例

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

"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 列表中立即显示正确的头像,而无需等待原版逻辑。