WarZSell修复与升级内容
1. 修复刷物品 BUG
- 原因 : 在 InventoryListener.java 中,当玩家点击出售时,如果物品无法出售,插件会手动执行 returnItems 退还物品,但随后的 closeInventory 又会触发 InventoryCloseEvent 再次执行 returnItems ,导致物品被退还两次。
- 修复 : 移除了出售逻辑中手动的 returnItems 调用,统一由 InventoryCloseEvent (关闭界面事件)处理物品退还,彻底杜绝了刷物品的可能。
2. 全版本兼容 (1.8 - 1.21+)
- 引入了 XSeries 库( XMaterial , XSound ),解决了不同 Minecraft 版本间材质名(如 WOOL vs WHITE_WOOL )和音效名不一致的问题。
- 重构了 SellGUI.java 和 PriceManager.java ,确保在旧版本(如 1.8)和新版本(如 1.20+)服务器上都能正确显示 GUI 和识别物品价格。
3. Folia 支持
- 在 plugin.yml 中添加了 folia-supported: true 。
- 创建了 SchedulerUtils 工具类和 TaskScheduler 接口,实现了运行时的环境检测:
- Folia 环境 : 自动使用 GlobalRegionScheduler 和 AsyncScheduler 。
- Bukkit/Spigot 环境 : 回退使用标准的 BukkitScheduler 。
- 解决了编译时的依赖问题,确保插件可以在 Folia 和普通 Spigot 服务器上无缝运行。