Python 3.x 将角色授予具有DiscordPy的其他用户

Python 3.x 将角色授予具有DiscordPy的其他用户,python-3.x,discord.py,Python 3.x,Discord.py,我试图使用DiscordPy命令来指定一个特定的角色,但每次使用都会得到相同的答案,但没有帮助: 很明显,我遗漏了一个基本部分,但我不知道是什么。中介绍了有一个命令,但没有说明如何为其他用户使用该命令。事实上,尝试wait add_roles(“队长”)会出现错误NameError:name“add_roles”未定义 我错过了什么?为什么add_roles在文档中不存在,以及如何针对不同的用户使用它 这是我目前拥有的(部分),但显然不起作用: 导入discord,discord.utils,r

我试图使用DiscordPy命令来指定一个特定的角色,但每次使用都会得到相同的答案,但没有帮助:

很明显,我遗漏了一个基本部分,但我不知道是什么。中介绍了有一个命令,但没有说明如何为其他用户使用该命令。事实上,尝试
wait add_roles(“队长”)
会出现错误
NameError:name“add_roles”未定义

我错过了什么?为什么
add_roles
在文档中不存在,以及如何针对不同的用户使用它

这是我目前拥有的(部分),但显然不起作用:

导入discord,discord.utils,random,os,re,json
从discord.ext导入命令
从discord.utils导入获取
从dotenv导入加载\u dotenv
client=discord.client()
加载_dotenv()
key=os.getenv('DISCORD_key'))
@客户端事件
异步def on_消息(消息):
如果message.author==client.user:
返回
打印({0.author}:{0.content}的消息)。格式(消息))
#要在正确的频道中使用这些命令吗
如果str(message.channel).lower().startswith(“bot”):
如果message.content.lower().startswith(“$addcaptain”):
如果len(消息提及)=0:
wait message.channel.send(“需要用户赋予队长角色”)
返回
其他:
wait add_roles(“队长”)不起作用,我认为这是针对发送消息的用户的,而不是提到的用户
client.run(键)
key=os.getenv('DISCORD_key'))

添加角色
是属于
成员
对象的方法。这意味着您需要获取目标成员,在您的示例中是
消息。将[0]
作为
消息提及。提及
返回成员列表,然后粘贴
。在其末尾添加角色(…)

此外,添加角色时,它接受
role
对象,而不仅仅是名称或ID。这意味着您需要首先获取角色,这可以通过多种方式完成,但我将使用的方法是
utils.get()
(也可以使用其他方法,如
Guild.get\u role()

这就引出了您的代码:

@client.event
异步def on_消息(消息):
#代码
如果str(message.channel).lower().startswith(“bot”):
如果message.content.lower().startswith(“$addcaptain”):
如果len(消息提及)=0:
wait message.channel.send(“需要用户赋予队长角色”)
返回
其他:
role=discord.utils.get(message.guild.roles,name=“队长”)
等待消息。提及[0]。添加_角色(角色)

参考文献:

  • -
    message.indications[0]
    获取列表的第一个元素,即所提到的
    discord.Member
  • -如果要使用此选项,请执行以下操作:
    role=message.guild.get_角色(11223344566778899)

    其中
    11223344566778899
    队长的角色ID

很好的解释,迪吉,谢谢你。对不起,我也不能投票,需要15个代表。