我想创建一个统计机器人。如果尚未创建通道,则应该在某个类别下自动创建通道。但是,我想设置权限,这样没有人可以连接,通话,创建视频或使用该活动。
我怎样才能让每个人都能看到这个频道,但没有人可以使用它?这些通道通常用锁标记。
我尝试了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)。