资源包预览管理

资源包预览管理用来维护资源包在主站展示的物品纹理预览。主站资源详情页会显示一组物品图标,用户可以按注册名查看对应的游戏内纹理,这份映射就存在这里。

入口在侧边栏「资源包预览管理」,路径 /3_rpvm。

精英工匠及以上能进入,不受管辖区限制。

整体布局

页面分左右两栏。

左栏是资源包列表,顶部有一个搜索框,按资源包名或 ID 过滤。每项显示资源包名、物品数量、资源包 ID。正在编辑的资源包左侧带一条高亮竖线。

右栏是物品网格,显示当前资源包下的所有物品。每个物品以卡片呈现,卡片上半部分是纹理预览图,下半部分是物品名和注册名,右上角有删除按钮。

页面顶部右侧有一个任务徽标,显示正在运行的上传任务数量。点它打开任务管理器。

物品网格

物品按注册名排序。每张卡片显示以下内容。

纹理预览是后台存储的图片,尺寸较小,用于在主站资源页快速展示。

物品名是中文显示名,用户可以自定义。

注册名是游戏内的物品标识,通常是 minecraft:xxx 这种格式,作为映射的唯一键。

图片缺失或加载失败时,卡片显示灰色占位图标。

物品数量较多时,网格底部出现分页控件,每页 20 个,可以翻页和直接跳页。

搜索物品

右栏工具栏有搜索框,按物品名或注册名模糊匹配。输入后回车或短暂延迟后自动查询。

搜索状态下分页基于过滤后的结果。

删除单个物品

点击物品卡片右上角的删除按钮,二次确认后删除。

删除会同时做两件事:从后台存储删除对应的纹理图片;从资源包的纹理映射中移除该物品。两者任一失败会返回错误,但已执行的部分不会回滚。

删除不可恢复。若误删需要重新上传纹理并填写信息。

删除全部物品

右栏工具栏有「删除全部」按钮,用于清空当前资源包的所有物品。

点击后弹出的确认框要求手动输入「确认删除」四个字。输入不一致则取消操作。这一设计是为了避免误触。

确认后,后台会遍历所有物品,逐个删除对应纹理图片,最后清空资源包的纹理映射。删除过程中显示进度。删除完成后,物品数量归零。

此操作不可恢复,删除前应确认不再需要这批预览图。

批量上传

资源包预览支持通过 JSON 文件批量导入纹理。

点右栏工具栏的「上传」按钮展开上传面板。面板可拖拽上边缘调整高度,高度会被记住。

上传面板包含以下内容。

JSON 文件是必填项,格式为一个数组,每个元素是一个对象,包含物品的纹理数据和描述信息。数组元素的字段名不固定,由提交方决定。

字段映射是将 JSON 字段与后台字段对应的配置。选中 JSON 文件后,后台会读取第一个元素的字段名,填充到三个下拉框中。

图片字段选择 JSON 中存放纹理数据的字段。纹理数据可以是 data URI,也可以是 base64 编码的图片数据。

中文名选择 JSON 中存放物品显示名的字段。

注册名选择 JSON 中存放游戏内标识的字段。

冲突处理有两个选项。覆盖表示注册名已存在时用新数据替换;跳过表示注册名已存在时保留原数据。默认覆盖。

字段映射和冲突处理在上传前可随时调整,调整后不影响已解析的 JSON 数据。

批量上传流程

点「开始上传」后,后台按以下步骤处理。

解析 JSON 中的每个元素,按字段映射提取纹理、物品名、注册名。缺少任一字段的元素会被跳过。

对每个有效元素,先检查注册名是否已存在于该资源包下。存在且冲突处理为跳过时,该元素跳过。存在且冲突处理为覆盖时,进入上传流程。不存在则进入上传流程。

纹理数据被处理成图片文件上传到图片服务,存储路径为 resource/rppw/{资源包ID}/,文件名为注册名的哈希值。

上传成功后,更新资源包的纹理映射。

整个过程作为一个任务运行,可以在任务管理器里查看进度、成功数、失败数和日志。任务运行中可以随时停止,已处理的物品保留,未处理的跳过。

任务管理器

点页面右上角的任务徽标打开。

每个任务记录资源包、物品总数、已处理数、成功数、失败数、最近一条日志。任务状态分运行中、已停止、已完成四种。

运行中的任务可以停止。已停止或已完成的任务可以移除。

任务徽标只显示运行中的任务数量。

与主站资源页的联动

资源包纹理映射变更后,主站资源页的预览区域会立即反映变化。

新增的物品出现在预览区域中。

删除的物品从预览区域消失。

覆盖的物品纹理更新为最新版本。

主站资源页有缓存,若发现变化未生效,可让用户刷新页面。