好友 OneBotFriend
公告
站点迁移啦~!
为什么迁移?
作为由我们官方维护的组件库,分散在各自的文档站点中的确有好处:它们可以各自维护自己所需的东西、互不干扰。
但是缺点也很明显: 太过分散。
组件库与核心库之间的关系是比较紧密的, 我们希望你能够在一个站点内就可以查阅或搜索到所有你想要得知的信息。
OneBotFriend
实现 Contact
, OneBotStrangerAware
和其他一些功能接口(后续 "更多能力" 中会介绍), 用于表示一个 OneBot11 协议中的 好友。
Contact
OneBotFriend
实现来自 Contact
定义的抽象属性或函数。
- id
QQ号。
- avatar
成员QQ头像。
- name
用户名。
SendSupport
OneBotFriend
拥有发送消息的能力。 使用 send
发送纯文本、消息或转发事件消息体。
val friend: OneBotFriend = ...
friend.send("text")
friend.send("text".toText() + Face(123.ID))
friend.send(messageContent)
OneBotFriend friend = ...;
friend.sendAsync("text");
friend.sendAsync(
Messages.builder()
.add("text")
.add(new Face(Identifies.of(123)))
.build()
);
friend.sendAsync(messageContent);
OneBotFriend friend = ...;
friend.sendBlocking("text");
friend.sendBlocking(
Messages.builder()
.add("text")
.add(new Face(Identifies.of(123)))
.build()
);
friend.sendBlocking(messageContent);
OneBotFriend friend = ...;
friend.sendReserve("text")
.transform(SuspendReserves.mono())
.subscribe();
friend.sendReserve(
Messages.builder()
.add("text")
.add(new Face(Identifies.of(123)))
.build()
)
.transform(SuspendReserves.mono())
.subscribe();
friend.sendReserve(messageContent)
.transform(SuspendReserves.mono())
.subscribe();
OneBotStrangerAware
OneBotFriend
实现 OneBotStrangerAware
, 可以通过 toStranger
查询并得到一个对应的 OneBotStranger
类型。
val friend: OneBotFriend = ...
val stranger = friend.toStranger()
OneBotFriend friend = ...;
friend.toStrangerAsync()
.thenAccept(stranger -> {
// ...
});
OneBotFriend friend = ...;
var stranger = friend.toStrangerBlocking();
OneBotFriend friend = ...;
friend.toStrangerReserve()
.transform(SuspendReserves.mono())
.subscribe(stranger -> {
// ...
});
更多能力
SendLinkSupport
OneBotFriend
实现 SendLinkSupport
接口, 支持使用 sendLike(Int)
来点赞用户。
参数代表次数,一般来说一人一天最多共计10次赞, 但是代码内无校验,交给OneBot服务端处理。
val friend: OneBotFriend = ...
friend.sendLike(5)
OneBotFriend friend = ...;
friend.sendLinkAsync(5);
OneBotFriend friend = ...;
friend.sendLinkBlocking(5);
OneBotFriend friend = ...;
friend.sendLinkReserve(5)
.transform(SuspendReserves.mono())
.subscribe();
获取 OneBotFriend
好友 OneBotFriend
通常来自 OneBotBot 或与好友相关的事件。
来自事件
大多数跟好友相关的事件中都可以直接获取到 OneBotFriend
。 通常来讲,如果事件主体与好友相关,那么就是 content
, 如果侧面相关,例如某个好友消息事件中, 消息才是重点,而好友则为 author
。
Last modified: 26 July 2024