llms.txt: machine-readable documentation index. Markdown version of this page is also available.

Simple Robot 4.x Help

频道成员 QGMember

频道成员,即 Member ,存在于频道服务器(Guild )中。

API中的频道成员

在API模块中存在一些用来获取 Member 的API。

比如你可以通过 GetMemberApi 获取 SimpleMember 类型结果的成员信息、 DeleteMemberApi 删除(踢出)一个成员等。

Stdlib模块中的频道成员

当你直接使用标准库模块时,你可以在一些与频道成员相关的事件中得到它的信息。

比如当你处理 GuildMemberAdd 类型事件时,可以通过 data 获取到 EventMember。

bot.subscribe<GuildMemberAdd> { val member: EventMember = data }
bot.subscribe(EventProcessors.async(GuildMemberAdd.class, (event, raw) -> { var member = event.getData(); // ... return CompletableFuture.completedFuture(null); }));
bot.subscribe(EventProcessors.block(GuildMemberAdd.class, (event, raw) -> { var member = event.getData(); }));

组件库中的频道成员

组件中 QGMember 类型实现了simbot标准API中的 Member 类型,并提供与频道成员相关的功能。 如果你想要获取一个 QGChannel ,你可以在 QGBot、 QGGuild 或一个与子频道相关的事件中获取。

在 QGBot 中获取子频道你可以前往参考 频道操作。

在 QGGuild 中获取频道成员你可以前往参考 获取成员。

在事件中获取,那么这个事件应当与频道成员有所关联。 它们通常使用 member 属性获取。

以 QGMemberAddEvent 事件为例:

val event: QGMemberAddEvent = ... val member = event.member()
QGMemberAddEvent event = ... event.getMemberAsync() .thenAccept(member -> { ... })
QGMemberAddEvent event = ... var member = event.getMemberBlocking()
QGChannelCreateEvent event = ... event.getMemberReserve() // 例如转为 Reactor 的 `Mono` .transform(SuspendReserves.mono()) .subscribe(member -> { ... })

私聊消息

QGMember 实现simbot标准API中的 Channel ,而它又支持 SendSupport, 也就是说 QGMember 支持向某个频道成员发送私聊消息。

val member: QGMember = ... member.send("消息内容") member.send("消息内容".toText() + At("user id".ID))
QGMember member = ... var sendTask1 = member.sendAsync("消息内容"); var sendTask2 = member.sendAsync(Messages.of( Text.of("文本消息"), At.of(Identifies.of("user id")) ));
QGMember member = ... member.sendBlocking("消息内容"); member.sendBlocking(Messages.of( Text.of("文本消息"), At.of(Identifies.of("user id")) ));
QGTextChannel member = ... member.sendReserve("消息内容") .transform(SuspendReserves.mono()) .subscribe(receipt -> { ... }); member.sendReserve(Messages.of( Text.of("文本消息"), At.of(Identifies.of("user id")) )).transform(SuspendReserves.mono()) .subscribe(receipt -> { ... });

角色操作

QGMember 拥有一些获取或操作自身角色 (QGMemberRole) 的API。

获取角色

val member: QGMember = ... // 获取当前用户拥有的角色集合 val roles = member.roles
QGmember member = ... // 可以直接在异步中遍历 // 第一个参数 scope 可以选择 QGGuild、QGBot 等, // 或者直接使用 GlobalScope member.getRoles().collectAsync(GlobalScope.INSTANCE, member -> { }); // 可以使用 Collectables.toListAsync / collectAsync var rolesCollectable = member.getRoles(); Collectables.toListAsync(rolesCollectable) .thenAccept(role -> {});
QGmember member = ... // 可以使用 SuspendReserves.list 转为 List var roleList = member.getRoles().transform(SuspendReserves.list()); // 可以使用 Collectables 转成 Stream 或 List var rolesCollectable = member.getRoles(); Collectables.asStream(rolesCollectable) .forEach(role -> {});
QGmember member = ... // 可以直接在异步中遍历 // 第一个参数 scope 可以选择 QGGuild、QGBot 等, // 或者直接使用 GlobalScope member.getRoles().collectAsync(GlobalScope.INSTANCE, role -> { }); var rolesCollectable = guild.getRoles(); // 可以使用 Collectables 转为 Flux Collectables.asFlux(rolesCollectable) .subscribe(role -> { });
07 November 2026