按名称获取角色(discord.py 重写)

Iwk*_*aja 6 python discord.py

我的 Discord 机器人有问题。我想创建一个具有支持者角色读取权限的文本通道,但我不想使用role_id. 因此,我尝试使用以下代码,但无法创建任何频道。

\n
          supporter_role = discord.utils.get("Supporter")\n            overwrites = {\n            supporter_role: discord.PermissionOverwrite(read_messages=True), guild.default_role: discord.PermissionOverwrite(read_messages=False), author: discord.PermissionOverwrite(read_messages=True)\n          }\n          channel = await guild.create_text_channel(name='\xe2\x95\x91Ticket - {}'.format(authorname), overwrites=overwrites)\n
Run Code Online (Sandbox Code Playgroud)\n

小智 7

函数discord.utils.get接受一个可迭代对象并在可迭代对象中搜索匹配项。由于您没有指定可迭代对象,因此 get 函数并不真正知道在哪里匹配给定的名称。

因此,您必须指定guild.roles为第一个参数。

discord.utils.get(guild.roles,name="Supporter")
Run Code Online (Sandbox Code Playgroud)

  • 虽然此代码可以解决问题,但[包括解释](https://meta.stackexchange.com/q/114762) 如何以及为何解决问题将真正有助于提高帖子的质量,并且可能会产生结果更多的赞成票。请记住,您是在为将来的读者回答问题,而不仅仅是现在提问的人。请[编辑]您的答案以添加解释并指出适用的限制和假设。 (7认同)