容器概述
容器 Container
类型是一个基础性的接口,用于代表为某个或某系列属性的"容器"。
Container
Container
接口应当是所有(或者说大部分)容器接口的父接口。Container
接口的定义如下:
interface Container
可以看到,Container
接口中不存在任何约束,仅仅用作为标记。
标准属性容器
实际上,容器类型更多的是在内部使用的。因此大部分情况下你不需要关心容器类型,更没有 必要去实现它。 simbot在核心库中提供了部分内部常用一些容器类型,并由部分内部类型实现(例如一些事件或者对象)。
此章节会简单介绍这些标准容器类型(中提供的属性),仅做了解即可。
文档展现
在下文中,你可能会遇到类似于如下的文档展现形式:
FooContainer
属性 | 类型 | 描述 |
---|---|---|
bar | Bar | property: bar |
foo suspend | Foo | suspend 'property': foo |
在这其中,bar
属性代表为一个普通的属性,其获取方式通常如下所示:
- Kotlin
- Java
val bar: Bar = container.bar
Bar bar = container.getBar();
但是对于 foo
属性,它标记了一个 suspend ,因此它代表一个 可挂起的 属性。
当然,这可能不是严格意义上的"属性",但这无伤大雅。对于这种属性,它的获取方式通常如下所示:
- Kotlin
- Java
val foo: Foo = container.foo() // suspend
Foo foo = container.getFoo(); // blocking
IDContainer
代表可用于获取 ID 的容器。
属性 | 类型 | 描述 |
---|---|---|
id | ID | 唯一标识 |
BotContainer
用于获取 Bot
实例的容器。
属性 | 类型 | 描述 |
---|---|---|
bot | Bot | 唯一标识 |
ChannelInfoContainer
用于获取 ChannelInfo
实例的容器。
属性 | 类型 | 描述 |
---|---|---|
channel suspend | ChannelInfo | 子频道信息 |
GuildInfoContainer
用于获取 GuildInfo
实例的容器。
属性 | 类型 | 描述 |
---|---|---|
guild suspend | GuildInfo | 频道服务器信息 |
GroupInfoContainer
用于获取 GroupInfo
实例的容器。
属性 | 类型 | 描述 |
---|---|---|
group suspend | GroupInfo | 群信息 |
UserInfoContainer
用于获取 UserInfo
实例的容器。
属性 | 类型 | 描述 |
---|---|---|
user suspend | UserInfo | 用户信息 |
MemberInfoContainer
用于获取 MemberInfo
实例的容器。
属性 | 类型 | 描述 |
---|---|---|
member suspend | MemberInfo | 组织成员信息 |
FriendInfoContainer
用于获取 FirendInfo
实例的容器。
属性 | 类型 | 描述 |
---|---|---|
friend suspend | FirendInfo | 好友信息 |
ResourceContainer
用于获取 Resource
实例的容器。
属性 | 类型 | 描述 |
---|---|---|
resource suspend | Resource | 资源 |
BotSocialRelationsContainer
BotSocialRelationsContainer
相比较于上述的 标准属性容器 来讲,稍微有些特殊。
此容器代表为 "Bot
社交关系容器" ,主要由 Bot
进行实现,并提供部分"社交信息"的获取API。
因此此容器下的类型提供的大多是 API
性质的内容。
FriendsContainer
获取与当前bot相关的 Friend
信息的社交容器。
- Kotlin
- Java
GroupsContainer
获取与当前bot相关的 Group
信息的社交容器。
- Kotlin
- Java
GuildsContainer
获取与当前bot相关的 Guild
信息的社交容器。