【问题标题】:Get the permissions of a category Channel and set it to voice channel discord.py获取一个类别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)

谁能帮帮我?

【问题讨论】:

    标签: python api discord discord.py discord.py-rewrite


    【解决方案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)
    

    谢谢。

    【讨论】:

      猜你喜欢
      • 2021-11-13
      • 2020-06-15
      • 1970-01-01
      • 2020-11-05
      • 1970-01-01
      • 2021-08-26
      • 2020-10-22
      • 2021-02-20
      • 2020-07-07
      相关资源
      最近更新 更多