首页 > 解决方案 > 更改某个角色的频道权限 discord.py

问题描述

我正在制作一个登录到另一个频道的 tempmute 命令,我拥有它,这样当没有名为“modlog”的频道时它会创建一个,但到目前为止我拥有它,所以每个人都无法输入它,包括我。我如何使它成为一个名为“会员”的角色,不能只输入它?

代码:

  `except:
  await ctx.send("No channel called 'modlog', creating one. (Note: Setup the permissions to allow 
  everyone to see the channel but cannot type in it")
  await asyncio.sleep(3)
  await ctx.send(":white_check_mark: Channel Created! :thumbsup:") 
  perms = ctx.channel.overwrites_for(ctx.guild.default_role)
  perms.send_messages=False
  await ctx.guild.create_text_channel(name='modlog', permissions=perms)
  logs = discord.utils.get(guild.text_channels, name="modlog")
  await logs.set_permissions(ctx.guild.default_role, send_messages=False)
  guild = ctx.guild
  modlog = discord.utils.get(guild.text_channels, name="modlog")
  await modlog.send(embed=kickEmbed)
  await modlog.send(embed=unmutelog)
  await ctx.send(embed=embed)`

标签: pythonpython-3.xdiscord.py

解决方案


通过这样做

modlog = discord.utils.get(guild.text_channels, name="modlog")
logs = discord.utils.get(guild.text_channels, name="modlog")
await logs.set_permissions(modlog , send_messages=False)

因此,首先您获得了角色,然后更新了频道权限。ctx.guild.default_role属于everyone。让我知道这是否不适合你。


推荐阅读