Я делаю бота для разногласий, одна из функций которого заключается в том, что вы можете использовать команду, чтобы бот встраивал что-то в чат. Это код:
import discord
from datetime import datetime
from discord.ext.commands import Bot
from discord.ext import commands
from discord.ext.commands import has_permissions
client = commands.Bot(command_prefix='=')
@client.command(pass_context=True)
async def embed(ctx, args):
await ctx.channel.purge(limit=1)
embed = discord.Embed(color=discord.Colour.red())
embed.set_author(name=args)
await ctx.send(embed=embed)
client.run('YOUR-TOKEN-GOES-HERE')
Но когда я пытаюсь вставить более одного слова, он встраивает только последнее. Почему это происходит?






Вам нужно добавить * перед последним аргументом, чтобы получить полную строку, например:
async def embed(ctx, *, args):
Итак, ваша функция будет выглядеть так:
@client.command(pass_context = True)
async def embed(ctx, *, args):
await ctx.channel.purge(limit = 1)
embed = discord.Embed(color = discord.Colour.red())
embed.set_author(name = args)
await ctx.send(embed = embed)