获取一个类别Channel的权限并设置为语音通道discord.py
Posted
技术标签:
【中文标题】获取一个类别Channel的权限并设置为语音通道discord.py【英文标题】:Get the permissions of a category Channel and set it to voice channel discord.py 【发布时间】:2021-04-05 11:48:27 【问题描述】:我想在更改发言权限的语音频道中将所有人静音,但是当我这样做时,它不再与类别频道同步。
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)
谁能帮帮我?
【问题讨论】:
【参考方案1】:由于权限不一样,语音通道将不会与类别同步。因此,当您使用 speak = False
覆盖发言权限时,它不再与类别同步。如果您之后同步权限,您将覆盖speak = False
。
您提供的第二个代码按预期工作(只要找到类别),它获取类别的权限,将类别权限设置为语音通道,设置speak = False
,然后不再与类别。
【讨论】:
是的,第二个它应该可以工作,但事实并非如此。你知道为什么吗? 它不起作用是什么意思?它是否复制类别的权限?是否将发言权限设置为 False?【参考方案2】:为了让它工作,我将 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)
谢谢。
【讨论】:
以上是关于获取一个类别Channel的权限并设置为语音通道discord.py的主要内容,如果未能解决你的问题,请参考以下文章