弄清楚如何使Discord Bot用Python发送DM

时间:2020-10-04 09:30:56

标签: python discord bots

我正在尝试向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)

,但仍会引发相同的错误。我在做什么错了?

2 个答案:

答案 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

祝您编程愉快!