挂机检测器

挂机检测器

AfkDetector是一款轻量级、低影响的Hytale服务器挂机检测插件。

实用

AfkDetector 横幅

🛡️ AfkDetector

AfkDetector 是一款轻量级、低影响的 AFK 检测插件,适用于 Hytale 服务器

它通过 水平移动采样 监控玩家活动,在可配置的闲置时间后标记玩家为 AFK,可选择性地警告玩家,并通过服务器的 原生指令系统 安全地踢出闲置玩家。

设计目标:

  • 高性能
  • 🔄 可重载
  • 🧰 管理员友好

✨ 功能

  • 基于玩家移动检测 AFK 状态
  • 基于秒的配置(无需毫秒级冗余)
  • 实时配置重载(/afk reload
  • AFK 状态指令(/afk
  • 重置 AFK 计时器(/afk reset
  • 列出 AFK 玩家(/afk whois
  • 可选的自动踢出功能
  • 基于权限的绕过(管理员不会被踢)
  • 重载安全的调度(无需重启服务器)

📦 安装

  1. 构建插件 JAR 文件
  2. 将 JAR 文件放入服务器的 mods/ 目录
  3. 启动服务器
  4. 编辑插件数据文件夹中的 config.json
  5. 使用命令重载插件:/afk reload

⚙️ 配置(config.json

所有值均基于 ,便于阅读并减少服务器影响。

{
  "checkEverySeconds": 5,
  "afkAfterSeconds": 180,

"kickEnabled": false, "kickAfterSeconds": 600, "warnBeforeKickSeconds": 30,

"moveEpsilon": 0.08,

"afkMessage": "[AFK] 你现在处于 AFK 状态。", "backMessage": "[AFK] 欢迎回来!", "warnMessage": "[AFK] 请移动,否则你将被踢出。", "kickMessage": "因 AFK 时间过长被踢出。",

"bypassPermission": "afk.bypass", "reloadPermission": "afk.reload",

"enableCommand": true }


⌨️ 指令

指令 描述
/afk 显示你的 AFK 状态
/afk reset 重置你的 AFK 计时器
/afk reload 重载 config.json
/afk whois 列出所有 AFK 玩家
/afk whois <名称> 显示指定玩家的 AFK 状态

权限

权限 描述
afk.bypass 免于 AFK 踢出
afk.reload 允许使用 /afk reload/afk whois

工作原理

  • 按可配置的间隔(默认 5 秒)检查玩家
  • 超过小阈值的水平移动被视为活动
  • 闲置足够长时间后,玩家被标记为 AFK
  • 可选的警告和踢出功能使用 原生服务器指令
  • 所有逻辑均在 主世界线程 上安全运行

兼容性与设计

  • 专为现代 Hytale 服务器构建
  • 避免脆弱的 API 依赖
  • 在版本间 API 不同时使用反射
  • 无需重启服务器即可安全重载。