0.1.8 • Published 6 months ago

koishi-plugin-mcrenderskin-custplugin v0.1.8

Weekly downloads
-
License
MIT
Repository
-
Last release
6 months ago

koishi-plugin-mcrenderskin-custplugin

npm

一个基于skinView3D.js的Minecraft玩家皮肤渲染的Koishi插件

alt text

Changelog

v0.1.8

修复

  • 渲染分辨率缺省分辨率720P导致与默认分辨率360P不匹配的问题

v0.1.7

修复

  • 渲染分辨率设置覆盖Puppeteer分辨率设置从而影响 所有使用Puppeteer服务的插件 的问题

修改

  • 渲染分辨率选择

    分辨率完整分辨率图像质量渲染速度瞬时内存
    360P542 x 360一般极快极低
    720P1082 x 720
    1440P2160 x 1440较好
    2200P3280 x 2200极好极慢极高

修改

v0.1.6

新增

  • 渲染分辨率选择
    1. 360P(渲染速度最快,内存占用低)
    2. 720P(渲染速度一般,内存占用一般)
    3. 1080P(渲染速度最慢,内存占用较高)
  • 插件文档说明

修复

  • Docker用户无法渲染解决方案 (方案可见文末针对Docker用户的渲染方案)

v0.1.5

新增

  • 超时设置项,默认值:5000ms

修复

  • 因渲染错误导致的页面未关闭所造成的资源浪费

PS

  • Docker用户无法渲染暂定解决方案
    1. 尝试 升级/更换 浏览器可执行文件
    2. 尝试更换Docker底层系统
    3. 尝试使用非Docker方案

v0.1.4

修复

  • 渲染图无法加载Minecraft字体的问题

优化

  • 精简部分设置

v0.1.3

修复

  • 本插件无法在指令管理界面设置别名和等级权限的问题

未修复

  • Docker用户的Puppeteer环境下无法渲染HTML(尽快修复)

新增

  • 可针对皮肤和披风使用 ctx.http 进行下载,同时减少网络问题并解决渲染顺序问题(默认值:关闭)

修改

  • 修改触发指令#MCRMCR
  • 指令的别名与等级设置均交予指令管理界面进行设置
  • HTML内加载渲染图所需的 skinview3d.js 本地化,进一步减少网络的影响
  • Koishi的权限系统消息提示由自定义消息提示改为官方消息提示

v0.1.2

修复

  • HTML渲染前未经等待而提前尝试渲染将导致未知错误

未修复

  • Docker用户的Puppeteer环境下无法渲染HTML(尽快修复)

v0.1.1

修复

  • 玩家名称的大小写对应的问题
  • 当网络无法连接到Mojang时的具体告知信息
  • 通过HTML渲染时发生错误时的具体告知信息

新增

  • 自定义壁纸选项,可支持以如下方式注入壁纸:

    1. 图片链接
    2. Base64
    3. 路径 (建议绝对路径,相对路径根目录一般在插件目录)
  • 复写部分依赖(Puppeteer)的设置,可设置如下项目:

    1. enableHeadLess 无头模式。
    2. initWidth 视图宽度。
    3. initHeight 视图高度。
    4. initScale 设备缩放比率。
    5. ignoreHttpErr 忽略 HTTPS 错误。

      此处的设置优先级将高于Puppeteer。 建议有需要再调整此处参数,此处参数已是最佳。

修改

  • md文档内放置大图片导致打包体积过大的问题,现更换为小图片

v0.1.0

发布

  • 支持渲染 指定玩家 的皮肤和披风(如果有)
  • 支持简单的Koishi的权限系统,默认为1级
  • 支持渲染的开关设置,需要手动去设置启用
  • 支持渲染的别名设置,默认为#MCRmcrender
  • 支持设置缺省玩家名称
  • 内置三个披风源
    1. 官方源
    2. Optifine Cape源
    3. Minecraftcapes源
  • 支持设置画布宽高,优先级高于Puppeteer (默认1640x1100)

Command

HelpMenu

MCR -h

>> MCR -h
指令:#mcr <玩家名称>
别名:mcrender。
可用的选项有:
    --<玩家名称>  待渲染的玩家ID(默认值:steve)

Alias -> Cust CommandName

mcrender -h

>> mcrender -h
指令:#mcr <玩家名称>
别名:mcrender。
可用的选项有:
    --<玩家名称>  待渲染的玩家ID(默认值:steve)

Warning

  • 启用插件前,请先启用并设置好依赖插件 Puppeteer ,并确保其能正常运行。
  • 使用插件前,先填写并设置好所需信息。
  • 此插件依赖于Mojang的API,通信很可能受到 地区等 影响 (如果发生未知错误可大胆怀疑是 网络问题 )

运行日志

当出现类似如下日志时,Puppeteer 则为运行成功。

2024-07-04 17:21:01 [I] puppeteer chrome executable found at C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
2024-12-21 16:50:54 [I] puppeteer chrome executable found at /usr/bin/chromium

若设置Puppeteer出现问题,可 点击此处 查询puppeteer文档。

依赖设置(已移除该项设置)

此处依赖设置均部分复写自 Puppeteer ,仅针对当前插件生效。

1. enableHeadLess 是否开启无头模式。(默认值:开启)

2. initWitdh 默认的视图宽度。(默认值:1640)

3. initHeight 默认的视图高度。(默认值:1100)

4. initScale 默认的设备缩放比率。(默认值:2)

5. ignoreHttpErr 在导航时忽略 HTTPS 错误。(默认值:关闭)

注意:此处参数已是最佳,若有需要再自行调整。

常规设置

  1. enableRender 指令 <​​​​​MCR> 的总开关。(默认值:关闭)

  2. initName 指令 <​​​​​MCR> 的缺省玩家名称。(默认值:steve)

  3. renderSize 指定渲染的分辨率。(分辨率越高所需时间越长) 选择如下: | 分辨率 | 完整分辨率 | 图像质量 | 渲染速度 | 瞬时内存 | | ----- | ----- | ------ | ------ | ------ | | 360P | 542 x 360 | 一般 | 极快 | 极低 | | 720P | 1082 x 720 | 好 | 快 | 低 | | 1440P | 2160 x 1440 | 较好 | 慢 | 高 | | 2200P | 3280 x 2200 | 极好 | 极慢 | 极高 |

  4. trySkinBase64 尝试使用Koishi的 ctx.http 请求下载皮肤,而不是用链接加载

  5. tryCapeBase64 尝试使用Koishi的 ctx.http 请求下载披风,而不是用链接加载

  6. wallPaper 自定义渲染的背景,支持base64、链接和绝对路径。

  7. renderTimeOut 渲染超时时长,默认值为5000ms 。

Usage

以下是所有命令的使用方法,请自行翻阅。

Minecraft 玩家皮肤渲染

MCR <玩家名称>

成功状态

>> MCR steve

alt text

失败状态

名称不存在

>> MCR dandjashdnjaod
无法获取dandjashdnjaod的UUID
  • 可能原因:玩家不存在、网络设置问题

档案未生效

>> MCR dandjashdnjaod
无法获取dandjashdnjaod的PROFILE
  • 可能原因:玩家信息未更新、网络设置问题

渲染失败

>> MCR dandjashdnjaod
渲染dandjashdnjaod时
发生错误如下:xxxx
请检查网络通信
  • 可能原因:网络设置问题

Docker用户无法渲染问题

  • 原因:Koishi官方提供的Docker镜像(底层系统:Alpine)中的 Chromium 并不支持 WebGL。
  • 解决方案:更换 chromium 为 chromium-swiftshader。
  • 备注:该方案可能有风险,如有必要,请自行备份容器。
  • 方案一:直接进入容器内进行更换

    1. 使用指令先查看koishi镜像对应的容器ID
      docker ps
    2. 使用指令进入到容器内
      docker exec -it <container_id> bash
    3. 容器内使用相关指令更换 chromium
      • 卸载自带的 chromium
        apk del chromium
      • 为 Alpine 换源
        sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
      • 更新 Alpine 源
        apk update
      • 安装 chromium-swiftshader
        apk add chromium-swiftshader
    4. 重新启用Puppeteer插件
  • 方案二:在容器外进行更换

    1. 使用指令先查看koishi镜像对应的容器ID
      docker ps
    2. 容器外使用相关指令更换 chromium 卸载自带的 chromium
      docker exec -it <CONTAINER_ID> apk del chromium
      为 Alpine 换源
      docker exec -it <CONTAINER_ID> sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
      更新 Alpine 源
      docker exec -it <CONTAINER_ID> apk update
      安装 chromium-swiftshader
      docker exec -it <CONTAINER_ID> apk add chromium-swiftshader
    3. 重新启用Puppeteer插件
  • 方案三:使用koishi插件进行更换

    1. 安装并开启koishi-plugin-spawn插件。(该插件拥有的权限极高,建议用完就关闭该插件)
    2. 使用一个四级用户进行如下操作。(沙盒用户也可以)
      • 卸载自带的 chromium
        exec apk del chromium
      • 为 Alpine 换源
        exec sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
      • 更新 Alpine 源
        exec apk update
      • 安装 chromium-swiftshader
        exec apk add chromium-swiftshader
    3. 重新启用Puppeteer插件

End

  • 都看到这了不得去试一下? -- Aegiszhy
0.1.8

6 months ago

0.1.7

6 months ago

0.1.6

7 months ago

0.1.5

10 months ago

0.1.4

12 months ago

0.1.3

12 months ago

0.1.2

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago