Hikari技术问题:如何将成员添加至指定频道
在Hikari中添加成员到指定频道的实现方法
Discord客户端里的"添加成员到频道"操作分两种场景,对应Hikari里不同的实现方式,以下是具体步骤:
1. 移动成员至语音频道
这是最常见的场景(右键成员选择移动到语音频道),通过修改公会成员的语音频道属性实现:
- 权限要求:机器人需拥有
MOVE_MEMBERS权限,且目标语音频道对机器人开放 - 代码示例:
import hikari async def move_member_to_voice(bot, guild_id: int, user_id: int, channel_id: int): await bot.rest.modify_guild_member( guild_id=guild_id, user_id=user_id, channel_id=channel_id, reason="用户请求移动至指定语音频道" )
2. 添加成员至私有文字频道
私有文字频道需要通过赋予成员频道权限实现:
- 权限要求:机器人需拥有
MANAGE_CHANNELS或MANAGE_ROLES权限 - 代码示例:
import hikari async def add_member_to_private_text(bot, channel_id: int, user_id: int): # 优先从缓存获取频道,缓存无则通过REST拉取 channel = bot.cache.get_guild_channel(channel_id) or await bot.rest.fetch_channel(channel_id) await channel.edit_permissions( user_id, allow=hikari.Permissions.VIEW_CHANNEL | hikari.Permissions.SEND_MESSAGES, deny=hikari.Permissions.NONE, reason="添加成员至私有文字频道" )
补充说明
你之前没找到对应方法,大概率是因为这两个操作分属不同模块:
- 语音频道移动属于公会成员管理(对应文档里的
guilds/members板块) - 私有文字频道权限修改属于频道权限管理(对应文档里的
channels/permissions板块)
内容的提问来源于stack exchange,提问作者brandav
相关产品推荐
相关产品推荐

