chiral-carbon-verifier,🧪 手性碳入群验证 - 用有机化学知识守护你的群聊 , 基于github.com/Jerryplusy/crystelf-plugin的移植

koishi-plugin-chiral-carbon-verifier

koishi-plugin-chiral-carbon-verifier

npm

npm-download

GitHub

Gitee

💬 插件使用问题 / 🐛 Bug反馈 / 👨‍💻 插件开发交流,欢迎加入QQ群:259248174 🎉(这个群G了)

💬 插件使用问题 / 🐛 Bug反馈 / 👨‍💻 插件开发交流,欢迎加入新QQ群:1085190201 🎉

💡 在群里直接艾特我,回复的更快哦~ ✨

:test_tube: 手性碳入群验证 - 用有机化学知识守护你的群聊

:sparkles: 功能特点

  • :test_tube: 手性碳验证:发送有机化学分子结构图,要求新成员识别手性碳原子所在区域

  • :1234: 数字验证:简单的数学计算题作为备选方案

  • :arrows_counterclockwise: 自动降级:当手性碳 API 不可用时,自动切换为数字验证

  • :gear: 灵活配置:支持全局配置 + 群单独配置

  • :muscle: 困难模式:可要求答出所有手性碳区域

  • :bar_chart: 统计功能:记录验证历史,可查看通过率

  • :boot: 自动踢人:验证失败或超时可自动踢出

:package: 安装


npm install koishi-plugin-chiral-carbon-verifier

# 或

yarn add koishi-plugin-chiral-carbon-verifier

:wrench: 配置项

基础配置

| 配置项 | 类型 | 默认值 | 说明 |

|--------|------|--------|------|

| enabled | boolean | true | 是否全局启用入群验证 |

| carbonApiUrl | string | https://carbon.crystelf.top | 手性碳验证 API 地址 |

| apiTimeout | number | 10000 | API 请求超时时间(毫秒) |

验证行为配置

| 配置项 | 类型 | 默认值 | 说明 |

|--------|------|--------|------|

| verifyTimeout | number | 120 | 验证超时时间(秒) |

| maxAttempts | number | 3 | 最大尝试次数 |

| recallWrongAnswer | boolean | true | 是否撤回错误回答 |

| kickOnFail | boolean | true | 验证失败是否踢出群 |

| reminderBeforeTimeout | number | 60 | 超时前提醒时间(秒),0 为不提醒 |

主人账号配置

配置主人账号可自动绕过验证:

| 字段 | 类型 | 说明 |

|------|------|------|

| platform | string | 平台名称,如 onebot |

| userId | string | 用户 ID |

| enabled | boolean | 是否启用 |

群单独配置

可为每个群设置不同的验证模式:

| 字段 | 类型 | 说明 |

|------|------|------|

| guildId | string | 群号 |

| enabled | boolean | 是否启用验证 |

| useCarbonMode | boolean | 是否使用手性碳模式 |

| hardMode | boolean | 困难模式(需答出所有区域) |

| showHint | boolean | 是否显示提示 |

:memo: 可用命令

| 命令 | 别名 | 说明 |

|------|------|------|

| chiral.bypass <@用户> | 绕过验证 | 管理员绕过指定用户的验证 |

| chiral.reverify <@用户> | 重新验证 | 对指定用户重新发起验证 |

| chiral.enable | 开启验证 | 开启本群入群验证 |

| chiral.disable | 关闭验证 | 关闭本群入群验证 |

| chiral.mode [carbon/math] | 切换验证模式 | 切换验证模式 |

| chiral.hard [true/false] | 设置困难模式 | 设置手性碳困难模式 |

| chiral.stats | 验证统计 | 查看本群验证统计 |

| chiral.config | 验证配置 | 查看本群验证配置 |

:dart: 工作流程


新成员入群

↓

检查是否为主人 → 是 → 跳过验证

↓ 否

检查群是否启用验证 → 否 → 跳过验证

↓ 是

尝试请求手性碳 API

↓

┌─ 成功 → 发送分子结构图 + 验证提示

│

└─ 失败 → 降级为数字验证(发送数学题)

↓

等待用户回答

↓

┌─ 答对 → 验证通过,欢迎入群

│

├─ 答错 → 减少剩余次数,提示重试

│ └─ 次数用完 → 验证失败,踢出群

│

└─ 超时 → 验证超时,踢出群

:test_tube: 手性碳是什么?

手性碳(Chiral Carbon)是有机化学中的概念,指连接四个不同基团的碳原子。这种碳原子具有"手性",即镜像不能重合,就像左手和右手一样。

本插件利用这一化学知识点作为入群验证,既有趣又能筛选出具有一定化学基础的成员~

:warning: 注意事项

  • 需要 bot 具有群管理员权限才能踢人

  • 手性碳 API 默认使用 https://carbon.crystelf.top,可在配置中修改

  • 主人账号会自动绕过验证

  • 建议将 verifyTimeout 设置为 120 秒以上,给新成员足够的答题时间

  • :warning: 我只测试了 Napcat,不知道其他的 OneBot 协议端 or 其他平台能不能用(

:camera_flash: 效果展示

QQ 群内使用效果

QQ群内使用效果

开发环境信息

图片

开发 & 测试时使用的 Napcat 版本等信息,供参考:

开发环境信息

:scroll: 致谢

本插件参考 crystelf-plugin 的业务逻辑实现,感谢原作者的创意!

:page_facing_up: 许可证

MIT License

2 个赞
root@bawuyinguo:/home/bawuyinguo/SSoftwareFiles/koishi/koishi-dev-4/external/chiral-carbon-verifier# timedatectl 
               Local time: 五 2026-03-13 03:22:16 CST
           Universal time: 四 2026-03-12 19:22:16 UTC
                 RTC time: 四 2026-03-12 19:22:16
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
root@bawuyinguo:/home/bawuyinguo/SSoftwareFiles/koishi/koishi-dev-4/external/chiral-carbon-verifier# git log --oneline
7bbfe15 (HEAD -> master, origin/master, github/master) docs: add homepage and repository fields to package.json
0ac76e7 feat: 添加效果展示截图 & Napcat 测试说明
20aa0f6 chore: 0.0.2-beta.2 统一 readme 样式 + 添加群信息
cc164e0 docs: add socialify banner to readme
9199cce feat!: v0.0.2 - 自定义文案、reverify 安全检查、文档完善
2aa7d9d 0.0.1-beta.1+20260208 应该是能用了?
235ccec initial commit
root@bawuyinguo:/home/bawuyinguo/SSoftwareFiles/koishi/koishi-dev-4/external/chiral-carbon-verifier#
2 个赞