Repository navigation
Releases: KokuuWork/deathback
Releases · KokuuWork/deathback
Release list
DeathBack v1.1.0 — 只补写 CMI 死亡点
变更
插件定位变更:不再提供独立命令,不再接管 /back,改为在死亡时把死亡坐标补写进 CMI,玩家继续用原生的 /back。
核心改动
- 移除
/deathback命令,插件只在后台工作,对玩家完全透明 - 死亡时写入 CMIUser 的两个字段(与 CMI 原生
onPlayerDeath完全一致):setDeathLoc(new CMILocation(loc))→ 供/dbacksetLastTeleportLocation(loc, false)→ 供/back
- 三重数据源:
PlayerDeathEvent→EntityDeathEvent→corpse:corpse实体生成兜底 - 同玩家 3 秒防重,避免重复事件把坐标覆盖成重生点
- Arclight 适配:mod 实体需经
getHandle()取 NMS 原始实体才能反射到getCorpseUUID()
根因(字节码级证实)
CMI 的 UserEvents.onPlayerDeath 里,setLastTeleportLocation 存在 cmi.command.back.ondeath 权限门槛。服务器 default 组通常只给了 cmi.command.back,缺这一条 → 唯独「死亡后 /back」失效;而 tp/home/warp 走的是另一条无门槛的链路(teleportBack),所以一直正常。
正统解法同时推荐:
lp group default permission set cmi.command.back.ondeath true
本插件是绕过该权限门槛的「保险层」。
兼容性
CMI 9.7.12.3 与 9.8.10.3 的反射接口已逐一反汇编核对,完全一致。
实测
在 Arclight 1.20.1 + CMI 9.8.10.3 的完整副本服务端验证,写入 / 防重 / 事件忽略 / 尸体兜底全部通过。
安装
把 DeathBack-1.1.0.jar 丢进 plugins/,重启即可,无需任何配置或权限。