Как сделать аргументы через пробел Discord.py

Мне нужно сделать команду для отправки сообщения в определенный канал. Но дело в том, что если записать сообщение с пробелом, то 2 часть сообщения будет относится к аргументу канала. То есть:

@bot.command()

async def send(ctx, message, * , channel: discord.TextChannel):

    await channel.send(message)

Если написать команду !send qq all #чат, то будет ошибка discord.ext.commands.errors.ChannelNotFound: Channel "all <#90072344357037126>" not found.

Как сделать так, чтобы пробел не означал конец аргумента?


Ответы (3 шт):

Автор решения: RAINGM
@bot.command()
async def send(ctx, channel: discord.TextChannel, *, message,):
    await channel.send(message)
→ Ссылка
Автор решения: towerty

Если вы хотите сохранить последовательность аргументов, то вам следует использовать команду так - !send "my message" #channel. В таком случае, всё что вы передаёте в кавычках будет считаться как аргумент message. Второй способ объяснил человек с ником RAINGM.

→ Ссылка
Автор решения: HellSai

У вас сама команда правильная, но вы в неправильном порядке расставили их. Вы прописали их вот так: (ctx, message - одно сообщение до пробела, *, channel: discord.TextChannel - можно ввести как один канал, как и больше) Вы просто должны поменять местами аргументы в команде: (ctx, channel: discord.TextChannel, *, message) Надеюсь помог.

→ Ссылка