获取类别频道的权限并将其设置为voice Channel discord.py

2024-03-29 10:59:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我想让语音频道中的每个人都静音,更改讲话权限,但当我这样做时,它将不再与分类频道同步

cat = ctx.guild.get_channel(categorychannel)
everyone = ctx.guild.default_role
channel = await ctx.guild.create_voice_channel("test", category=cat)
await channel.set_permissions(everyone, speak=False)

因此,我尝试获取类别频道权限,并将其设置为语音频道,但由于某些原因,它无法工作

cat = ctx.guild.get_channel(categorychannel)
everyone = ctx.guild.default_role
perm = cat.overwrites_for(everyone)
perm.speak = False
channel = await ctx.guild.create_voice_channel("test", category=cat)
await channel.set_permissions(everyone, overwrite=perm)

有人能帮我吗


Tags: default权限getcreatechannel语音await频道
2条回答

语音频道将不会与类别同步,因为权限不同。因此,当您使用speak = False覆盖speak权限时,它将不再与类别同步。如果随后同步权限,则将覆盖speak = False

您提供的第二个代码按预期工作(只要找到一个类别),它获取该类别的权限,设置语音频道的类别权限,设置speak = False,然后不再与该类别同步

为了让它工作,我将Bot文件移到了我的服务器上,它开始正常工作,我不知道为什么,但它有,可能是缓存或我桌面上的一些配置。 所以第二个代码是正确的,如@Lemon.py所说。 这是代码

cat = ctx.guild.get_channel(categorychannel)
everyone = ctx.guild.default_role
perm = cat.overwrites_for(everyone)
perm.speak = False
channel = await ctx.guild.create_voice_channel("test", category=cat)
await channel.set_permissions(everyone, overwrite=perm)

谢谢

相关问题 更多 >