龙核资源
LyArmourersWardrobe 提供配套的 DragonCore 衣橱界面与客户端贴图。界面用于展示玩家模型、时装列表、当前搭配、筛选条件、搜索框、分页按钮和五套穿戴预设,并通过 DragonCore 自定义发包与服务端同步数据。
本页记录资源放置方式、界面交互协议和自定义界面时必须保留的内容。发包对应的界面名称固定为 时装衣橱,自定义文件时不要修改该界面名称。
依赖说明
| 插件 | 用途 | 说明 |
|---|---|---|
| DragonCore | 加载衣橱 GUI、客户端槽位和自定义发包 | 未安装时无法使用衣橱界面。 |
| DragonArmourers | 获取时装类型并刷新玩家皮肤 | 未安装时无法正常注册、穿戴和显示时装。 |
PlaceholderAPI 和属性插件不影响衣橱界面的基础加载,不属于本页资源的必要依赖。
文件放置
| 压缩包文件 | 放置位置 | 说明 |
|---|---|---|
配置和贴图/时装衣橱.yml | plugins/DragonCore/Gui/时装衣橱.yml | 服务端 DragonCore 界面配置。 |
时装衣橱贴图 文件夹 | 客户端 DragonCore/gui/ 下 | 客户端界面贴图资源。 |
界面配置中使用了类似 GUI/时装衣橱贴图/底图.png 的资源路径。客户端实际目录、文件名、扩展名和大小写必须与界面配置完全一致。
界面功能
| 区域 | 功能 |
|---|---|
| 背景 | 显示衣橱主界面底图。 |
| 玩家模型 | 显示玩家当前外观,便于查看搭配结果。 |
| 时装列表 | 展示当前筛选条件下的时装,每页数量由服务端配置决定。 |
| 时装槽位 | 通过 DragonCore 客户端槽位显示时装物品或时装模型。 |
| 穿戴与试穿 | 已拥有时装显示为穿戴,未拥有时装显示为试穿。 |
| 当前搭配 | 显示武器、弓箭、套装、翅膀、帽子、上衣、裤子和鞋子槽位。 |
| 显示与隐藏 | 单独切换当前预设中某个时装部位的显示状态。 |
| 搭配详情 | 显示当前预设已穿戴的时装、品质、部位和隐藏状态。 |
| 类型筛选 | 按全部、武器、弓箭、套装、翅膀、帽子、上衣、裤子或鞋子筛选。 |
| 品质筛选 | 按 config.yml 中注册的品质等级筛选,或显示全部品质。 |
| 拥有筛选 | 按全部、已拥有或未拥有筛选。 |
| 搜索框 | 按时装显示名称的拼音进行匹配,输入中文或对应拼音均会转换后检索。 |
| 分页 | 切换筛选结果的上一页或下一页。 |
| 穿戴预设 | 在五套时装方案之间切换,每套方案分别保存穿戴和隐藏状态。 |
界面名称
服务端向 DragonCore 调用界面函数时使用固定名称:
text
时装衣橱/lysz open 同样会打开名为 时装衣橱 的 GUI。修改界面文件名或内部界面名称后,服务端仍会向原名称发送函数调用,导致界面无法打开或无法刷新。
打开初始化
界面打开时必须向服务端发送以下自定义数据包:
text
标识符:LyArmourersWardrobe
数据:初始化原界面对应的发包形式为:
text
LyArmourersWardrobe / 初始化服务端收到初始化发包后会执行以下操作:
- 为玩家新建筛选缓存。
- 将页码重置为第
1页。 - 清空八个当前穿戴槽位。
- 加载第一页时装列表。
- 创建当前穿戴槽位和显示隐藏按钮。
- 创建五个时装预设按钮。
- 创建类型、品质和拥有状态筛选按钮。
- 将当前预设中已经穿戴的时装重新写入客户端槽位。
自定义界面时,必须保留打开阶段的初始化发包。没有初始化发包时,筛选缓存不会创建,时装列表、筛选按钮、穿戴槽位和预设按钮也不会正常刷新。
发包规则
所有衣橱交互都使用以下标识符:
text
LyArmourersWardrobe数据列表中的第一项是操作名称,后续项目是操作参数。服务端会按照 config.yml 中的 packet-interval 限制玩家发包频率,间隔内重复发送的数据包会被忽略。
| 操作名称 | 参数 | 用途 |
|---|---|---|
初始化 | 无 | 初始化筛选缓存、列表、槽位、筛选按钮和预设按钮。 |
穿戴显示时装 | 时装 ID | 穿戴已拥有时装,或试穿未拥有时装。 |
脱下时装 | 时装类型 | 清空当前预设中指定部位的时装。 |
显示或隐藏时装 | 时装类型、组件 ID、目标隐藏状态 | 修改当前预设中指定部位的隐藏状态。目标状态可以传 true 或 false。 |
切换预设 | 预设索引 | 切换当前时装方案。现有界面使用索引 0 至 4。 |
上一页 | 页码文本组件 ID | 切换到上一页并修改指定页码组件。 |
下一页 | 页码文本组件 ID | 剩余结果足够时切换到下一页。 |
搜索时装 | 搜索内容 | 按时装名称拼音刷新筛选结果。 |
选择时装类型 | 类型 ID | 按时装类型刷新筛选结果。 |
选择是否拥有 | 拥有状态 ID | 按拥有状态刷新筛选结果。 |
选择时装品质 | 品质等级 | 按品质等级刷新筛选结果,-1 表示全部。 |
时装类型参数
| 类型 ID | 默认显示名称 |
|---|---|
sword | 武器 |
bow | 弓箭 |
outfit | 套装 |
wings | 翅膀 |
head | 帽子 |
chest | 上衣 |
legs | 裤子 |
feet | 鞋子 |
all | 全部,仅用于筛选 |
类型显示名称由服务端 config.yml 的 display-type 配置控制,但发包参数必须继续使用表中的英文类型 ID。
拥有状态参数
| 参数 | 含义 |
|---|---|
all | 显示全部时装。 |
owned | 只显示已经永久拥有或正在试穿的时装。 |
not_owned | 只显示当前没有使用权限的时装。 |
界面筛选判断使用玩家当前是否存在该时装权限,因此正在试穿的限时时装也会被视为已拥有。永久收集数量与此筛选规则不同,永久收集统计不会计算试穿时装。
品质参数
品质筛选参数是 config.yml 中 quality 节点的数字等级。例如品质等级 0、1、2 会分别发送对应数字字符串。
text
-1
0
1
2-1 表示不限制品质。品质等级应与服务端实际注册的品质配置保持一致。
穿戴与试穿交互
发送 穿戴显示时装 后,服务端会先根据 DragonArmourers 数据获取时装类型,并检查该时装是否已经在插件时装配置中注册。
- 玩家永久拥有该时装时,插件直接将时装写入当前预设对应部位。
- 玩家未拥有该时装时,插件检查试穿冷却,并在允许时授予限时权限。
- 试穿成功后,时装会立即穿戴并刷新当前列表。
- 同一部位已经穿戴相同时装时,不会重复处理。
- 试穿时装到期后会被移除,也会从所有预设中卸下。
- 试穿权限不会写入永久拥有列表,重新载入玩家数据时也不会恢复为永久时装。
试穿时装可以全局显示,但不会提供收集属性和穿戴属性。
当前穿戴槽位
服务端使用固定的 DragonCore 槽位标识同步当前预设:
| 时装类型 | 槽位标识 |
|---|---|
| 武器 | armourers_equip_sword |
| 弓箭 | armourers_equip_bow |
| 套装 | armourers_equip_outfit |
| 翅膀 | armourers_equip_wings |
| 帽子 | armourers_equip_head |
| 上衣 | armourers_equip_chest |
| 裤子 | armourers_equip_legs |
| 鞋子 | armourers_equip_feet |
自定义界面中的当前穿戴槽位必须使用这些标识,否则服务端写入的物品不会显示在对应组件中。
时装列表槽位
服务端为当前页中的时装生成以下槽位标识:
text
armourers_slot_0
armourers_slot_1
armourers_slot_2
...索引从 0 开始,每次翻页后继续复用当前页的槽位索引。单页时装数量由 config.yml 中的 file-armourers-amount 控制,默认资源按 24 个时装设计。
修改单页数量时,还需要同步调整 GUI 中列表布局和可容纳的槽位数量,否则可能出现服务端已发送时装,但界面没有对应组件的问题。
服务端调用的界面方法
服务端会主动向 时装衣橱 界面执行以下方法。重写 GUI 时必须保留同名方法,或者在新方法外保留兼容入口。
时装列表方法
| 方法名 | 参数 | 用途 |
|---|---|---|
清空组件_时装选择 | 无 | 在筛选或翻页前清空旧列表组件。 |
添加组件_时装选择贴图 | 列表索引、时装 ID、品质等级 | 添加时装列表底图或品质贴图。 |
添加组件_时装选择槽位 | 列表索引、时装 ID、品质等级 | 添加时装对应的 DragonCore 槽位。 |
添加组件_时装选择属性 | 列表索引、时装 ID、品质等级 | 添加时装属性或详情交互组件。 |
添加组件_时装选择显示 | 列表索引、时装 ID、按钮文本、品质等级 | 添加穿戴或试穿按钮。 |
添加组件_时装品质文本 | 列表索引、品质与部位文本、品质等级 | 显示时装品质和部位。 |
添加组件_时装名称文本 | 列表索引、时装名称、品质等级 | 显示时装名称。 |
服务器发送给 添加组件_时装选择显示 的按钮文本只有以下两种:
| 文本 | 条件 |
|---|---|
穿戴 | 玩家当前拥有该时装,包括正在试穿的时装。 |
试穿 | 玩家当前没有该时装的使用权限。 |
筛选方法
| 方法名 | 参数 | 用途 |
|---|---|---|
添加按钮_选择时装类型 | 按钮索引、类型 ID、显示文本 | 创建类型下拉选项。 |
组件修改_时装类型下拉框文本 | 显示文本 | 更新当前类型筛选文本。 |
添加按钮_选择是否拥有 | 按钮索引、状态 ID、显示文本 | 创建拥有状态下拉选项。 |
组件修改_是否拥有下拉框文本 | 显示文本 | 更新当前拥有状态文本。 |
添加按钮_选择时装品质 | 按钮索引、品质等级、显示文本 | 创建品质下拉选项。 |
组件修改_时装品质下拉框文本 | 显示文本 | 更新当前品质筛选文本。 |
筛选按钮文本由服务端配置中的 filter-button-text 生成。GUI 不需要自行拼接品质、类型或拥有状态名称,只需显示服务端传入的文本。
当前穿戴方法
| 方法名 | 参数 | 用途 |
|---|---|---|
添加组件_当前时装槽位 | 槽位索引、时装类型 | 创建八个当前穿戴槽位。 |
添加组件_隐藏时装按钮 | 槽位索引、时装类型、隐藏状态 | 创建每个部位的显示隐藏按钮。 |
组件修改_当前时装槽位隐藏 | 组件 ID | 将指定当前穿戴组件切换为隐藏状态。 |
组件修改_当前时装槽位显示 | 组件 ID | 将指定当前穿戴组件切换为显示状态。 |
显示隐藏操作只改变当前预设中的显示状态,不会移除槽位中的时装,也不会取消玩家对时装的拥有权限。
预设方法
| 方法名 | 参数 | 用途 |
|---|---|---|
添加按钮_时装预设分页 | 预设索引、显示文本 | 创建预设切换按钮。 |
服务端固定创建五套预设,索引为 0、1、2、3、4。当前预设的显示文本会带有 §a[当前] 前缀。
切换预设后,服务端会清空八个当前穿戴槽位,再写入新预设中的时装,并刷新隐藏按钮和搭配详情。
服务端直接修改的组件值
除执行界面方法外,服务端还会直接修改以下组件属性:
| 组件 | 属性 | 内容 |
|---|---|---|
搭配详情 | tip | 当前预设的品质、部位、时装名称和隐藏状态。 |
| 翻页发包传入的组件 ID | texts | 当前页码。 |
如果修改了搭配详情组件名称,需要保留名为 搭配详情 的兼容组件,否则服务端无法更新提示内容。
自定义界面注意事项
- 界面名称必须保留为
时装衣橱。 - 打开界面时必须发送
LyArmourersWardrobe / 初始化。 - 发包标识符必须使用
LyArmourersWardrobe,区分大小写修改可能导致服务端无法识别。 - 操作名称和参数顺序必须与本页表格一致。
- 当前穿戴槽位必须使用
armourers_equip_类型ID标识。 - 时装列表槽位必须使用
armourers_slot_索引标识。 - 服务端调用的界面方法需要保留原名称和参数顺序。
- 五套预设使用索引
0至4,不要向服务端发送不存在的预设索引。 - 页码从
1开始,时装槽位索引从0开始。 - 时装类型发包必须使用英文 ID,不要发送
config.yml中配置的中文显示名称。 - 修改单页槽位数量时,需要同时调整
file-armourers-amount和 GUI 列表布局。 - 输入文本、时装名称和服务端返回内容可能包含颜色符号,组件应允许正常显示 Minecraft 颜色文本。
DragonArmourers 冲突
插件配置明确提示,DragonCore 自带的 DragonArmourers 槽位可能与本插件的时装管理方式冲突。如果出现穿戴后频繁不生效、模型不显示或被其他槽位覆盖,可以检查 DragonCore 配置,并将其中的 DragonAmourers 设置为 false。
该调整会影响 DragonCore 自带的相关槽位功能,应根据服务器实际使用方式选择。LyArmourersWardrobe 使用自己的八个 armourers_equip_ 槽位维护当前预设。
贴图异常排查
- 确认服务端存在
plugins/DragonCore/Gui/时装衣橱.yml。 - 确认客户端已安装配套的
时装衣橱贴图文件夹。 - 检查客户端实际目录是否与
GUI/时装衣橱贴图/...路径一致。 - 检查文件名、扩展名和大小写是否与界面配置一致。
- 确认玩家使用的客户端资源中包含贴图,而不是只在服务端放置贴图。
- 更新资源后重载 DragonCore,必要时重新进入服务器或重启客户端。
界面无内容排查
| 现象 | 检查内容 |
|---|---|
| 界面能打开但没有时装 | 检查打开函数是否发送了 初始化,并确认时装已经在插件 armourers 目录中注册。 |
| 所有按钮点击无反应 | 检查发包标识符是否为 LyArmourersWardrobe,操作名称和参数顺序是否正确。 |
| 快速点击时部分操作无效 | 检查 packet-interval。服务端会忽略间隔内的重复发包。 |
| 当前穿戴槽位为空 | 检查槽位标识是否使用 armourers_equip_类型ID。 |
| 时装列表物品为空 | 检查槽位标识是否使用 armourers_slot_索引,并确认对应索引组件已经创建。 |
| 筛选后旧组件仍然存在 | 检查 清空组件_时装选择 方法是否存在并能清理动态组件。 |
| 筛选按钮没有文字 | 检查三个 组件修改_...下拉框文本 方法是否存在。 |
| 隐藏按钮状态不更新 | 检查 组件修改_当前时装槽位隐藏 和 组件修改_当前时装槽位显示 方法。 |
| 翻页后页码不变化 | 检查上一页、下一页发包中传入的组件 ID,以及该组件是否使用 texts 属性显示文本。 |
| 搜索不到中文时装 | 搜索按时装显示名称的拼音匹配,确认时装配置中的 name 正确且已经重载。 |
| 切换预设后外观不刷新 | 检查 DragonArmourers 是否正常加载,并排查 DragonCore 自带槽位冲突。 |
完整发包名称和参数也可参阅 发包与变量。