一个功能丰富的 Discord 机器人,支持 AI 聊天、B站内容获取、GitHub 集成、图像处理等多种功能。
- 支持多种 AI 服务(OpenAI、Ollama 等)
- 可配置的角色扮演模式
- 智能预处理和后处理功能
- 灵活的提示词配置系统
- 视频信息查询和分享
- 用户动态获取
- 直播状态监控
- 视频评论查看
- 用户信息展示
- 仓库信息查询
- Issue 和 PR 状态监控
- 代码仓库统计
- 发布信息获取
- 图像生成和编辑
- 多种图像效果处理
- 自定义图像命令
- 服务器状态查询
- 玩家信息获取
- Minecraft 相关工具
- 自动时间广播
- 定时任务管理
- 游戏状态更新
- 糖果系统(用户可以给机器人糖果)
- 用户配置管理
- 机器人信息查询
- .NET 9.0 - 主要开发框架
- Discord.Net - Discord API 集成
- SQLite - 数据存储和缓存
- MediatR - CQRS 模式实现
- NLog - 日志记录
- SixLabors.ImageSharp - 图像处理
- Newtonsoft.Json - JSON 序列化
- BiliKernel - Bilibili API 集成
- Octokit - GitHub API 集成
- Google APIs - 搜索功能集成
- .NET 9.0 运行时
- 支持 Windows、Linux、macOS
- 至少 512MB 内存
- 网络连接(用于 Discord、API 调用等)
- 前往 Releases 页面
- 下载适合您系统的最新版本
- 解压到目标目录
# 克隆仓库
git clone https://github.com/BAKAOLC/RitsukageBotForDiscord.git
cd RitsukageBotForDiscord
# 安装依赖(需要 .NET 9.0 SDK)
dotnet restore
# 构建项目
dotnet build --configuration Release
# 运行
dotnet run --project src/RitsukageBotForDiscord/RitsukageBotForDiscord.csproj
复制 appsettings.json
并根据需要修改:
{
"Discord": {
"Token": "你的Discord机器人Token"
},
"GitHub": {
"ProductHeader": "RitsukageBotForDiscord",
"AppClientId": "GitHub应用客户端ID"
},
"Google": {
"ApiKey": "Google API密钥",
"SearchEngineId": "搜索引擎ID"
},
"Cache": "cache.db",
"Sqlite": "data.db"
}
- 前往 Discord Developer Portal
- 创建新应用程序
- 在 "Bot" 选项卡中创建机器人并获取 Token
- 设置必要的权限:
- Send Messages
- Use Slash Commands
- Read Message History
- Add Reactions
- Attach Files
- Embed Links
{
"AI": {
"Enabled": true,
"Service": [
{
"Name": "OpenAI",
"Endpoint": "https://api.openai.com/v1",
"ApiKey": "your-openai-api-key",
"ModelId": "gpt-3.5-turbo"
}
]
}
}
# 直接运行
dotnet run --project src/RitsukageBotForDiscord/RitsukageBotForDiscord.csproj
# 或者运行编译后的程序
./bin/Release/net9.0/RitsukageBot
机器人支持以下主要命令:
/bot info
- 查看机器人信息/candy
- 给机器人一颗糖果/time
- 时间相关功能/github
- GitHub 仓库查询/bilibili
- B站内容查询/ai
- AI 聊天功能(需要配置)/minecraft
- Minecraft 相关功能
{
"AutoUpdate": {
"Enabled": true,
"CheckInterval": 3600000,
"Information": {
"RepositoryOwner": "BAKAOLC",
"RepositoryName": "RitsukageBotForDiscord",
"BranchName": "main",
"TargetJobName": "Build - {0} - 9.0.x"
}
}
}
{
"CustomValues": {
"GameStatus": [
{
"Type": "Playing",
"Name": "Minecraft"
}
]
}
}
- 安装 .NET 9.0 SDK
- 推荐使用 Visual Studio 2022 或 JetBrains Rider
- 安装 Git 版本控制
src/RitsukageBotForDiscord/
├── Modules/ # 功能模块
│ ├── AI/ # AI 相关功能
│ ├── Bilibili/ # B站集成
│ ├── Github/ # GitHub 集成
│ └── ...
├── Services/ # 服务层
├── Library/ # 公共库
├── Options/ # 配置选项
├── Program.cs # 程序入口
└── appsettings.json # 配置文件
- 在
Modules
目录下创建新的模块类 - 继承
InteractionModuleBase<SocketInteractionContext<SocketSlashCommand>>
- 使用
[SlashCommand]
特性定义命令 - 在服务容器中注册需要的依赖
示例:
[Group("example", "Example Commands")]
public class ExampleInteractions : InteractionModuleBase<SocketInteractionContext<SocketSlashCommand>>
{
[SlashCommand("hello", "Say hello")]
public async Task HelloAsync()
{
await RespondAsync("Hello World!").ConfigureAwait(false);
}
}
# 恢复依赖
dotnet restore
# 构建项目
dotnet build
# 运行测试(如果有)
dotnet test
# 发布版本
dotnet publish -c Release -r win-x64 --self-contained
我们欢迎社区贡献!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature
) - 提交更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 开启 Pull Request
- 遵循 C# 编码规范
- 使用有意义的变量和方法名
- 添加适当的注释和文档
- 确保代码通过现有测试
如果您发现任何问题或有功能建议,请:
- 检查 Issues 是否已存在相关问题
- 如果没有,请创建新的 Issue 并提供详细描述
- 包含错误重现步骤(如果适用)
本项目采用 GNU General Public License v3.0 许可证。
感谢以下开源项目和贡献者:
- Discord.Net - Discord API 集成
- BiliKernel - Bilibili API 集成
- Octokit - GitHub API 集成
- 所有贡献者和社区成员
- GitHub Issues: 问题反馈
- 项目主页: RitsukageBotForDiscord
注意: 使用本机器人需要遵循 Discord 服务条款以及相关 API 的使用条款。请确保您有权使用配置的各种 API 服务。