Skip to content

龙核资源

LyArmourersWardrobe 提供配套的 DragonCore 衣橱界面与客户端贴图。界面用于展示玩家模型、时装列表、当前搭配、筛选条件、搜索框、分页按钮和五套穿戴预设,并通过 DragonCore 自定义发包与服务端同步数据。

本页记录资源放置方式、界面交互协议和自定义界面时必须保留的内容。发包对应的界面名称固定为 时装衣橱,自定义文件时不要修改该界面名称。

依赖说明

插件用途说明
DragonCore加载衣橱 GUI、客户端槽位和自定义发包未安装时无法使用衣橱界面。
DragonArmourers获取时装类型并刷新玩家皮肤未安装时无法正常注册、穿戴和显示时装。

PlaceholderAPI 和属性插件不影响衣橱界面的基础加载,不属于本页资源的必要依赖。

文件放置

压缩包文件放置位置说明
配置和贴图/时装衣橱.ymlplugins/DragonCore/Gui/时装衣橱.yml服务端 DragonCore 界面配置。
时装衣橱贴图 文件夹客户端 DragonCore/gui/客户端界面贴图资源。

界面配置中使用了类似 GUI/时装衣橱贴图/底图.png 的资源路径。客户端实际目录、文件名、扩展名和大小写必须与界面配置完全一致。

界面功能

区域功能
背景显示衣橱主界面底图。
玩家模型显示玩家当前外观,便于查看搭配结果。
时装列表展示当前筛选条件下的时装,每页数量由服务端配置决定。
时装槽位通过 DragonCore 客户端槽位显示时装物品或时装模型。
穿戴与试穿已拥有时装显示为穿戴,未拥有时装显示为试穿。
当前搭配显示武器、弓箭、套装、翅膀、帽子、上衣、裤子和鞋子槽位。
显示与隐藏单独切换当前预设中某个时装部位的显示状态。
搭配详情显示当前预设已穿戴的时装、品质、部位和隐藏状态。
类型筛选按全部、武器、弓箭、套装、翅膀、帽子、上衣、裤子或鞋子筛选。
品质筛选config.yml 中注册的品质等级筛选,或显示全部品质。
拥有筛选按全部、已拥有或未拥有筛选。
搜索框按时装显示名称的拼音进行匹配,输入中文或对应拼音均会转换后检索。
分页切换筛选结果的上一页或下一页。
穿戴预设在五套时装方案之间切换,每套方案分别保存穿戴和隐藏状态。

界面名称

服务端向 DragonCore 调用界面函数时使用固定名称:

text
时装衣橱

/lysz open 同样会打开名为 时装衣橱 的 GUI。修改界面文件名或内部界面名称后,服务端仍会向原名称发送函数调用,导致界面无法打开或无法刷新。

打开初始化

界面打开时必须向服务端发送以下自定义数据包:

text
标识符:LyArmourersWardrobe
数据:初始化

原界面对应的发包形式为:

text
LyArmourersWardrobe / 初始化

服务端收到初始化发包后会执行以下操作:

  1. 为玩家新建筛选缓存。
  2. 将页码重置为第 1 页。
  3. 清空八个当前穿戴槽位。
  4. 加载第一页时装列表。
  5. 创建当前穿戴槽位和显示隐藏按钮。
  6. 创建五个时装预设按钮。
  7. 创建类型、品质和拥有状态筛选按钮。
  8. 将当前预设中已经穿戴的时装重新写入客户端槽位。

自定义界面时,必须保留打开阶段的初始化发包。没有初始化发包时,筛选缓存不会创建,时装列表、筛选按钮、穿戴槽位和预设按钮也不会正常刷新。

发包规则

所有衣橱交互都使用以下标识符:

text
LyArmourersWardrobe

数据列表中的第一项是操作名称,后续项目是操作参数。服务端会按照 config.yml 中的 packet-interval 限制玩家发包频率,间隔内重复发送的数据包会被忽略。

操作名称参数用途
初始化初始化筛选缓存、列表、槽位、筛选按钮和预设按钮。
穿戴显示时装时装 ID穿戴已拥有时装,或试穿未拥有时装。
脱下时装时装类型清空当前预设中指定部位的时装。
显示或隐藏时装时装类型、组件 ID、目标隐藏状态修改当前预设中指定部位的隐藏状态。目标状态可以传 truefalse
切换预设预设索引切换当前时装方案。现有界面使用索引 04
上一页页码文本组件 ID切换到上一页并修改指定页码组件。
下一页页码文本组件 ID剩余结果足够时切换到下一页。
搜索时装搜索内容按时装名称拼音刷新筛选结果。
选择时装类型类型 ID按时装类型刷新筛选结果。
选择是否拥有拥有状态 ID按拥有状态刷新筛选结果。
选择时装品质品质等级按品质等级刷新筛选结果,-1 表示全部。

时装类型参数

类型 ID默认显示名称
sword武器
bow弓箭
outfit套装
wings翅膀
head帽子
chest上衣
legs裤子
feet鞋子
all全部,仅用于筛选

类型显示名称由服务端 config.ymldisplay-type 配置控制,但发包参数必须继续使用表中的英文类型 ID。

拥有状态参数

参数含义
all显示全部时装。
owned只显示已经永久拥有或正在试穿的时装。
not_owned只显示当前没有使用权限的时装。

界面筛选判断使用玩家当前是否存在该时装权限,因此正在试穿的限时时装也会被视为已拥有。永久收集数量与此筛选规则不同,永久收集统计不会计算试穿时装。

品质参数

品质筛选参数是 config.ymlquality 节点的数字等级。例如品质等级 012 会分别发送对应数字字符串。

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将指定当前穿戴组件切换为显示状态。

显示隐藏操作只改变当前预设中的显示状态,不会移除槽位中的时装,也不会取消玩家对时装的拥有权限。

预设方法

方法名参数用途
添加按钮_时装预设分页预设索引、显示文本创建预设切换按钮。

服务端固定创建五套预设,索引为 01234。当前预设的显示文本会带有 §a[当前] 前缀。

切换预设后,服务端会清空八个当前穿戴槽位,再写入新预设中的时装,并刷新隐藏按钮和搭配详情。

服务端直接修改的组件值

除执行界面方法外,服务端还会直接修改以下组件属性:

组件属性内容
搭配详情tip当前预设的品质、部位、时装名称和隐藏状态。
翻页发包传入的组件 IDtexts当前页码。

如果修改了搭配详情组件名称,需要保留名为 搭配详情 的兼容组件,否则服务端无法更新提示内容。

自定义界面注意事项

  1. 界面名称必须保留为 时装衣橱
  2. 打开界面时必须发送 LyArmourersWardrobe / 初始化
  3. 发包标识符必须使用 LyArmourersWardrobe,区分大小写修改可能导致服务端无法识别。
  4. 操作名称和参数顺序必须与本页表格一致。
  5. 当前穿戴槽位必须使用 armourers_equip_类型ID 标识。
  6. 时装列表槽位必须使用 armourers_slot_索引 标识。
  7. 服务端调用的界面方法需要保留原名称和参数顺序。
  8. 五套预设使用索引 04,不要向服务端发送不存在的预设索引。
  9. 页码从 1 开始,时装槽位索引从 0 开始。
  10. 时装类型发包必须使用英文 ID,不要发送 config.yml 中配置的中文显示名称。
  11. 修改单页槽位数量时,需要同时调整 file-armourers-amount 和 GUI 列表布局。
  12. 输入文本、时装名称和服务端返回内容可能包含颜色符号,组件应允许正常显示 Minecraft 颜色文本。

DragonArmourers 冲突

插件配置明确提示,DragonCore 自带的 DragonArmourers 槽位可能与本插件的时装管理方式冲突。如果出现穿戴后频繁不生效、模型不显示或被其他槽位覆盖,可以检查 DragonCore 配置,并将其中的 DragonAmourers 设置为 false

该调整会影响 DragonCore 自带的相关槽位功能,应根据服务器实际使用方式选择。LyArmourersWardrobe 使用自己的八个 armourers_equip_ 槽位维护当前预设。

贴图异常排查

  1. 确认服务端存在 plugins/DragonCore/Gui/时装衣橱.yml
  2. 确认客户端已安装配套的 时装衣橱贴图 文件夹。
  3. 检查客户端实际目录是否与 GUI/时装衣橱贴图/... 路径一致。
  4. 检查文件名、扩展名和大小写是否与界面配置一致。
  5. 确认玩家使用的客户端资源中包含贴图,而不是只在服务端放置贴图。
  6. 更新资源后重载 DragonCore,必要时重新进入服务器或重启客户端。

界面无内容排查

现象检查内容
界面能打开但没有时装检查打开函数是否发送了 初始化,并确认时装已经在插件 armourers 目录中注册。
所有按钮点击无反应检查发包标识符是否为 LyArmourersWardrobe,操作名称和参数顺序是否正确。
快速点击时部分操作无效检查 packet-interval。服务端会忽略间隔内的重复发包。
当前穿戴槽位为空检查槽位标识是否使用 armourers_equip_类型ID
时装列表物品为空检查槽位标识是否使用 armourers_slot_索引,并确认对应索引组件已经创建。
筛选后旧组件仍然存在检查 清空组件_时装选择 方法是否存在并能清理动态组件。
筛选按钮没有文字检查三个 组件修改_...下拉框文本 方法是否存在。
隐藏按钮状态不更新检查 组件修改_当前时装槽位隐藏组件修改_当前时装槽位显示 方法。
翻页后页码不变化检查上一页、下一页发包中传入的组件 ID,以及该组件是否使用 texts 属性显示文本。
搜索不到中文时装搜索按时装显示名称的拼音匹配,确认时装配置中的 name 正确且已经重载。
切换预设后外观不刷新检查 DragonArmourers 是否正常加载,并排查 DragonCore 自带槽位冲突。

完整发包名称和参数也可参阅 发包与变量