Ping 成员 discord.py
Ping members with discord.py
我正在为我的机器人制作一个命令,当使用该命令时,它将向 DM 成员发送命令 +ping @Member
。这是我的代码:
if message.content.startswith('+ping'):
ping = message.content.replace("+ping ","")
dm_member = ping
pinger = message.author
await dm_member.send('You got pinged by:')
await dm_member.send(pinger)
但在 return 我得到:
Traceback (most recent call last):
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/client.py", line 343, in _run_event
await coro(*args, **kwargs)
File "main.py", line 95, in on_message
await dm_member.send('You got pinged by:')
AttributeError: 'str' object has no attribute 'send'
如何修复此 AttributeError?
当我用 message.author
替换 dm_member
时(因此 ping 作者)它有效。
我认为它不起作用,因为 str 对象没有 discord 属性。但是我该如何解决这个问题?
if message.content.startswith('+ping'):
ping = message.content.replace("+ping ","")
user_id = int(ping[2:-1]) # convert to int
dm_member = await message.guild.get_member(user_id) # this function accepts an int
pinger = message.author
await dm_member.send('You got pinged by:')
await dm_member.send(pinger)
您将 dm_member
设置为等于 ping
,这是一个字符串,一个 Python 内置。 pinger
是作者的用户对象。要获取 ping 用户,请从 ping
中提取用户 ID,并使用它来使用 await message.guild.get_member(user_id)
.
查找用户对象
我正在为我的机器人制作一个命令,当使用该命令时,它将向 DM 成员发送命令 +ping @Member
。这是我的代码:
if message.content.startswith('+ping'):
ping = message.content.replace("+ping ","")
dm_member = ping
pinger = message.author
await dm_member.send('You got pinged by:')
await dm_member.send(pinger)
但在 return 我得到:
Traceback (most recent call last):
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/client.py", line 343, in _run_event
await coro(*args, **kwargs)
File "main.py", line 95, in on_message
await dm_member.send('You got pinged by:')
AttributeError: 'str' object has no attribute 'send'
如何修复此 AttributeError?
当我用 message.author
替换 dm_member
时(因此 ping 作者)它有效。
我认为它不起作用,因为 str 对象没有 discord 属性。但是我该如何解决这个问题?
if message.content.startswith('+ping'):
ping = message.content.replace("+ping ","")
user_id = int(ping[2:-1]) # convert to int
dm_member = await message.guild.get_member(user_id) # this function accepts an int
pinger = message.author
await dm_member.send('You got pinged by:')
await dm_member.send(pinger)
您将 dm_member
设置为等于 ping
,这是一个字符串,一个 Python 内置。 pinger
是作者的用户对象。要获取 ping 用户,请从 ping
中提取用户 ID,并使用它来使用 await message.guild.get_member(user_id)
.