Search code examples
pythondiscordcommandembed

discord.py command that create embed


im trying to code a discord.py bot where you can create embeds through a command, something like the embed creation function in mimu bot. i tried to code it but it dont work, any ways to make it work?

async def embed_create(ctx):
    def check(message):
        return message.author == ctx.author and message.channel == ctx.channel

    await ctx.send('Enter your title.\nPut `none` if you do not want anything in this section.')
    await client.wait_for("message", timeout = 300.0, check=check)
    if message.content == "none":
      title = ""
    else:
      title = ("message")

    await ctx.send('Enter your title.\nPut `none` if you do not want anything in this section.')
    await client.wait_for("message", timeout = 300.0, check=check)
    if message.content == "none":
      desc = ""
    else:
      desc = ("message")

    embed = discord.Embed(title=title.content, description=desc.content, color=0xa9e9e9```

Solution

  • I figured out the problem and fixed it, here:

    async def embed_create(ctx):
        def check(message):
            return message.author == ctx.author and message.channel == ctx.channel
    
        await ctx.send('Enter your title.\nPut `none` if you do not want anything in this section.')
        title = await client.wait_for("message", timeout = 300.0, check=check)
        title = title.content
        if title == "none":
          title = "** **" # it will still be empty but not give an empty error message
        else:
          title = title
    
        await ctx.send('Enter your title.\nPut `none` if you do not want anything in this section.')
        desc = await client.wait_for("message", timeout = 300.0, check=check)
        desc = desc.content
        if desc == "none":
          desc = "** **"
        else:
          desc = desc
    
        embed = discord.Embed(title=title, description=desc, color=0xa9e9e9)
    
        await ctx.send(embed=embed)