Skip to content

原汁原味的 Onebot 模型,使用多种通讯方式,连接 Onebot 协议服务器

License

Notifications You must be signed in to change notification settings

theGravityLab/Onebot.Net

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Onebot.Net

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(...);
}

文档

就一个 OnebotClientIConnection,其他模型全部按照 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 分片获取文件

About

原汁原味的 Onebot 模型,使用多种通讯方式,连接 Onebot 协议服务器

Topics

Resources

License

Stars

Watchers

Forks

Languages