WarZDuelTime —— 经典单挑插件的重制版|1.13-1.21+ | 多竞技场 / 排位 / 商城 / Folia 支持

二次开发 游戏模式 WarZDuelTime —— 经典单挑插件的重制版|1.13-1.21+ | 多竞技场 / 排位 / 商城 / Folia 支持 2.6.17

完成注册/登录后下载
  • 修复比赛中/观战中玩家点击聊天“加入竞技场”按钮会进入别人竞技场的问题
  • 修复比赛中再次执行 /dt join、/dt start 或点击全服匹配会加入其他等待队列的问题
  • 修复 /teamduel join 在玩家已处于比赛/观战中时仍可能保存队伍偏好或切换等待队列的问题
  • 底层等待队列会清理已经进入比赛/观战状态的玩家,避免残留队列影响其他竞技场开局
[MD] ## 本次主要修复 ### 1. 修复等待队列虚满导致的开局失败 - 修复玩家重复加入、GUI/全服匹配重复触发或离线残留导致等待队列人数虚满的问题。 - 开局前现在会按“在线且唯一”的玩家重新校验人数。 - 满足竞技场 `minPlayers / maxPlayers` 配置后才会真正启动比赛。 ### 2. 修复团队竞技场满员后仍提示开局失败 - 5v5 / 团队竞技场满员后,不再因队列残留触发 `Arena failed to start. Please try joining again.`。 - 指定竞技场等待队列会自动清理重复玩家、离线玩家和跨竞技场残留映射。 - 全服匹配队列也会同步清理脏数据,降低异常排队导致的偶发开局失败。 ### 3. 保持经典竞技场兼容 - 经典 1v1 竞技场仍保持原有行为。 - 团队竞技场建议搭配 `WarZDuelTimeTeam 1.7.0` 使用。 [/MD]
[MD] ### 1. 修复强制结束后竞技场状态未完全清理的问题 - 修复 `ClassicArena.end()` 最终清理阶段扫描了错误映射的问题。 - 现在强制结束后会正确清理玩家与竞技场之间的残留关联。 - 解决“管理员强制结束后还能异常进入竞技场,但比赛状态不正常”的问题。 ### 2. 修复异常开局导致的脏状态残留 - `ArenaManager.start()` 现在会先过滤空玩家、离线玩家和重复玩家。 - 如果开局参数异常或开局过程中抛错,会主动回滚状态并重置竞技场。 - 避免开局失败后玩家仍被错误记录为“在竞技场中”。 ### 3. 修复进入后死亡不结束的问题 - 当玩家死亡时,如果 `gamerData` 缺失,不再只是简单移除映射。 - 现在会将该场比赛按异常对局安全收尾,避免竞技场一直卡住不结束。 ### 4. 修复 `/dt q` 或异常退出后不收尾的问题 - `ruleAsLoss()` 中如果对手对象或任一方对局数据缺失,现会触发兜底结束逻辑。 - 解决玩家退出后被直接传回,但竞技场本身没有结束的问题。 ### 5. 增强移动与受伤事件的异常保护 - 在受伤事件中补充了 `gamerData` 缺失时的兜底处理。 - 在移动事件中补充了 `event.getTo()`、`stage`、倒计时出生点缺失时的保护。 - 避免异常状态继续拖出新的报错或把竞技场卡死。 [/MD]
[MD] ### v2.1.14 - **修复**: 修复了玩家通过传送指令离开竞技场后,管理员强制结束时导致的 `ArrayIndexOutOfBoundsException` 和 `PlayerMoveEvent` 疯狂报错问题。 - **修复**: 修复了玩家死亡时,如果玩家数据异常(gamerData 为 null)导致竞技场无法正常结束的问题。 - **修复**: 修复了观战者数据异常时导致的空指针异常。 - **增强**: 增强了竞技场状态清理逻辑,确保在管理员强制结束或异常情况下,所有玩家状态都能被正确清理。 - **增强**: 在 `ClassicArena.end()` 方法中添加了最终安全清理机制,防止 ArenaManager 中残留玩家映射导致的状态不一致。 - **增强**: 在 `PlayerMoveEvent` 中添加了空指针保护,防止在极端情况下 Location 为 null 导致的崩溃。 - **优化**: 改进了 `ruleAsLoss` 方法的空指针检查,确保只有在双方玩家数据都存在时才执行结算逻辑。 [/MD]
  • 修复“比赛结束后立刻进入下一场,开局背包被主世界物品覆盖”的问题。
  • 赛后延迟背包恢复现在只会在玩家已经完全脱离比赛/观战时执行,不会再晚到覆盖新对局装备。
  • 死亡结算后的延迟背包恢复也加入同样的状态校验,避免下一场已经开始时旧任务把背包刷回去。
  • 优化连续快速开局时的发装与恢复时序,降低同一竞技场连开导致背包串线的概率。
  • 修复 kit_loadout / Kit 对局中玩家中途退服后,背包、经验和返回位置未正确复原的问题。
  • 修复比赛结束后 3 秒退出冷却期间下线,重连仍回到竞技场的问题。
  • 限制退出冷却期间不能加入新比赛,统一拦截 /dt join、GUI 匹配、全服匹配和接受邀请。
  • 新对局开始时会主动清理上一场残留的延迟回传任务,避免旧任务干扰新局。
  • 修复 kit_loadout 死亡/结束/跨世界回传后的背包恢复问题。
  • 修复 effect clear 后金苹果效果和吸收金血残留问题。
  • 修复 /dt arena function clear <竞技场ID> 报错。
  • 修复排行榜编号显示为 10/21/32 的问题。
  • 优化 ban_entity_spawn,允许空白名单直接结束,表示禁止所有实体生成。
[MD] ### v2.1.10 - **修复**: 经典/Kit 竞技场的列表录入流程现在同时支持 `finish` 与 `-l` 结束,不会再出现提示写着 `finish` 但实际无法结束的问题。 - **修复**: 进度流程的列表缓存现在会在开始新流程、结束流程、退出流程时自动清空,避免上一次输入的数据残留到下一次,导致越积越多。 - **修复**: `dueltime:kit` 与跨世界的竞技场专属装备在异世界开赛时会补发装备,降低因 `teleportAsync` 跨世界切换导致装备被覆盖、进入地图后没武器的情况。 [/MD]
[MD] ### v2.1.9 - **修复**: 等待队列加入广播现在统一在底层等待队列逻辑触发,`/dt join`、GUI 加入以及附属插件调用加入都会正常显示“谁加入了房间”。 - **优化**: 统一移除了 GUI 层的重复广播逻辑,避免后续不同入口行为不一致。 [/MD]
  • 修复服务器重启后,经典竞技场偶发出现 Target world cannot be null,导致决斗无法开始的问题
  • 原因是竞技场出生点所在世界在插件初始化时可能还没加载完成,出生点世界对象变成了 null
  • 插件现在会在启动后延迟重载一次竞技场,兼容多世界或世界晚加载场景
  • 开赛前新增出生点有效性检查,若世界未加载或坐标失效,会给出更明确的报错原因,方便排查
后退
顶部 底部