我正在尝试向Discord机器人添加一个命令,该命令可通过DM发送机密信息。这是我目前拥有的:
import discord
from discord.ext import commands
@bot.command(name='password', help='DM's you your password')
async def on_message(message):
await member.create.dm()
await member.dm_channel.send('password')
我一直遇到的问题是“名称'member'未定义”。我曾尝试用Member,user和User替换Member,但我没有通过。我什至试图使机器人仅发送以下信息:
import discord
from discord.ext import commands
@bot.command(pass_context=True)
async def DM(ctx, user: discord.member, *, message=None):
message = message or "This Message is sent via DM"
await bot.send_message(user, message)
,但仍会引发相同的错误。我在做什么错了?
答案 0 :(得分:1)
CTX具有message属性,该属性具有author属性,可用于直接发送消息。
因此触发命令的人将是ctx.message.author。
我也不认为pass_context = True是必需的,但我可能会误会。
@bot.command()
async def DM(ctx):
return await ctx.message.author.send("Henlo Werld!")
答案 1 :(得分:0)
您不应该使用send_message
,它非常old version是discord.py。
因此,首先-更新您的Discord库-pip install -U discord.py==1.4.2
。
您的问题的答案为Frequently Asked Questions
为了将来获得帮助,我建议加入Discord support server
祝您编程愉快!