Onebot 的 .Net SDK。
dotnet add package Onebot.Protocol
虽然叫 Protocol 其实多种 IConnection
实现都被包含在这个包,懒得搞 Onebot.Websocket Onebot.Http 之类的包了
var client = new OnebotClient(ConnectionFactory.FromWebsocket("localhost", 7890, "WHO_S_YOUR_DADDY"));
await client.SendPrivateMessageAsync("10000", new Message()
{
new MessageSegment()
{
Type = "text",
Data = new Dictionary<string, string>()
{
{"text", "Ob 的消息模型就是这样的,是不是很原汁原味?就问你还原的像不像吧。"}
}
}
});
void Configure(IServiceCollection services) => services
.AddSingleton<IConnection>(() => ConnectionFactory.FromWebsocket(...))
.AddTransient<OnebotClient>();
class Foo
{
readonly OnebotClient _client;
public Foo(OnebotClient client) => _client = client;
async void Bar() => await _client.SendPrivateMessageAsync(...);
}
就一个 OnebotClient
和 IConnection
,其他模型全部按照 Onebot 接口定义。
IConnection
负责将事件和动作与服务器传递并取得回执。OnebotClient
将事件封装为方法,更便于调用。
接口定义请参阅 Onebot 的对应部分。
- meta.heartbeat 心跳
- get_latest_events 获取最新事件列表
- get_supported_actions 获取支持的动作列表
- get_status 获取运行状态
- get_version 获取版本信息
- 基本消息创建
- 扩展
- send_message 发送消息
- delete_message 撤回消息
- message.private 私聊消息
- notice.friend_increase 好友增加
- notice.friend_decrease 好友减少
- notice.private_message_delete 私聊消息删除
- get_self_info 获取机器人自身信息
- get_user_info 获取用户信息
- get_friend_list 获取好友列表
- message.group 群消息
- notice.group_member_increase 群成员增加
- notice.group_member_decrease 群成员减少
- notice.group_member_ban 群成员禁言
- notice.group_member_unban 群成员解除禁言
- notice.group_admin_set 群管理员设置
- notice.group_admin_unset 群管理员取消设置
- notice.group_message_delete 群消息删除
- get_group_info 获取群信息
- get_group_list 获取群列表
- get_group_member_info 获取群成员信息
- get_group_member_list 获取群成员列表
- set_group_name 设置群名称
- leave_group 退出群
- kick_group_member 踢出群成员
- ban_group_member 禁言群成员
- unban_group_member 取消禁言群成员
- set_group_admin 设置群管理员
- unset_group_admin 取消设置群管理员
- message.channel 频道消息
- notice.guild_member_increase 群组成员增加
- notice.guild_member_decrease 群组成员减少
- notice.channel_message_delete 频道消息删除
- notice.channel_create 频道新建
- notice.channel_delete 频道删除
- get_guild_info 获取群组信息
- get_guild_list 获取群组列表
- get_channel_info 获取频道信息
- get_channel_list 获取频道列表
- get_guild_member_info 获取群组成员信息
- get_guild_member_list 获取群组成员列表
- set_guild_name 设置群组名称
- set_channel_name 设置频道名称
- leave_guild 退出群组
- upload_file 上传文件
- upload_file_fragmented 分片上传文件
- get_file 获取文件
- get_file_fragmented 分片获取文件