Python 在discord.py-rewrite中将Dm发送给用户命令

Python 在discord.py-rewrite中将Dm发送给用户命令,python,python-3.x,discord,discord.py-rewrite,Python,Python 3.x,Discord,Discord.py Rewrite,因此,我试图发出一个DM命令,询问我们希望将DM消息(值)发送给哪个用户,例如-!vx dm这是消息的内容将向消息的作者发送一条消息,询问-“你想要dm谁?”并且作者将通过提及他想要向其发送dm的人进行回复,在这样做之后,它将dm发送给用户,然后发送一条消息,说“我已将消息发送给X”“.这就是我想要的命令 @client.command() async def dm(ctx, value): member = discord.Member if not discord.Member el

因此,我试图发出一个DM命令,询问我们希望将DM消息(值)发送给哪个用户,例如-
!vx dm这是消息的内容
将向消息的作者发送一条消息,询问-“你想要dm谁?”并且作者将通过提及他想要向其发送dm的人进行回复,在这样做之后,它将dm发送给用户,然后发送一条消息,说“我已将消息发送给X”“.这就是我想要的命令

@client.command()
async def dm(ctx, value):
    member = discord.Member if not discord.Member else discord.Member
    await ctx.send(f"{ctx.author.mention}, Whom do you want to send the message to?")
    def check(m):
        return m.content == member.mention == member
    await ctx.member.send(f"**{value}**")
    await ctx.member.send(f"||Sent by {ctx.author.mention} via VX Helper.||")
    e = discord.Embed(title=f"Message sent to {member.display_name}.", description=f"Message Content - {value}.", colour=0x40cc88)
    e.set_footer(text=f"Sent by {ctx.author.display_name}", icon_url=ctx.author.avatar_url)
    await ctx.channel.purge(limit=3)
    await ctx.send(embed=e)
这段代码在heroku中打印出这个错误-

2020-06-20T12:03:12.632899+00:00 app[worker.1]: Ignoring exception in command dm:
2020-06-20T12:03:12.635752+00:00 app[worker.1]: Traceback (most recent call last):
2020-06-20T12:03:12.635825+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/discord/ext/commands/core.py", line 85, in wrapped
2020-06-20T12:03:12.635826+00:00 app[worker.1]:     ret = await coro(*args, **kwargs)
2020-06-20T12:03:12.635861+00:00 app[worker.1]:   File "run.py", line 336, in dm
2020-06-20T12:03:12.635862+00:00 app[worker.1]:     await ctx.member.send(f"**{value}**")
2020-06-20T12:03:12.635920+00:00 app[worker.1]: AttributeError: 'Context' object has no attribute 'member'
2020-06-20T12:03:12.635960+00:00 app[worker.1]: 
2020-06-20T12:03:12.635963+00:00 app[worker.1]: The above exception was the direct cause of the following exception:
2020-06-20T12:03:12.635963+00:00 app[worker.1]: 
2020-06-20T12:03:12.635999+00:00 app[worker.1]: Traceback (most recent call last):
2020-06-20T12:03:12.636064+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/discord/ext/commands/bot.py", line 892, in invoke
2020-06-20T12:03:12.636065+00:00 app[worker.1]:     await ctx.command.invoke(ctx)
2020-06-20T12:03:12.636097+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/discord/ext/commands/core.py", line 824, in invoke
2020-06-20T12:03:12.636098+00:00 app[worker.1]:     await injected(*ctx.args, **ctx.kwargs)
2020-06-20T12:03:12.636131+00:00 app[worker.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/discord/ext/commands/core.py", line 94, in wrapped
2020-06-20T12:03:12.636132+00:00 app[worker.1]:     raise CommandInvokeError(exc) from exc
2020-06-20T12:03:12.636184+00:00 app[worker.1]: discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'Context' object has no attribute 'member'

任何帮助都将不胜感激

因此,理想情况下,您应该在命令中获取用户输入。使用
等待
,您将不会感到头痛,尽管您似乎有点试图这样做。下面是一个简单的方法,您可以使用一些代码向提到的人发送消息

@bot.command()
异步def dm(ctx,用户:discord.user,*,值):
#向提到的用户发送消息!
等待用户发送(f“**{value}**”)
等待user.send(f“| |由{ctx.author.display|u name}通过VX助手发送。| |”)
所以本质上,这里有两件事需要理解。首先,我们正在解析一个
user:discord.user
参数,这就是要向其发送消息的人。使用
:discord.User
仅仅意味着D.py将自动将其转换为有效用户,因此我们可以直接发送到该对象。 这里要了解的第二件事是
*,value
的用法。简单地说,这意味着在您提到用户之后出现的任何内容都将被放入
变量的字符串中。你可以阅读更多关于这背后的逻辑


在这之后,您可以随意完成代码。我希望这对你有帮助

因此,理想情况下,您应该在命令中获取用户输入。使用
等待
,您将不会感到头痛,尽管您似乎有点试图这样做。下面是一个简单的方法,您可以使用一些代码向提到的人发送消息

@bot.command()
异步def dm(ctx,用户:discord.user,*,值):
#向提到的用户发送消息!
等待用户发送(f“**{value}**”)
等待user.send(f“| |由{ctx.author.display|u name}通过VX助手发送。| |”)
所以本质上,这里有两件事需要理解。首先,我们正在解析一个
user:discord.user
参数,这就是要向其发送消息的人。使用
:discord.User
仅仅意味着D.py将自动将其转换为有效用户,因此我们可以直接发送到该对象。 这里要了解的第二件事是
*,value
的用法。简单地说,这意味着在您提到用户之后出现的任何内容都将被放入
变量的字符串中。你可以阅读更多关于这背后的逻辑


在这之后,您可以随意完成代码。我希望这对你有帮助

ctx.author
不是
ctx.member
。我强烈建议查看文档this
discord.Member if not discord.Member else discord.Member
也没有意义。我不想将消息发送给作者,我希望它发送给他提到的用户。
ctx.author
not
ctx.Member
。我强烈建议查看文档this
discord.Member if not discord.Member else discord.Member
也没有意义。我不想将消息发送给作者,我希望它发送给他提到的用户。