跳到主要内容
版本:3.3.0

社交对象

目标对象 Objectives 是 simbot 中的基础定义类型之一。 Objectives 是对与 Bot 相关联的对象 (例如一个 组织 或一个具体的 用户 )的统称,或许也可以将他们理解为相对于 Bot 的 社交对象

Objectives 的大致定义如下:

public interface Objectives : BotContainer, IDContainer {
// ...
}

在定义中可以看出,Objectives 继承了 BotContainerIDContainer , 提供了获取 IDBot 的能力。

核心库提供了 Objectives 标准类型实现,其大致结构如下:

可以看到,UserOrganizationObjectives 的主要分支,分别代表了 用户组织

Organization

组织,是以人为中心的实体,常见为一个群聊、一个频道、一个服务器等。有关组织的简要介绍,参考 组织

可以在上面示例图中看出,组织 的主要实体类型有 GuildGroupChannel

Organization 额外实现 OrganizationInfoMuteSupportStructured ,其具体结构如下所示:

基于上述结构可以得知,组织 是结构化的,并且能够获取到 组织信息 ,同时_期望中_支持 mute API。

组织中所提供的属性与API大致如下 :

属性/API类型/返回值描述
botMemberBot组织所属bot。此为此bot在当前组织中所扮演的对象。
idID组织的唯一标识。
nameString参考 OrganizationInfo
iconString参考 OrganizationInfo
descriptionString参考 OrganizationInfo
createTimeTimestamp参考 OrganizationInfo
ownerIdID参考 OrganizationInfo
maximumMemberInt参考 OrganizationInfo
currentMemberInt参考 OrganizationInfo
owner suspendMember组织拥有者作为成员的实例。
previous suspend? extends Organization?尝试获取当前组织的上级组织。
childrenItems<Organization>尝试获取当前组织的下级组织列表。
rolesItems<Role>获取组织内的角色列表。
membersItems<Member>获取当前组织内的成员列表。
member(ID) suspendMember?获取组织内指定ID的成员。

Guild

Guild频道服务器,常见于一些支持频道相关的组件,例如 开黑啦 或者 QQ频道Guild 所代表的为频道结构中的 频道服务器,一个频道服务器中通常包含了多名成员和多个子频道( Channel )。

Organization 相比,Guild 中的 botGuildMemberBot 类型; 所有涉及到的 Member 类型均为 GuildMember 类型; children 得到的下级组织均为 Channel 类型。

属性/API类型/返回值描述
botMemberBot频道服务器所属bot。此为此bot在当前频道服务器中所扮演的对象。
owner suspendGuildMember频道服务器拥有者作为成员的实例。
childrenItems<Channel>获取当前频道服务器的子频道。
membersItems<GuildMember>获取当前频道服务器内的成员列表。
member(ID) suspendGuildMember?获取频道服务器内指定ID的成员。

ChatRoom

ChatRoom 代表 聊天室,用于表示一个可能发生交流的 Organization 。 由 GroupChannel 继承实现。

ChatRoom 实现了 SendSupport,因此在预期中,聊天室是应当支持进行 发送消息 的。

其结构如下:

Channel

Channel 代表为 Guild 下的 子频道ChannelChatRoom 的实现之一, 因此其被期望为一个能够发送消息的组织目标。

属性/API类型/返回值描述
idID唯一标识。
botGuildMemberBot当前子频道所属bot在当前子频道中所扮演的成员。
guildIdID参考 ChannelInfo
nameString参考 ChannelInfo
iconString参考 ChannelInfo
descriptionString参考 ChannelInfo
createTimeTimestamp参考 ChannelInfo
ownerIdID参考 ChannelInfo
maximumMemberInt参考 ChannelInfo
currentMemberInt参考 ChannelInfo
owner suspendGuildMember参考 Organization
guild suspendGuild当前子频道所属的频道服务器。
membersItems<GuildMember>当前子频道下的成员列表。大概率与Guild得到的结果一致。
member(ID) suspendGuildMember根据ID获取当前子频道下的指定成员。大概率与Guild得到的结果一致。

Group

User

Bot

Contact

Friend

Member

GuildMember

GroupMember

Stranger

MemberBot

GuildMemberBot

GroupMemberBot