- 注册
- 2025/09/07
- 消息
- 76
- 主题 作者
- #1
JCbot 命令配置文件 (cm.json) 使用指南
概述
cm.json 是 JCbot 的核心命令配置文件,通过修改此文件,您可以完全自定义机器人的命令系统,包括触发词、功能、权限和响应内容。如果你不会手动编写json,可将此文档全部复制给AI叫AI写,或者使用此链接来快速制作简单的配置文件生成工具
配置文件位置
配置文件位于:Configs/JCbot/cm.json如果文件不存在,JCbot 会在启动时自动创建一份默认配置。注意:配置文件需保持格式正确,并且要在机器人关闭状态下更改,否则会还原
配置文件基本结构
配置文件是一个标准的 JSON 文件,其基本结构如下:{"commands": {"命令名称": {"description": "命令描述","handler": "处理器名称","permission": 权限级别,"fuzzy_match": false,"group": "命令分组","options": {// 命令的额外选项(根据处理器类型而变化)}}}}配置字段详解
- 命令名称 (Key)
- 描述:触发命令的关键词,可以使用英文逗号分隔多个别名
- 示例:单个触发词:"帮助";多个别名:"帮助,help,?"
- description
- 描述:命令的简要说明,会在帮助菜单中显示
- 类型:字符串
- 示例:"显示帮助信息"
- handler
- 描述:指定处理该命令的处理器名称
- 可用值:
- "server_status": 服务器状态查询
- "help": 显示帮助信息
- "enter_world": 进入游戏存档
- "cmd": 执行游戏命令
- "restart": 重启机器人
- "get_bot_log": 获取机器人日志
- "get_log": 获取服务器日志
- "send": 发送消息(支持占位符)
- "fixed_command": 执行固定命令
- "ban_user": 封禁用户
- "smart_command": 智能命令
- "unban_user": 解封用户
- "add_admin": 添加管理员
- "remove_admin": 移除管理员
- "online_players": 在线玩家查询
- "list_admins": 列出管理员
- "toggle_forward": 切换转发状态
- "set_polling": 设置轮询间隔
- "forward_status": 查看转发状态
- "set_prefix": 设置消息前缀
- "set_game_prefix": 设置游戏消息前缀
- "remove_prefix": 移除消息前缀
- permission
- 描述:执行该命令所需的最低权限级别
- 类型:整数
- 可用值:
- 0: 无权限(被封禁用户)
- 1: 普通成员
- 2: 管理员
- 3: 超级管理员
- fuzzy_match
- 描述:是否启用模糊匹配(暂未实现)
- 类型:布尔值
- 默认值:false
- group
- 描述:命令所属的分组,用于帮助菜单分类
- 类型:字符串
- 常见值:"系统命令", "游戏命令", "权限命令", "配置命令"
- options
- 描述:命令的额外选项,根据不同的处理器有不同的配置
- 类型:对象
占位符系统
JCbot 提供了强大的占位符系统,可以在响应中动态插入信息:基础信息占位符:{user_id} - 用户ID{user_name} - 用户名{group_id} - 群组ID{command} - 命令名称{param} - 命令参数时间日期占位符:{time} - 当前时间 (HH:MM:SS){date} - 当前日期 (YYYY-MM-DD){datetime} - 当前日期时间 (YYYY-MM-DD HH:MM:SS){weekday} - 当前星期几 (周一至周日)系统信息占位符:{uptime} - 机器人运行时间{cpu_usage} - CPU使用率{memory_usage} - 内存使用率{disk_usage} - 磁盘使用率{free_space} - 磁盘剩余空间{python_version} - Python版本{platform} - 操作系统平台{command_count} - 命令总数{bot_status} - 机器人状态随机占位符:{random} - 1-100的随机数参数索引占位符:{param:1} - 参数的第一个部分{param:2} - 参数的第二个部分{param:N} - 参数的第N个部分(以空格分隔)配置示例
- 简单响应命令{"打招呼": {"description": "简单的打招呼命令","handler": "send","permission": 1,"group": "测试命令","options": {"response": "你好 {user_name}!今天是{date},星期{weekday}。"}}}
- 服务器状态命令{"状态": {"description": "查看服务器状态","handler": "server_status","permission": 1,"group": "系统命令"}}
- 带参数的命令{"查询玩家": {"description": "查询玩家信息,用法:查询玩家 玩家名","handler": "send","permission": 1,"group": "游戏命令","options": {"response": "正在查询玩家 {param:1} 的信息...\nCPU使用率: {cpu_usage}\n查询时间: {time}"}}}
- 固定游戏命令{"玩家列表": {"description": "查看在线玩家","handler": "fixed_command","permission": 1,"group": "游戏命令","options": {"command": "/list","lines": 2}}}
- 智能命令{"帮助": {"description": "获取帮助信息,用法:帮助 [页码]","handler": "smart_command","permission": 1,"group": "系统命令","options": {"command": "/help","lines": 5,"use_param_as_lines": false,"lines_1": 5,"lines_2": 5,"lines_3": 5,"lines_all": 20}}}
- 权限管理命令{"添加管理": {"description": "添加管理员,需要超级管理员权限","handler": "add_admin","permission": 3,"group": "权限命令"}}
- 多别名命令{"重启,restart,reboot": {"description": "重启机器人","handler": "restart","permission": 3,"group": "系统命令"}}
- 条件响应命令{"抽奖": {"description": "随机抽奖","handler": "send","permission": 1,"group": "娱乐命令","options": {"response": "{user_name} 的抽奖结果: {random}点\n{?{random} > 90:? 恭喜中大奖!|{?{random} > 60:? 还不错哦|? 下次加油}}"}}}
最佳实践
- 命令命名:使用简单易懂的中文或英文单词作为命令
- 权限设置:根据命令的敏感性合理设置权限级别
- 分组管理:将相关命令放在同一分组中,方便用户查找
- 错误处理:在响应中添加适当的错误提示信息
- 性能考虑:避免在占位符中使用计算量大的操作
注意事项
- 修改配置文件后,需要重启机器人才能生效
- 确保JSON格式正确,否则会导致配置加载失败
- 权限设置要谨慎,避免给普通用户过高的权限
- 占位符区分大小写,请确保使用正确的格式
故障排除
如果命令不工作,请检查:- JSON格式是否正确
- 处理器名称是否拼写正确
- 权限设置是否足够
- 占位符语法是否正确
最后编辑: