SteweX
@SteweX

Как перенаправлять сообщения от пользователи, в embed бота?

Привет, я хочу узнать, как перенаправлять сообщение пользователя, в сообщение бота. Вот что-то на подобии этого? unknown.png?width=644&height=475unknown.png
  • Вопрос задан
  • 277 просмотров
Решения вопроса 1
Два варианта:
1. То как предложил Александр, использовать параметры команды:
@bot.command()
async def report(ctx, user: discord.Membmer, *, reason: str):  # первый kwarg используется как "собирающий" аргумент
# https://discordpy.readthedocs.io/en/v1.3.4/ext/commands/commands.html#keyword-only-arguments
    ...

Команда в таком случае будет вызываться следующим образом: [p]report User#0000 Нарушение правила 42
2. Ждать ответа:
Для этого вам понадобиться ждать события сообщения:
https://discordpy.readthedocs.io/en/v1.3.4/api.htm...
from asyncio import TimeoutError as AsyncTimeoutError

@bot.command()
async def report(ctx):
    ...
    try:
        member = await bot.wait_for("message", check=lambda m: m.author == ctx.author, timeout = 60)  # Базовая проверка - будет ловить сообщения от пользователя запустившего команду везде.
    except AsyncTimeoutError:
        await ctx.send("Вы уснули, я ушёл")
        return
     # На данный момент переменная "member" является лишь строкой, и не факт что это реальный пользователь
     # Используем конвертер для перевода из строки в пользователя
     # https://discordpy.readthedocs.io/en/v1.3.4/ext/commands/api.html#discord.ext.commands.MemberConverter
     try:
         member = commands.MemberConverter().convert(ctx, member)
     except commands.BadArgument:
         await ctx.send("Это не пользователь, кого вы пытаетесь ~~на...~~ обмануть")
         return
      # и тоже самое для причины
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы