Как отправить сообщение DM, зная идентификатор пользователя? - PullRequest
0 голосов
/ 16 марта 2020
import discord
from discord.ext import commands
from dotenv import load_dotenv

load_dotenv("token.env")
token = os.getenv("TOKEN")
bot = commands.Bot(command_prefix="!")

@bot.event
async def on_message(message):
    user="An_ID"
    if message.author == bot.user :
        return
    if message.content.startswith("!"):
        await bot.process_commands(message)
        return
    else :
      embed = discord.Embed(title="message",color=0x4a1775)
      await message.author.send(embed=embed)
      return

Этот фрагмент кода отправляет сообщение автору сообщения, которое вызвало функцию. Вместо этого я хочу отправить его пользователю, который соответствует идентификатору, сохраненному в переменной user. Это часть более крупного проекта, и идентификатор импортируется из внешней базы данных, где я сохранил разные идентификаторы пользователей.

1 Ответ

1 голос
/ 16 марта 2020

Чтобы отправить сообщение пользователю, если вы знаете его идентификатор, выполните следующие действия:

user_object = bot.get_user(id)
await user_object.send("Message")

, где id является целым числом, см. Документацию API по адресу:
https://discordpy.readthedocs.io/en/latest/api.html?highlight=get_user#discord .Client. get_user
https://discordpy.readthedocs.io/en/latest/api.html?highlight=get_user#discord .User.send

...