LeaveReason
Detect abnormal player disconnections (kick, timeout, ban, not whitelisted) and broadcast the reason to chat
information
Installation command
!!MCDR plugin install leave_reasonAuthor
Repository
Homepage
Synced at
...
Last update
...
Latest version
Total downloads
9
Back to catalogue
LeaveReason(退出原因)
检测玩家异常退出(被踢、超时、封禁、白名单),把原因广播到公屏。
AZ 生电服同款插件,审核群
1101978932。
解析服务端日志,玩家退出时补上「为什么退出」。玩家「退出」这个动作本身由服务端或公屏转发插件显示,本插件只负责补原因。
能检测的原因
| 原因 | 公屏输出示例 |
|---|---|
| 被踢 | xxx 退出游戏,原因:被踢出服务器(你已被移除) |
| 连接超时 | xxx 退出游戏,原因:连接超时 |
| 被封禁 | xxx 退出游戏,原因:被封禁 |
| 不在白名单 | xxx 退出游戏,原因:不在白名单内 |
| 未归类 | xxx 退出游戏,原因:Attempting to attack an invalid entity |
文案都能改(见配置一节)。
工作原理
- 被踢 / 超时发生在游戏内,日志是
<玩家> lost connection: <原因>,能直接拿到玩家名。 - 封禁由原版
banlist.json在登录阶段拦截,日志是Disconnecting <地址>: You are banned ...。 - 白名单由原版
whitelist.json在登录阶段拦截,日志是Disconnecting <地址>: You are not white-listed ...。
封禁 / 白名单在登录阶段被拦下时,日志里通常没有玩家名,这时会改用
message_no_name模板播报。这是后端日志本身不记名字,不是 bug。
安装
把 leave_reason.mcdr 丢进 MCDR 的 plugins/ 目录,然后 !!MCDR plugin load leave_reason.mcdr(或重启)。
命令
| 命令 | 说明 | 权限 |
|---|---|---|
!!lr | 帮助 | 4 |
!!lr on / !!lr off | 开关广播 | 4 |
!!lr reload | 重载配置 | 4 |
!!lr status | 查看状态 | 4 |
权限等级 4 = 拥有者 / 控制台。前缀 !!lr 在代码里的 PREFIX 常量定义。
配置
首次加载自动生成 config/leave_reason/config.json,改完 !!lr reload 生效。常用项:
| 字段 | 作用 |
|---|---|
enabled | 总开关 |
message / message_no_name | 消息格式,{player}=玩家名,{reason}=原因 |
reason_text | 四类原因的文案(kick / timeout / ban / whitelist) |
append_kick_detail | 被踢时是否附上原始理由 |
show_unknown | 没匹配到的原因是否也播报 |
dedup_seconds | 同一玩家同一原因去重秒数 |
keywords | 归类关键词 |
最小配置:
{
"config_version": 2,
"enabled": true,
"message": "§7[§c!§7] §e{player} §7退出游戏,原因:§f{reason}",
"message_no_name": "§7[§c!§7] §e有玩家 §7被拒绝加入,原因:§f{reason}",
"reason_text": {
"kick": "被踢出服务器",
"timeout": "连接超时",
"ban": "被封禁",
"whitelist": "不在白名单内"
}
}
从 1.2.x 升级:旧配置没有 config_version,会自动备份成 config.json.bak 再生成新格式。
调参
- 先把
debug设为true并!!lr reload,用非白名单玩家和被封禁玩家各试一次,看控制台[leave_reason][debug]归类对不对。 - 白名单拦截如果不是原版
not white-listed而是插件自己踢人,把那段自定义文案的关键词加进keywords.whitelist。 - 正常断开(
Disconnected)默认在keywords.ignore里被忽略,不刷屏,要检测就删掉它。
反馈
QQ:2683654412。
README source: src/README.md