项目结构 - 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函数所在位置,系统组件注册依赖注入的位置
    • 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 一种常用的可用于文件系统存储的格式
      • Enum文件夹 系统主要的枚举类型在此声明
        • AllType.cs 用于消息队列的统一分配
        • LogLevel.cs 日志系统的日志等级
        • PostType.cs 收信的基础类型
        • MessageType.cs 聊天消息的基础类型
        • MessageSubType.cs 聊天信息的附带类型
      • Interface 下方Service中类的接口
      • Service
        • DataCenter.cs 文件系统,实现自定义数据类型的本地序列化存、取、在内存中缓存
        • MessageTool.cs 语句处理工具,包含自动替换回复语句中的参数,自动提取数据包内的类型、文本消息,自动生成回复包等功能
        • RumLogger.cs 日志系统,在控制台以及本地输出和存储系统日志
        • ServiceManager.cs 对象管理器,管理自定义类型的生成和生命周期,一般情况下用不到(直接new或者访问单例就好了)
    • Module 功能模块部分,也就是说如果你要新增回复接口等功能,就要在这里写代码
      • Interface 下方Service中类的接口
      • Service
        • Example.cs 示例类,该类和它的接口演示了该系统增加自定义服务的标准流程,内置了几个示例回复接口(你可以修改这个类的内容,但是一定不要将它和它的接口删除!!!!
    • Repository 仓库文件夹,里面全都是各类json。如果你要存储文件,就会存在这个文件夹下面的相对路径里
      • System 内置服务
        • Text 内置服务所需文本
          • ReturnWordTable.json 回复词列表
      • Plugin 插件服务
      • Draw 牌堆服务(其实也算是一种系统服务)
    • Test 测试程序文件夹
      • Tester.cs 测试程序挂载的类
    • Log
      • xxxxxxxx.log 每天的log会存储在不同的.log文件中,文件名为YYYYMMDD.log
    • AppSetting.json 系统设置,如果缺失该文件会在第一次运行时自动创建,其值为默认值

总结

如果你不是开发者,你只需要掌握修改AppSetting.json的能力就足够,以及学会牌堆功能的基本格式,和修改ReturnWordTable,你就可以快速的改变RumDice的回复方式和内容,进而展现出各种各样的人设

如果你是开发者,可以通过阅读IExample.cs和Example.cs中的代码快速掌握RumDice处理框架的使用方式,以及DataCenter,RumLogger,MessageTool这三个常用工具的功能和使用方法,你就可以快速开发出自己想要的功能了 (直接使用.cs脚本的开发方式目前仍未实现)

如果你想要深度改造RumDice,那你可能要搞清楚所有的文件都是干啥的了。