Skip to content

Releases: myzer121/JoyMart

JoyMart v1.3 - 变量显示、控制台刷屏、设置GUI与入场费修复

Choose a tag to compare

@myzer121 myzer121 released this 28 Aug 11:18

修复内容

1. 变量显示为 %tokens% 的问题

  • 根因: PluginManager.playWinEffects() 发送获胜标题时, 副标题 titles.winSubtitle 中的 %tokens% 变量从未被替换
  • 修复: playWinEffects 现在接收实际获得的代币数量并正确替换变量; 单人游戏、多人对战、赌注赢家通吃三种结算路径均已传入正确的代币数

2. 控制台 Progress 刷屏

  • 根因: MusicPlayer 的 NBS 播放任务每 100 tick (约 5 秒) 输出一条 Progress: tick x/y 日志
  • 修复: 移除播放期间的全部调试日志, 仅保留歌曲加载与错误警告日志

3. 双人游戏缺少游戏设置编辑 GUI (本次新增)

  • 根因: 游戏菜单的 '游戏设置' (⚙) 编辑入口按钮只为单人和多人游戏添加, 两人游戏分支被遗漏
  • 影响游戏: 象棋、战舰、井字棋、四子棋、石头剪刀布 — 这些游戏配置了胜者/败者/平局代币奖励却无法在游戏内修改
  • 修复: 所有两玩家游戏菜单现在对拥有 gamebox.admin.games 权限的管理员显示设置编辑入口, 可修改胜者/败者/平局代币奖励

4. 彩票等游戏票价不扣除代币 (本次新增)

  • 根因: 旧实现的入场费只通过 Vault 金钱经济扣除, 未安装 Vault 时通过设置 GUI 配置的票价完全不生效
  • 修复: 新增 costTokens 代币入场费, 以 GameBox 代币扣除, 无需 Vault 经济即可生效; 可通过游戏设置 GUI 的 '进入花费 (代币)' 行 (+1/-1/+10/-10) 修改, 修改立即生效并持久化到配置
  • 增强: 开始游戏前检查代币余额, 不足时提示具体费用 (如 '5 代币 + 10 金币'); 代币与金币混合扣款失败时自动回滚; 多人游戏取消邀请时退还代币入场费

5. 其他修复

  • 商店管理 GUI 的分类提示语言键路径错误, 已修正
  • 补充缺失的 messages.error 语言键 (中/英/德/西)
  • 插件升级后旧版磁盘语言文件缺少的新键自动从 JAR 内同语言文件回填

安装: 下载 JoyMart-1.3.jar 替换服务器 plugins/ 目录中的旧版 JAR 后重启即可, 无需删除配置。旧的 cost (金币票价) 配置保持兼容, 配置了 Vault 经济的服务器仍然正常扣除金币。

JoyMart v1.1 - Default Language Fix

Choose a tag to compare

@myzer121 myzer121 released this 14 Aug 04:41

修复内容

默认语言不生效修复 (v1.2)

修复了在 config.yml 中设置 language.default: zhautoDetect: false 时,中文仍然无法加载的问题。

根因: GameBoxListener.onJoin() 在每位玩家加入时无条件调用 detectLanguage(player) 检测客户端语言,覆盖了 config.yml 中的 language.default 设置。即使管理员设置了中文,英语客户端的玩家仍看到英文。

修复:

  • GameBoxListener.onJoin():仅在 autoDetect: true 时才检测客户端语言
  • LanguageManager.getPlayerLanguage()autoDetect: false 时始终返回 defaultLang
  • GameBox.reload():在语言重载后重新读取 PREFIX

语言切换修复 (v1.1)

  • 游戏会话 start()refresh() 中添加 setActiveLanguage(player) 调用
  • 邀请消息、胜负标题、音乐播放器消息改用玩家特定语言

插件加载修复 (v1.0)

  • Java 21 字节码重编译为 Java 17
  • 恢复原始导入路径(org.bstats, com.zaxxer.hikari 等)
  • 添加缺失的 vsAi 和 invite2 翻译键