Group

interface Group : Contact, CoroutineScope, FileSupported, AudioSupported

群.

群员操作

获取群成员

使用 Group.members 可获取除 Bot 自身外的所有群成员 (包括管理员和群主) 列表. Bot 自身在群内的对象可通过 botAsMember 获取.

get 可以按 QQ 号码获取一个群成员对象, 在不存在时返回 null. getOrFail 则在不存在时抛出 NoSuchElementException.

判断管理员权限

首先获取到目标群成员对象, 然后使用 NormalMember.permission 获取其权限.

Bot 在群内的权限可通过 Group.botPermission 或其 Member 对象NormalMember.permission 获取.

其他动作

群公告

可通过 Group.announcements 获取公告支持. 可在 Announcements 查看详细文档.

群文件

使用 Group.files 获取群文件管理器后操作. 详见 RemoteFiles.

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
open override fun avatarUrl(spec: AvatarSpec): String

群头像下载链接.

Link copied to clipboard
abstract operator fun contains(id: Long): Boolean

当本群存在 Member.idid 的群员时返回 true.

open operator fun contains(member: NormalMember): Boolean

member 是本群成员时返回 true. 将同时成员 所属群. 同一个用户在不同群内的 Member 对象不相等.

Link copied to clipboard
abstract operator fun get(id: Long): NormalMember?

获取群成员实例. 不存在时返回 null.

Link copied to clipboard
open fun getOrFail(id: Long): NormalMember

获取群成员实例. 不存在时抛出 kotlin.NoSuchElementException.

Link copied to clipboard
abstract suspend fun quit(): Boolean

让机器人退出这个群.

Link copied to clipboard
open suspend override fun sendMessage(message: String): MessageReceipt<Group>

发送纯文本消息

abstract suspend override fun sendMessage(message: Message): MessageReceipt<Group>

向这个对象发送消息.

Link copied to clipboard
abstract suspend fun setEssenceMessage(source: MessageSource): Boolean

将一条消息设置为群精华消息, 需要管理员或群主权限. 操作成功返回 true.

Link copied to clipboard
abstract suspend fun uploadAudio(resource: ExternalResource): OfflineAudio

上传一个语音文件以备发送. resource 需要调用方关闭.

Link copied to clipboard
expect abstract suspend fun uploadImage(resource: ExternalResource): Image

上传一个 资源 作为图片以备发送.

Properties

Link copied to clipboard
abstract val active: GroupActive

获取群荣誉相关功能接口

Link copied to clipboard
abstract val announcements: Announcements

获取群公告相关功能接口

Link copied to clipboard
open override val avatarUrl: String

群头像下载链接, 规格默认为 AvatarSpec.LARGEST

Link copied to clipboard
expect abstract override val bot: Bot

这个联系对象所属 Bot.

Link copied to clipboard
abstract val botAsMember: NormalMember

Bot 在群内的 Member 实例

Link copied to clipboard
open val botMuteRemaining: Int

机器人被禁言还剩余多少秒

Link copied to clipboard
open val botPermission: MemberPermission

机器人在这个群里的权限

Link copied to clipboard
abstract val coroutineContext: CoroutineContext
Link copied to clipboard
expect abstract val files: RemoteFiles

获取远程文件列表 (管理器).

Link copied to clipboard
abstract override val id: Long

同为 groupCode, 用户看到的群号码.

Link copied to clipboard
abstract val members: ContactList<NormalMember>

群成员列表, 不含机器人自己, 含群主.

Link copied to clipboard
abstract var name: String

群名称.

Link copied to clipboard
abstract val owner: NormalMember

群主.

Link copied to clipboard
abstract val settings: GroupSettings

群设置

Extensions

Link copied to clipboard
inline fun Group.checkBotPermission(required: MemberPermission, crossinline lazyMessage: () -> String = { "Permission denied: required $required, got actual $botPermission for $bot in group $id" })

要求 Bot 在这个群里的权限至少为 required, 否则抛出异常 PermissionDeniedException

Link copied to clipboard
inline fun Group.getMember(id: Long): NormalMember?

get. 在一些不适合使用 get 的情境下使用 getMember.

Link copied to clipboard
inline fun Group.getMemberOrFail(id: Long): NormalMember

getMemberOrFail. 在一些不适合使用 getOrFail 的情境下使用 getMemberOrFail.

Link copied to clipboard
val Group.isBotMuted: Boolean

返回机器人是否正在被禁言

Link copied to clipboard
suspend fun Group.publishAnnouncement(content: String, parameters: AnnouncementParameters = AnnouncementParameters.DEFAULT): OnlineAnnouncement
inline suspend fun Group.publishAnnouncement(content: String, parameters: AnnouncementParametersBuilder.() -> Unit): OnlineAnnouncement

在该群发布群公告并获得 OnlineAnnouncement, 需要管理员权限. 发布公告后群内将会出现 "有新公告" 系统提示.

Link copied to clipboard
suspend fun Group.setEssenceMessage(chain: MessageChain): Boolean

将一条消息设置为群精华消息, 需要管理员或群主权限. 操作成功返回 true.