项目结构 - iLoner121/RumDice GitHub Wiki
项目结构
目录
- RumDice 总文件夹
- Core 核心部分,包含了项目的初始化、收发信息、自动匹配关键词接口等模块(一般不用修改这里)
- Initializer
- Initializer.cs 初始化程序
- Interface 下方Service中的类的接口
- Service
- ClientConnector.cs 和gocqhttp交互的组件
- CoreData.cs 系统核心功能所需数据及其管理器
- EventManager.cs 事件处理器,包括关键词匹配等功能
- MessagePipeline.cs 信息管线,用于均衡消息传入和发送的速率,以及多线程调用事件处理器
- Startup
- Startup.cs 启动类,Main函数所在位置,系统组件注册依赖注入的位置
- Initializer
- Framework 重要的服务类,主要包含文件系统、Log系统、语句处理工具等模块(一般情况下只需调用就好了)
- Attribute文件夹 所有的Attribute在此声明(用于识别自定义服务)
- KeyWordAttribute.cs 关键词声明 用于方法
- PriorityAttribute.cs 优先级声明 用于方法
- IsPrivateAttribute.cs 私聊/群聊声明 用于方法
- MyClassAttribute.cs 自定义类型声明 用于类/接口
- MyStructAttribute.cs 自定义存储类型声明 用于类/结构体
- MyServiceAttribute.cs 自定义内置服务声明 用于方法
- ReplyAttribute.cs 简单回复词声明 用于方法
- PrefixMatchAttribute.cs 前缀指令声明 用于方法
- Datatype文件夹 系统主要的数据类型在此声明,包括各类数据包的声明
- Post 传入信息的各种格式
- Post.cs 传入信息最基础格式
- BaseMessage.cs 聊天信息基础格式
- GroupMessage.cs 群聊数据包
- PrivateMessage.cs 私聊数据包
- Send 传出信息的各种格式
- Send.cs 发送信息基础格式
- System 系统所需的各种格式
- AppSetting.cs 系统设置数据包,其中包含了系统设置的默认值
- MyFileInfo.cs 用于文件读取
- MyObjInfo.cs 用于文件缓存
- MyMethodInfo.cs 用于回复接口匹配
- ReturnWordTable.cs 回复词的文件存储格式,继承自StringMap.cs。我建议你也可以把StringMap这类常用格式声明为一个模板,然后用一个特定名称的格式继承它,再来实际投入使用
- StringMap.cs 一种常用的可用于文件系统存储的格式
- Post 传入信息的各种格式
- Enum文件夹 系统主要的枚举类型在此声明
- AllType.cs 用于消息队列的统一分配
- LogLevel.cs 日志系统的日志等级
- PostType.cs 收信的基础类型
- MessageType.cs 聊天消息的基础类型
- MessageSubType.cs 聊天信息的附带类型
- Interface 下方Service中类的接口
- Service
- DataCenter.cs 文件系统,实现自定义数据类型的本地序列化存、取、在内存中缓存
- MessageTool.cs 语句处理工具,包含自动替换回复语句中的参数,自动提取数据包内的类型、文本消息,自动生成回复包等功能
- RumLogger.cs 日志系统,在控制台以及本地输出和存储系统日志
- ServiceManager.cs 对象管理器,管理自定义类型的生成和生命周期,一般情况下用不到(直接new或者访问单例就好了)
- Attribute文件夹 所有的Attribute在此声明(用于识别自定义服务)
- Module 功能模块部分,也就是说如果你要新增回复接口等功能,就要在这里写代码
- Interface 下方Service中类的接口
- Service
- Example.cs 示例类,该类和它的接口演示了该系统增加自定义服务的标准流程,内置了几个示例回复接口(你可以修改这个类的内容,但是一定不要将它和它的接口删除!!!!)
- Repository 仓库文件夹,里面全都是各类json。如果你要存储文件,就会存在这个文件夹下面的相对路径里
- System 内置服务
- Text 内置服务所需文本
- ReturnWordTable.json 回复词列表
- Text 内置服务所需文本
- Plugin 插件服务
- Draw 牌堆服务(其实也算是一种系统服务)
- System 内置服务
- Test 测试程序文件夹
- Tester.cs 测试程序挂载的类
- Log
- xxxxxxxx.log 每天的log会存储在不同的.log文件中,文件名为YYYYMMDD.log
- AppSetting.json 系统设置,如果缺失该文件会在第一次运行时自动创建,其值为默认值
- Core 核心部分,包含了项目的初始化、收发信息、自动匹配关键词接口等模块(一般不用修改这里)
总结
如果你不是开发者,你只需要掌握修改AppSetting.json的能力就足够,以及学会牌堆功能的基本格式,和修改ReturnWordTable,你就可以快速的改变RumDice的回复方式和内容,进而展现出各种各样的人设
如果你是开发者,可以通过阅读IExample.cs和Example.cs中的代码快速掌握RumDice处理框架的使用方式,以及DataCenter,RumLogger,MessageTool这三个常用工具的功能和使用方法,你就可以快速开发出自己想要的功能了 (直接使用.cs脚本的开发方式目前仍未实现)
如果你想要深度改造RumDice,那你可能要搞清楚所有的文件都是干啥的了。