koishi-plugin-mcrenderskin-custplugin v0.1.8
koishi-plugin-mcrenderskin-custplugin
一个基于skinView3D.js的Minecraft玩家皮肤渲染的Koishi插件
Changelog
v0.1.8
修复
- 渲染分辨率缺省分辨率720P导致与默认分辨率360P不匹配的问题
v0.1.7
修复
- 渲染分辨率设置覆盖Puppeteer分辨率设置从而影响 所有使用Puppeteer服务的插件 的问题
修改
渲染分辨率选择
分辨率 完整分辨率 图像质量 渲染速度 瞬时内存 360P 542 x 360 一般 极快 极低 720P 1082 x 720 好 快 低 1440P 2160 x 1440 较好 慢 高 2200P 3280 x 2200 极好 极慢 极高
修改
v0.1.6
新增
- 渲染分辨率选择
- 360P(渲染速度最快,内存占用低)
- 720P(渲染速度一般,内存占用一般)
- 1080P(渲染速度最慢,内存占用较高)
- 插件文档说明
修复
- Docker用户无法渲染解决方案 (方案可见文末针对Docker用户的渲染方案)
v0.1.5
新增
- 超时设置项,默认值:5000ms
修复
- 因渲染错误导致的页面未关闭所造成的资源浪费
PS
- Docker用户无法渲染暂定解决方案
- 尝试 升级/更换 浏览器可执行文件
- 尝试更换Docker底层系统
- 尝试使用非Docker方案
v0.1.4
修复
- 渲染图无法加载Minecraft字体的问题
优化
- 精简部分设置
v0.1.3
修复
- 本插件无法在指令管理界面设置别名和等级权限的问题
未修复
- Docker用户的Puppeteer环境下无法渲染HTML(尽快修复)
新增
- 可针对皮肤和披风使用
ctx.http
进行下载,同时减少网络问题并解决渲染顺序问题(默认值:关闭)
修改
- 修改触发指令
#MCR
为MCR
- 指令的别名与等级设置均交予指令管理界面进行设置
- HTML内加载渲染图所需的 skinview3d.js 本地化,进一步减少网络的影响
- Koishi的权限系统消息提示由自定义消息提示改为官方消息提示
v0.1.2
修复
- HTML渲染前未经等待而提前尝试渲染将导致未知错误
未修复
- Docker用户的Puppeteer环境下无法渲染HTML(尽快修复)
v0.1.1
修复
- 玩家名称的大小写对应的问题
- 当网络无法连接到Mojang时的具体告知信息
- 通过HTML渲染时发生错误时的具体告知信息
新增
自定义壁纸选项,可支持以如下方式注入壁纸:
- 图片链接
- Base64
- 路径 (建议绝对路径,相对路径根目录一般在插件目录)
复写部分依赖(Puppeteer)的设置,可设置如下项目:
enableHeadLess
无头模式。initWidth
视图宽度。initHeight
视图高度。initScale
设备缩放比率。ignoreHttpErr
忽略 HTTPS 错误。此处的设置优先级将高于Puppeteer。 建议有需要再调整此处参数,此处参数已是最佳。
修改
- md文档内放置大图片导致打包体积过大的问题,现更换为小图片
v0.1.0
发布
- 支持渲染 指定玩家 的皮肤和披风(如果有)
- 支持简单的Koishi的权限系统,默认为1级
- 支持渲染的开关设置,需要手动去设置启用
- 支持渲染的别名设置,默认为
#MCR
和mcrender
- 支持设置缺省玩家名称
- 内置三个披风源
- 官方源
- Optifine Cape源
- 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 错误。(默认值:关闭)
注意:此处参数已是最佳,若有需要再自行调整。
常规设置
enableRender
指令 <MCR> 的总开关。(默认值:关闭)initName
指令 <MCR> 的缺省玩家名称。(默认值:steve)renderSize
指定渲染的分辨率。(分辨率越高所需时间越长) 选择如下: | 分辨率 | 完整分辨率 | 图像质量 | 渲染速度 | 瞬时内存 | | ----- | ----- | ------ | ------ | ------ | | 360P | 542 x 360 | 一般 | 极快 | 极低 | | 720P | 1082 x 720 | 好 | 快 | 低 | | 1440P | 2160 x 1440 | 较好 | 慢 | 高 | | 2200P | 3280 x 2200 | 极好 | 极慢 | 极高 |trySkinBase64
尝试使用Koishi的ctx.http
请求下载皮肤,而不是用链接加载tryCapeBase64
尝试使用Koishi的ctx.http
请求下载披风,而不是用链接加载wallPaper
自定义渲染的背景,支持base64、链接和绝对路径。renderTimeOut
渲染超时时长,默认值为5000ms 。
Usage
以下是所有命令的使用方法,请自行翻阅。
Minecraft 玩家皮肤渲染
MCR
<玩家名称>
成功状态
>> MCR steve
失败状态
名称不存在
>> MCR dandjashdnjaod
无法获取dandjashdnjaod的UUID
- 可能原因:玩家不存在、网络设置问题
档案未生效
>> MCR dandjashdnjaod
无法获取dandjashdnjaod的PROFILE
- 可能原因:玩家信息未更新、网络设置问题
渲染失败
>> MCR dandjashdnjaod
渲染dandjashdnjaod时
发生错误如下:xxxx
请检查网络通信
- 可能原因:网络设置问题
Docker用户无法渲染问题
- 原因:Koishi官方提供的Docker镜像(底层系统:Alpine)中的 Chromium 并不支持 WebGL。
- 解决方案:更换 chromium 为 chromium-swiftshader。
- 备注:该方案可能有风险,如有必要,请自行备份容器。
方案一:直接进入容器内进行更换
- 使用指令先查看koishi镜像对应的容器ID
docker ps
- 使用指令进入到容器内
docker exec -it <container_id> bash
- 容器内使用相关指令更换 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
- 卸载自带的 chromium
- 重新启用Puppeteer插件
- 使用指令先查看koishi镜像对应的容器ID
方案二:在容器外进行更换
- 使用指令先查看koishi镜像对应的容器ID
docker ps
- 容器外使用相关指令更换 chromium
卸载自带的 chromium
为 Alpine 换源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
安装 chromium-swiftshaderdocker exec -it <CONTAINER_ID> apk update
docker exec -it <CONTAINER_ID> apk add chromium-swiftshader
- 重新启用Puppeteer插件
- 使用指令先查看koishi镜像对应的容器ID
方案三:使用koishi插件进行更换
- 安装并开启koishi-plugin-spawn插件。(该插件拥有的权限极高,建议用完就关闭该插件)
- 使用一个四级用户进行如下操作。(沙盒用户也可以)
- 卸载自带的 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
- 卸载自带的 chromium
- 重新启用Puppeteer插件
End
- 都看到这了不得去试一下? -- Aegiszhy