QuickShop-Hikari 6.2.0.9-RELEASE-1
on 2025 Apr 046.2.0.9 - 重要提示:包含漏洞修复,请尽快更新。
更新前请记得备份您的数据库。
主要变更
包含针对图形用户界面(GUI)漏洞的修复
此版本修复了近期所提及的图形用户界面系统中的一个漏洞。
大量事件变更
控制面板组件系统全面改造
商店控制面板系统已进行全面改造,将其拆分为不同的类。这使得第三方插件能够轻松地向控制面板添加额外组件。此外还新增了一个事件,即ControlComponentGenerateEvent,它会在生成ControlComponent的前置(PRE)、主要(MAIN)和后置(POST)阶段被调用。在主要阶段,支持用自定义的ControlComponent对象替换原始对象,该自定义对象将在发送控制面板时替换原始对象。
改进后的数据包系统介绍
-
关于:
- 一个用于管理《我的世界》中与虚拟展示物品相关数据包的模块化且可扩展的系统。
- 为了提高灵活性,同时支持ProtocolLib和PacketEvents依赖。
-
自定义数据包工厂:
- 针对游戏版本1.20.x和1.21.x对
PacketFactory
进行模块化实现。 - 数据包类型:
- 生成数据包:在特定位置生成一个虚拟物品实体。
- 元数据数据包:更新虚拟物品的视觉属性。
- 速度数据包:为实体添加运动/速度(目前为可选)。
- 销毁数据包:从客户端视图中移除实体。
- 针对游戏版本1.20.x和1.21.x对
-
错误处理和日志记录:
- 增强调试日志以追踪与数据包相关的问题。
- 针对缺失工厂或未注册监听器提供详细的错误消息。
改进之处:
- 更好的模块化设计,以便于对未来《我的世界》版本的支持。
弃用内容:
- 旧的数据包处理机制已被此新数据包系统取代。
事件系统全面改造
新增内容
- event/Phase.java - 引入一个基于阶段的事件系统,以跟踪事件生命周期的不同阶段。
- event/PhasedEvent.java - 定义在不同阶段发生的事件,以便更好地进行事件状态管理。
数据包处理事件:
- event/packet/handler/PacketHandlerAddedEvent.java - 当系统中注册一个新的数据包处理程序时触发。
- event/packet/handler/PacketHandlerInitEvent.java - 当一个数据包处理程序初始化时触发,对调试或自定义设置很有用。
- event/packet/send/PacketHandlerSendDestroyEvent.java - 当一个数据包指示客户端从其视图中移除一个实体时派发。
- event/packet/send/PacketHandlerSendMetaEvent.java - 当通过数据包发送关于一个实体的元数据时触发。
- event/packet/send/PacketHandlerSendSpawnEvent.java - 当使用基于数据包的通信生成一个实体时触发。
商店事件
- ShopUpdateEvent已被ShopDatabaseEvent取代。
- ShopAuthorizeEvent已被ShopPermissionCheckEvent取代。
- ShopClick、ShopCreate、ShopDelete、ShopLoad已被类似名称的事件取代,不过它们现在位于event.management包中,并且是分阶段的事件。
商店设置事件:
- event/settings/ShopSettingEvent.java - 用于动态处理商店设置变更的通用事件。
- event/settings/package-info.java - 包含商店设置元数据的文档包。
商店特定类型设置:
- event/settings/type/ShopCurrencyEvent.java - 处理商店中所使用货币类型的变更。
- event/settings/type/ShopDisplayEvent.java - 当商店的展示设置(例如,全息影像、标识牌)被修改时触发更新。
- event/settings/type/ShopItemEvent.java - 当商店中所售卖的主要物品被改变时触发。
- event/settings/type/ShopNameEvent.java - 当商店的名称被更新时发生。
- event/settings/type/ShopOwnerEvent.java - 管理商店中的所有权转移和修改。
- event/settings/type/ShopOwnerNameEvent.java - 当所有者的显示名称被修改时触发。
- event/settings/type/ShopPlayerGroupEvent.java - 处理与商店相关联的玩家组的更新。
- event/settings/type/ShopPriceEvent.java - 当商店中一个物品的价格被改变时派发。
- event/settings/type/ShopSignLinesEvent.java - 管理基于标识牌的商店展示的更新。
- event/settings/type/ShopTaxAccountEvent.java - 当商店的税务账户信息被修改时触发。
- event/settings/type/ShopTypeEvent.java - 跟踪商店分类或类型的变更。
- event/settings/type/ShopUnlimitedEvent.java - 处理商店无限库存设置的变更。
商店福利系统:
- event/settings/type/benefit/ShopBenefitAddEvent.java - 当向商店添加一个新福利(例如,折扣、忠诚度奖励)时触发。
- event/settings/type/benefit/ShopBenefitEvent.java - 用于跟踪商店福利修改的通用事件。
- event/settings/type/benefit/ShopBenefitRemoveEvent.java - 当一个商店福利被移除时触发。
移除内容
- event/details/ShopItemChangeEvent.java - 为了更一致的结构,已被
ShopItemEvent.java
取代。 - event/details/ShopNamingEvent.java - 已合并到
ShopNameEvent.java
中。 - event/details/ShopOwnerNameGettingEvent.java - 已被
ShopOwnerNameEvent.java
取代。 - event/details/ShopOwnershipTransferEvent.java - 现在由
ShopOwnerEvent.java
处理。 - event/details/ShopPlayerGroupSetEvent.java - 已整合到
ShopPlayerGroupEvent.java
中。 - event/details/ShopPriceChangeEvent.java - 已合并到
ShopPriceEvent.java
中。 - event/details/ShopTypeChangeEvent.java - 已被
ShopTypeEvent.java
取代。 - event/details/ShopUnlimitedStatusEvent.java - 现在由
ShopUnlimitedEvent.java
管理。 - event/display/ShopDisplayItemDespawnEvent.java - 为了支持
ShopDisplayEvent.java
已被移除。 - event/display/ShopDisplayItemSafeGuardEvent.java - 已整合到一个更广泛的展示事件类别中。
- event/economy/ShopTaxAccountChangeEvent.java - 现在已包含在
ShopTaxAccountEvent.java
中。 - event/economy/ShopTaxAccountGettingEvent.java - 由于商店经济系统的重构,已不再需要。
- event/packet/PacketHandlerAddedEvent.java - 已移至
event/packet/handler/PacketHandlerAddedEvent.java
。 - event/packet/PacketHandlerInitEvent.java - 现在由
event/packet/handler/PacketHandlerInitEvent.java
处理。
修改内容
- event/AbstractQSEvent.java - 更新了基础事件结构以支持基于阶段的执行。
- event/QSCancellable.java - 添加了新的取消条件以防止意外的事件终止。
数据包事件:
- event/package-info.java - 已更新以反映新的事件结构。
- event/packet/PacketHandlerEvent.java - 现在支持额外的数据包处理场景。
次要变更
- 如果玩家没有CONTROL_PANEL_UI的权限,将为其打开TRADE_UI。
- 添加了quickshopdontsend覆盖设置,允许服务器所有者阻止发送某些消息(仅Paper服务器)。
- 使得用户界面(UI)的无效聊天输入能够退出聊天用户界面。
配置变更
- 添加了shop.control-panel来控制文本控制面板的哪些组件被启用。
- 添加了shop.sign-wax来控制商店标识牌是否上蜡,默认值为否。
- 添加了shop.display-protocol,它允许您选择PacketEvents或ProtocolLib进行数据包处理。
修复内容
- 将/qs历史权限重新添加到默认的quickshop.player中。
- 修复了一些人没有编码数据库列的问题。
- 修复了reached-maximum-can-create未正确实现的问题。
- 修复了活塞会移动潜影盒商店的问题。
- 修复了彩色潜影盒可以被购买并放入非彩色潜影盒的问题。
- 修复了GriefPrevent的/transfer命令未注销所有者的问题。
- 修复了标识牌在锁定设置为否时未更新的问题。
- 修复了史莱姆兼容爆炸镐未被QS捕获的问题(感谢YuanYuanOwO和Starfruit)。
- 修复了一个漏洞(感谢macaw/casper首先报告此问题)。
版本变更
- 移除了对1.18和1.19版本的支持。这些版本的使用率极低。
- 添加了对1.21.5版本的支持。
QuickShop-Hikari 6.2.0.8
on 2025 Feb 026.2.0.8
主要变更
- 新增了对Folia的初始支持
- CONTROL_PANEL_UI是一种新的交互方式,它允许你使用图形用户界面(GUI)控制面板而非聊天界面来进行操作。
- 通过这个GUI,你可以添加/移除工作人员、转移所有权、设置商店的销售模式、更改价格以及删除商店!
- 重新添加了QS历史记录GUI
- 移除了真实物品和实体显示;相较于虚拟显示,它们没有任何优势,而且主要还会引发一些问题。
- 如果协议库未更新/未安装,它将默认不显示。
- 新增了/qs浏览 [世界]命令,玩家可以根据是否将世界作为参数来按服务器或按世界查看商店。
- 新增了TRADE_UI交互方式,它会为玩家打开一个基于GUI的交易菜单,以便玩家从商店购买/出售预设的以及自定义数量的物品。
- 更新至我的世界1.21.3、我的世界1.21.4版本。
- 新增了VaultUnlocked支持
次要变更
- 新增了两种即将推出的交互行为:CONTROL_PANEL_UI和TRADE_UI
- 进行了设置,使得当价格变更费用设置为0时,不会发送收费消息。
- 新增了/qs staffall命令来管理所有商店的工作人员。
- 新增了一种商店模式:冻结模式。
- 这允许管理员/商店工作人员暂时停止与商店的交易。
- 该模式已添加到店主菜单中。
- 该模式已添加到基于文本的控制面板中。
- 该模式引入了新命令:/qs silentfreeze和/qs freeze
- 设置了/qs suggestprice的默认操作,当看不到商店时,尝试使用手中的物品堆。
- 新增了shop.finding.global来移除/qs find的距离限制
- 将招牌商店的招牌上蜡以防止修改(感谢ThiagoROX)
- 添加了招牌打开监听器(感谢ThiagoROX)
- 添加了子命令覆盖(感谢ThiagoROX)
内部相关
- 新增了样式指南。
- 在可能的情况下,在代码内部添加了final关键字。
- 当取消设置商店名称时,会调用ShopNamingEvent。
- 新增了ShopUnlimitedStatusEvent,在更改商店的无限制状态时会调用该事件。
- 将事件重新整理到不同的包中。这将会导致依赖这些事件的插件出现问题。
Discord相关变更
- 为通过GitHub赞助的人员新增了赞助者角色。
兼容插件
- Towny
- 新增了废弃城镇配置,以便在城镇沦为废墟时移除商店。
附加插件
高级空岛(SuperiorSkyblock)
- 进行了设置,使得兼容插件可以在有人被从岛屿封禁时删除商店。
修复内容
- 修复了Velocity和Bungee兼容Jars的问题
- 修复了Towny兼容Jar在地块被清理或城镇被删除时不删除商店的问题。
- 修复了利用潜影盒绕过物品限制的问题(感谢TauCubed)
- 修复了在Essentials中查询Towny城镇/国家账户的问题(感谢galacticwarrior9)
注意事项
- 即将移除对1.18/1.19版本的支持。
6.2.0.7
on 2024 Nov 29变更日志
- 完全重写了显示物品代码
- 添加了新的完全重新设计的物品匹配器,将工作类型设置为 3,这纠正了许多问题(仍处于测试阶段)
- 添加了 1.21.1 支持,这将是新的默认支持,只要协议不改变,应该可以允许未来的更新继续工作。
- 为 find 子命令添加了在书籍和装备上查找附魔的支持(感谢 SarahGreyWolf)
其他注意事项
- 可以在 discord 上找到用于 folia 支持的测试版本。
- RealItemDisplay 将在未来的版本中被删除。它效率低下,并且导致的问题比它的价值还多。请迁移到虚拟显示。
6.2.0.6
on 2024 Nov 29错误修复
- 修复了商店物品和某些功能的漏洞(感谢 bridgelol)
- 由于终端用户遇到错误,在更换时暂时禁用了 QS 历史记录。
- 修复了附魔限制在附魔书中未检测到它们的问题(感谢 TauCubed)
更改内容
完整变更日志:https://github.com/QuickShop-Community/QuickShop-Hikari/compare/6.2.0.5...6.2.0.6
6.2.0.5
on 2024 Nov 29新功能
- 支持 1.21
错误修复
- 修复了
/qs clean
可能会删除所有商店的问题 - 修复了
/qs cleanghost
可能会删除所有商店的问题