跳到主要内容
版本:3.3.0

容器概述

容器 Container 类型是一个基础性的接口,用于代表为某个或某系列属性的"容器"。

Container​

Container 接口应当是所有(或者说大部分)容器接口的父接口。Container 接口的定义如下:

 interface Container

可以看到,Container 接口中不存在任何约束,仅仅用作为标记。

标准属性容器​

实际上,容器类型更多的是在内部使用的。因此大部分情况下你不需要关心容器类型,更没有必要去实现它。 simbot在核心库中提供了部分内部常用一些容器类型,并由部分内部类型实现(例如一些事件或者对象)。

此章节会简单介绍这些标准容器类型(中提供的属性),仅做了解即可。

文档展现

在下文中,你可能会遇到类似于如下的文档展现形式:

FooContainer​

属性类型描述
barBarproperty: bar
foo suspendFoosuspend 'property': foo

在这其中,bar 属性代表为一个普通的属性,其获取方式通常如下所示:

val bar: Bar = container.bar

但是对于 foo 属性,它标记了一个 suspend ,因此它代表一个 可挂起的 属性。 当然,这可能不是严格意义上的"属性",但这无伤大雅。对于这种属性,它的获取方式通常如下所示:

val foo: Foo = container.foo() // suspend

IDContainer​

代表可用于获取 ID 的容器。

属性类型描述
idID唯一标识

BotContainer​

用于获取 Bot 实例的容器。

属性类型描述
botBot唯一标识

ChannelInfoContainer​

用于获取 ChannelInfo 实例的容器。

属性类型描述
channel suspendChannelInfo子频道信息

GuildInfoContainer​

用于获取 GuildInfo 实例的容器。

属性类型描述
guild suspendGuildInfo频道服务器信息

GroupInfoContainer​

用于获取 GroupInfo 实例的容器。

属性类型描述
group suspendGroupInfo群信息

UserInfoContainer​

用于获取 UserInfo 实例的容器。

属性类型描述
user suspendUserInfo用户信息

MemberInfoContainer​

用于获取 MemberInfo 实例的容器。

属性类型描述
member suspendMemberInfo组织成员信息

FriendInfoContainer​

用于获取 FirendInfo 实例的容器。

属性类型描述
friend suspendFirendInfo好友信息

ResourceContainer​

用于获取 Resource 实例的容器。

属性类型描述
resource suspendResource资源

BotSocialRelationsContainer​

BotSocialRelationsContainer 相比较于上述的 标准属性容器 来讲,稍微有些特殊。 此容器代表为 "Bot社交关系容器" ,主要由 Bot 进行实现,并提供部分"社交信息"的获取API。 因此此容器下的类型提供的大多是 API 性质的内容。

FriendsContainer​

获取与当前bot相关的 Friend 信息的社交容器。

API返回值描述
friendsItems<Friend>获取bot的好友列表
friend(ID) suspendFriend?获取bot指定ID的好友
val friends: Items<Friend> = container.friends

val id: ID = ...
val friend: Friend = container.friend(id)

GroupsContainer​

获取与当前bot相关的 Group 信息的社交容器。

API返回值描述
groupsItems<Group>获取bot的群列表
group(ID) suspendGroup?获取bot指定ID的群
val groups: Items<Group> = container.groups

val id: ID = ...
val group: Group = container.group(id)

GuildsContainer​

获取与当前bot相关的 Guild 信息的社交容器。

API返回值描述
guildsItems<Guild>获取bot的频道服务器列表
guild(ID) suspendGuild?获取bot指定ID的频道服务器
val guilds: Items<Guild> = container.guilds

val id: ID = ...
val guild: Guild = container.guild(id)