
检测挂机玩家
极高性能的AFK/空闲检测 · 玩家在移动鼠标后3分钟(可配置)未动作即视为AFK · 可通过大量插件扩展!
查看大图检测挂机玩家
根据头部旋转检测玩家非活动状态——简单、准确且快速。旨在作为数据包和服务器管理员的依赖项。
没有附加组件(以实现更好性能)时此功能有限,因此您可能也想下载其中一个附加组件。
附加组件
- 暂停昼夜循环 - 当所有玩家挂机时暂停时间
- 挂机睡觉 - 允许玩家挂机时睡觉,且能正确处理维度及更新,优于其他同类方案
- 挂机名称变暗 - 玩家挂机时名字显示变暗
- 挂机消息 - 玩家状态变化的聊天通知
- 挂机坐下 - 玩家挂机时自动坐下
核心功能
- 3分钟后将玩家标记为
afk - 基于头部旋转进行检测,比位置检测更准确
- 性能显著优于其他方案
- 模块化(附加组件见上)
要配置进入挂机状态所需的时间,请使用下面的命令。 默认情况下,该值设为 3600(即3分钟)。
/scoreboard players set .threshold afk.settings NUMBER_OF_TICKS
要允许玩家使用 /trigger afk,请使用以下命令。除非管理员启用,否则玩家无法手动进入挂机状态。
/scoreboard players enable PLAYER afk
性能
常见的挂机检测方法会检查 X/Y/Z 坐标、背包变化和方块交互——通常每 tick 都执行。而本数据包每1.5秒对每个玩家仅执行一次头部旋转 NBT 检查,相较于其他方案,计算量显著减少,有时甚至降低多达两个数量级。
头部旋转检测方法还消除了由实体交互(玩家攻击、爆炸等)以及自动防挂机机制(如水流)导致的误触发。
API
提供了两个函数标签:
afk:away- 玩家进入挂机状态时以该玩家身份执行afk:back- 玩家回归时以该玩家身份执行
GitHub 上提供了其他文档,例如所有稳定的记分板目标及其使用方法。
示例实现:
kick-afk-players/data/afk/tags/functions/away.json
{ "values": ["afk_kick:kick"] }
kick-afk-players/data/afk_kick/functions/kick.mcfunction
kick @s AFK
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。