Files
Sdf1_login/.workbuddy/memory/2026-07-04.md
T

1.0 KiB

2026-07-04 13:33 - 新玩家验证码系统 + 全场景链接过滤 + 私信URL拦截

验证码系统实现

  • ChatFilterManager 新增 VerificationResult 枚举(NEED_VERIFICATION/PENDING/VERIFIED/FAILED)
  • 新玩家首次发消息时触发数学题验证码(10以内加减乘除,随机选择)
  • 30秒有效期,答错/超时/非数字答案 → 吞噬消息
  • 答对 → 插件代为广播缓存的原始消息(无前缀,像普通聊天一样)
  • 老玩家(注册>1小时)快速验证后自动放行
  • pendingMessages Map 缓存未验证消息,验证通过后广播

全场景链接过滤

  • 告示牌(onSignChange): 已有的 filterLinkInContent 拦截
  • 编辑书(onPlayerEditBook): 通过反射调用 getNewBook() 获取书页内容(兼容Paper 1.21.4)
  • 私信(onPrivateMessage): 新增 PlayerCommandPreprocessEvent 拦截 /tell /msg /w /r 命令中的链接

编译部署

  • Maven clean package 编译通过
  • 推送到 git.ypshidifu.cn (main 分支)
  • JAR 上传到 SFTP 服务器
  • PHP 文件上传到 FTP /plugin/ 目录