Я хочу послать ДМ через бот-диск разногласия автору сообщения, полученного в функции "on_message". Как я могу это сделать? - PullRequest
1 голос
/ 01 марта 2020
from discord.ext import commands
load_dotenv("token.env")
token = os.getenv("Token")
bot = commans.Bot(command_prefix="!")

@bot.event
async def on_message(message):
     if message.author == bot.user:
          return
     if message.content.startswith("!"):
          await bot.process_commands(message)
          return
     else:
          author = message.author
          await message.channel.send(message.content)

Как изменить код в строке 15, чтобы отправить сообщение «автору»?

Ответы [ 2 ]

0 голосов
/ 02 марта 2020

Вы можете использовать await ctx.author.send (), чтобы тот, кто запускает команду, отправлял туда dms

from discord.ext import commands
load_dotenv("token.env")
token = os.getenv("Token")
bot = commands.Bot(command_prefix="!")

@bot.event
async def on_message(message):
     if message.author == bot.user:
          return
     if message.content.startswith("!"):
          await bot.process_commands(message)
          return
     else:
          author = message.author
          await ctx.author.send(message.content)

0 голосов
/ 01 марта 2020

Для этого вы можете использовать Member.create_dm(). Вы можете изменить свой код следующим образом:

from discord.ext import commands
load_dotenv("token.env")
token = os.getenv("Token")
bot = commands.Bot(command_prefix="!")

@bot.event
async def on_message(message):
     if message.author == bot.user:
          return
     if message.content.startswith("!"):
          await bot.process_commands(message)
          return
     else:
          c = await message.author.create_dm()
          await c.send(message.content)

Вы также ошиблись commands в bot = commands.Bot(...:)

...