群成员 OneBotMember
OneBotMember 实现 Member, OneBotStrangerAware 以及其他一些功能接口(后续 "更多能力" 中会介绍), 用于表示一个 OneBot11 协议中的 群成员。
Member
OneBotMember 实现来自 Member 定义的抽象属性或函数。
- id
QQ号。
- avatar
成员QQ头像。
- name
用户名。
- nick
在群内的昵称, 一些地方(比如协议中)也会称其为
card。
SendSupport
OneBotMember 拥有发送消息的能力。 使用 send 发送纯文本、消息或转发事件消息体。
DeleteSupport
OneBotMember 实现接口 DeleteSupport ,代表其支持"删除"能力。 在这里,删除即表示将这个成员踢出群。
可以注意到, delete 支持可变参数 options。 在 OneBotGroup 中,它支持如下的可选属性:
- StandardDeleteOption.IGNORE_ON_FAILURE
忽略调用过程中可能会产生的任何异常。
- OneBotMemberDeleteOption.*
OneBotMemberDeleteOption的所有子类型。- RejectRequest
拒绝此人的加群请求,也就是踢出后将其屏蔽。
OneBotStrangerAware
OneBotMember 实现 OneBotStrangerAware, 可以通过 toStranger 查询并得到一个对应的 OneBotStranger 类型。
更多能力
设置昵称
可以通过 setNick(String) 设置此成员在群内的昵称。
设置管理员
可以通过 setAdmin(Boolean) 设置此成员为管理或取消管理。
参数为 true 设置为管理, false 取消管理
获取原始类型
有些时候可能需要获取OneBot11协议中的 Member 类型的内容。 OneBotMember 的实现并不唯一,因此并不一定是来自API所获取的。
可以通过 getSourceMemberInfo 得到 GetGroupMemberInfoApi 接口的请求结果。
禁言
可以使用 ban(...) 或 unban() 对成员禁言或解除禁言。
通常来讲禁言时间应该大于等于1分钟、小于30天。 但是代码内未作校验,这交给了OneBot服务端处理。
设置头衔
可以通过 setSpecialTitle(String?) 设置此成员在群内的特殊头衔。
获取 OneBotMember
群成员 OneBotMember 通常来自 群 OneBotGroup 或与群成员相关的事件。
来自事件
大多数跟群成员相关的事件中都可以直接获取到 OneBotMember。 通常来讲,如果事件主体与群成员相关,那么就是 content, 如果侧面相关,例如某个群成员消息事件中, 消息才是重点,而群成员则为 author。