创建语音通道,只能查看,不能加入



我想创建一个统计机器人。如果尚未创建通道,则应该在某个类别下自动创建通道。但是,我想设置权限,这样没有人可以连接,通话,创建视频或使用该活动。

我怎样才能让每个人都能看到这个频道,但没有人可以使用它?这些通道通常用锁标记。

我尝试了speak = False,但我得到了这个错误:

TypeError: create_voice_channel() got an unexpected keyword argument 'speak'

@bot.event
async def on_ready():
print(f'We have logged in as {bot.user}')

activity = discord.Game(name="Sudoku", type=1)

await bot.change_presence(status=discord.Status.online, activity=activity)
guilds = bot.guilds
for guild in guilds:
Member = len([m for m in guild.members if not m.bot])

channel = get(guild.channels, name=f"Count: {Member}")
if not channel:
cat = discord.utils.get(guild.categories, id=<id>)
Member_count_channels.append(await guild.create_voice_channel(f'Count: {Member}', category=cat, speak = False)) 

您可以通过discord覆盖来实现:

perms = channel.overwrites_for(ctx.guild.default_role)
perms.connect = False
await channel.set_permissions(ctx.guild.default_role, overwrite=perms)

代码获取通道的现有权限,将连接权限设置为false,然后应用于默认角色(everyone)。

最新更新