[MD]
# 新功能
- 针对某些狗喜欢使用中文顶级域名当服务器地址打广告绕开插件检测,插件现在内置完整的 IANA 根区数据库(Root Zone Database)的顶级域。链接检测会校验域名后缀是否真实存在(如 `.com`/`.top`/`.cn`/`.中国`/`.みんな`/`.vermögensberatung`),不再把 `abc.def` 这类实际不存在的网址当作链接。数据库已精简为顶级域字符串列表并内置进插件代码,不会释放任何数据文件。
- 拼接链接检查新增时间窗口(`link-detection.lol-chat-timeout-seconds`,默认 10 秒):仅当上一条消息距今不超过该时长时才拼接,避免把相隔很久的两次无关发言误拼成链接。
# 修复 bug
- 修复链接检测误报率过高的问题。此前域名后缀仅按 `[a-zA-Z]{2,}` 匹配,`abc.def`、`有点top` 之类的普通文本会被误判为链接;现在改为对照真实顶级域白名单校验。
# 代码优化
- 链接检测归一化改进:先把消息中所有可转义字符与 emoji 统一归一化成 ASCII 句点,再剔除无法转换的噪声字符,对照顶级域白名单判定;ASCII 域名走剥离后的文本,国际化域名走未剥离的归一化文本(剥离会连同 CJK 后缀一起删掉)。中文句读因此仍完整参与识别,误判靠顶级域白名单与名字段长度下限压制。
- 归一化前先剥离 Minecraft 颜色代码(`&x` / `§x`)。此前 `§f§r` 被剥离后残留字母 `fr`、`§b§r` 残留 `br`,会拼出真实顶级域造成误报,同时也堵住了用颜色代码拆分域名的规避手段。
- 移除“域名+端口”检测分支及其配置项 `link-detection.domain-port-pattern`:端口本身依附于有效域名或 IP 会被域名通道正常命中,无需单独分支。
- 域名名字段长度下限由 4 降到 3,以覆盖 `frp.one` 这类短标签主机,新增“句点抑制”规则减少误报
- 默认档新增危险后缀排除表(`tab`/`cd`/`az`/`ups`/`help`/`no`/`is`/`you`/`to`/`so`/`wow`/`gay`/`black`/`windows`)。这些后缀虽真实存在,但与常用英文词同形,不会用于 MC 服务器地址;`.me` 因属常用可注册后缀而保留。
- 上一条消息的缓存改为同时携带文本与发送时间戳,以便按时间窗口判定是否参与拼接。
- 新增玩家退出事件清理,及时移除消息频率、拼接缓存与链接检查缓存中该玩家的条目;插件卸载时清空全部缓存并解除静态注册表引用,确保 PlugmanX 热重载可回收。
[/MD]