Discord.py rewrite 如何 DM 命令?

问题描述

我试图让我的机器人在执行-help"时向用户发送帮助.

I am trying to have my bot DM the user the help when "-help" is executed.

我已经尝试在我的代码中执行此操作,但它不起作用.

I have tried doing this in my code already but it will not work.

async def help(ctx):
  helpembed = discord.Embed(color=discord.Color.purple())
  helpembed.set_author(name="Help")
  helpembed.add_field(name="-new", value="Creates a new ticket. [Logged]",inline=False)
  helpembed.add_field(name="-close", value="Closes the ticket.People with the role 'Viewing Team' can close ticets. [Logged]",inline=False)
  helpembed.add_field(name="-setup", value='Sets Up your server so it can be used',inline=False)
  helpembed.add_field(name="-help", value="Shows this message :rofl:",inline=False)
  await client.send_message(ctx.message.author, embed=helpembed)
await ctx.send("Help sent in DM's.")```

The bot should DM the user with help. Instead it does nothing.


解决方案

向discord.py-rewrite,你使用 User.send 方法:

To send a private message to a user in discord.py-rewrite, you use the User.send method:

async def help(ctx):
    ...
    await ctx.author.send(...)

这是因为 User 是抽象 Messageable

This is because User is a subclass of the abstract Messageable class

相关文章