Задать вопрос

Как сделать бота повторяху, но в канал на выбор?

я написал следующую команду, с помощью которой сообщение повторяется в другом канале. Но дело в том, что отсылается только первое слово после id, что я конечно понимаю, но вопрос в том, можно ли как-то отослать полный текст в другой канал на выбор от имени бота, написав его именно в чате дискорда?
async def message(self, idc: int, text):
        channel = self.client.get_channel(idc)
        await channel.send(text)
  • Вопрос задан
  • 114 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
retUrn3d
@retUrn3d
Пользователь, просто пользователь...
Вы получаете первый аргумент из сообщения, а вам нужно получить все сообщение. Есть два варианта.
(Как это работает у вас.)
>Было< два гуся и булочка
Чтобы ваш бот принял нужный текст и разом отослал его, необходимо обернуть все нужное в кавычки: '
>'Было два гуся и булочка'<
В таком случае, будет получено все сообщение в кавычках, а не только первое слово.

Так же накидал на скорую руку реализацию пересылки сообщения в выбранный канал, где мы получаем все содержание сообщения.
@bot.command()
async def forward(ctx, name_channel=None):
    # Получаем id канала по его названию.
    for channel in ctx.guild.channels:
        if channel.name == name_channel:
            channel = bot.get_channel(channel.id)
            # Получаем все содержание сообщения и отсылаем его в нужный нам канал.
            content = ctx.message.content
            await channel.send(content)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы