GoodsTrade —— 简单的玩家物品交易功能! [1.12-26.2]

原创 开源 工具 娱乐 GoodsTrade —— 简单的玩家物品交易功能! [1.12-26.2] 1.2.3

完成注册/登录后下载
[MD] ## GoodsTrade 1.2.3 ### 新增与改进 - 新增蹲下右键快捷接受:收到请求后,蹲下右键发起者即可直接接受。与发起开关独立,配置为 `Trade.Triggers.Shift-Right-Click-Accept`,默认开启。 - 交易发起、接受、打开界面、确认、取消及失败增加交互音效。 - 语言文件缺少新增键时,启动或 `/gt reload` 会从默认文件补上并在后台列出路径,已有翻译不覆盖。 - 请求提示可说明蹲下右键快捷回应;帮助与用法支持 `%label%`,按玩家实际输入的主命令显示。 - 精简 README 中请求冷却、货币等说明,并去掉除 Star 外的装饰符号。 ### 升级说明 - 下载并替换 GoodsTrade-1.2.3-lite.jar,重启服务器加载新版代码。 - 已有配置不会被覆盖。缺少 `Shift-Right-Click-Accept` 时默认开启。 - 语言文件会补上缺失键,已有键不会改写。配置调整可执行 `/gt reload`,重载会取消当前交易。 ## GoodsTrade 1.2.1 ### 新增与改进 - 新增生效世界配置,默认 `Trade.Enabled-Worlds: ["*"]`,允许所有世界(包括自定义及新增世界),也可填写具体世界列表进行限制。发起、接受、管理员交易和测试模式均检查;进入禁用世界会取消交易。 - 新增同世界与距离限制:默认发起/接受距离 4 格、交易期间 8 格。水流、推挤或传送导致超距时取消交易、返还物品并提示双方,结算前再次检查。 - 新增受伤取消选项,默认关闭;开启后任一方实际受伤会关闭双方界面并返还物品,免伤优先。 - 请求发送冷却与有效期独立配置,默认分别为 5 秒和 30 秒。发送冷却按玩家全局计算;重复请求不延长有效期。 - 开始交易时清除双方全部发出和收到的请求,发送时拦截忙碌玩家,避免其他玩家继续接受旧请求。 - 经济总开关默认关闭,关闭后金额按钮和动态货币信息同步隐藏,测试模式也遵循可用币种配置。 - 自动语言模式在启动与重载时同时输出中英文提示:如果当前语言不是想要的语言,可修改 config.yml 的 Language 并执行 /gt reload。 - 自动语言识别增加本地 LC_ALL、LC_MESSAGES、LANG 支持,无需联网。 - 精简子命令注册日志,统一自研代码中文注释,更新文档、MineBBS 蓝色下载徽标和图标资源;交易流水列入后续计划。 ### 升级说明 - 下载并替换 GoodsTrade-1.2.1-lite.jar,重启服务器加载新版代码。 - 已有配置不会被覆盖。新增配置项与默认值参见 README;已有具体世界列表仍有效,需要开放所有世界时将 `Trade.Enabled-Worlds` 改为 `["*"]`。 - 经济与受伤取消默认关闭,但已有配置中显式设置的 true 会继续生效。 - 默认要求双方同世界,发起/接受时 4 格内、交易期间 8 格内。距离含高度差;设为 0 可关闭对应距离限制。 - 固定使用中文可设置 Language: zh_cn,英文为 en_us;配置调整可执行 /gt reload,重载会取消当前交易。 [/MD]
本次版本新增 Vault 金币交易、管理员沙盒测试和更完整的命令帮助,并加强交易确认阶段的安全处理。适合从 `1.1.5` Lite 直接升级。

- 修复 Paper 26.x 上蹲下右键无法向其他玩家发起交易的问题。新核心只触发 `PlayerInteractAtEntityEvent`,旧版父类监听收不到事件。

### Vault 金币交易

- 交易双方可通过 GUI 金币按钮调整各自需要支付的金额。
- 支持配置 1–4 档按钮金额;左键增加、右键减少。
- 可通过 `Trade.Economy.Allow-Negative` 控制是否允许负数报价;负数表示要求对方支付。
- 中央分隔板会同时显示双方最终需要支付的金额。
- 每次改价、确认和最终结算前都会检查余额,余额不足时不会允许超额报价或完成交易。
- Vault 或经济插件不可用时自动隐藏金币按钮,原有物品交易不受影响。

### 交易安全与确认流程

- 任一方修改金币报价后,已有确认会被撤销并通知另一方重新检查。
- 双方确认后的倒计时期间继续锁定物品与金额,避免最后一刻偷偷改价。
- 结算失败时不会交换物品,并会返还交易界面中的物品。
- 增强拖拽和双方交易区域的权限检查,保持原有物品交易流程安全。

### 管理员沙盒与命令帮助

- 新增 `/gt test [虚拟玩家名]`,管理员可独自控制交易双方区域、金额按钮和确认流程。
- 沙盒交易不会调用 Vault,也不会实际转移金币或物品;测试物品会在结束时返还。
- `/gt` 默认帮助现在显示各子命令的功能描述,并按玩家权限过滤。
- 命令说明、测试提示和金币交易文案均可在语言文件中修改。

### 兼容性

- Minecraft:`1.12 – 26.2`
- 服务端:Bukkit / Spigot / Paper
- Java:8 及以上
- PlaceholderAPI:可选
- Vault 与支持 Vault 的经济插件:仅金币交易需要;未安装时仍可正常交易物品
- 当前 Lite 版不声明 Folia 兼容

### 升级提示

1. 建议先备份 `plugins/GoodsTrade/`。
2. 停止服务器并用本版本 JAR 替换旧文件。
3. 已有 `config.yml`、`View.yml` 和语言文件不会被覆盖;如需调整金币按钮,请参考新版默认配置补充 `Trade.Economy`,并在 `View.yml` 中配置 `Money`、`Money-1` 至 `Money-4`。
4. 金币交易需要同时安装 Vault 和已接入 Vault 的经济插件;不使用金币交易时可保持未安装,或将 `Trade.Economy.Enable` 设为 `false`。
5. 升级后建议先使用 `/gt test [虚拟玩家名]` 检查金额按钮、负数报价和确认倒计时流程,再开放给普通玩家。
  • 升级项目版本从1.1.1到1.1.3
  • 添加Codemc仓库以支持新的依赖项
  • 将Lombok版本从1.18.30升级到1.18.42
  • 集成de.tr7zw的item-nbt-api库用于NBT处理
  • 在构建配置中添加NBT API的包重定位
  • 重构配置类以使用独立的黑名单管理器
  • 添加ItemBlackList和NbtBlackList工具类
  • 实现基于NBT标签的物品黑名单功能
  • 更新配置文件以支持NBT黑名单规则
  • 优化GUI中的黑名单检查逻辑
  • 移除过时的TODO注释
  • 添加了完整的多语言配置文件Lang.yml,支持颜色代码和占位符
  • 将所有硬编码的中文消息替换为从语言文件获取的消息
  • 在GoodsTrade类中添加了lang对象和getPrefix方法
  • 实现了消息中的占位符替换功能,如%player%和%target%
  • 统一使用getPrefix()方法替代硬编码的PREFIX常量
  • 重构了所有命令和事件处理中的消息显示逻辑
支持自定义材质
修复一些问题
增加是否接受交易功能
增加 papi 变量以适配接受功能
使用 yml 作为玩家数据存储文件
完全权限功能
版本号注明,更新 md 文件,增加部分注释
对于缺少依赖增加提示
修复关闭有时仅发起方关闭问题
优化物品交换返还物品逻辑
增加黑名单,优化性能、提示
后退
顶部 底部