본문 바로가기
프로젝트/디스코드 봇

[Python] #4 디스코드 봇 만들기 - Embed

by 알래스카비버 2021. 7. 11.
반응형

목차

     

    이번 글에서는 Embed를 사용해 메시지를 박스 같은 곳 안에 담아 보내보겠습니다.

    #3번 글에서 계속하겠습니다.

    https://howbeautifulworld.tistory.com/55

     

    Embed 생성

    embed를 만드는 코드입니다.

    embed = discord.Embed(title="title", description='description', color=discord.Color.green())
    await ctx.send(embed=embed)

     

    링크와 썸네일도 넣을 수 있으며

    embed = discord.Embed(title='title', description='description', url='https://howbeautifulworld.tistory.com/', color=discord.Color.random())
    embed.set_thumbnail(url=ctx.author.avatar_url)
    await ctx.send(embed=embed)

     

    field를 추가할 수도 있습니다.

    embed.add_field(name='field 1 title', value='field 1 value', inline=False)
    embed.add_field(name='field 2 title', value='field 2 value', inline=False)
    embed.add_field(name='field 3 title', value='field 3 value', inline=False)
    embed.add_field(name='field 4 title', value='field 4 value', inline=False)

    inline은 줄 바꿈 여부입니다.

    embed.add_field(name='field 1 title', value='field 1 value', inline=True)
    embed.add_field(name='field 2 title', value='field 2 value', inline=True)
    embed.add_field(name='field 3 title', value='field 3 value', inline=True)
    embed.add_field(name='field 4 title', value='field 4 value', inline=True)

     

    마지막으로 footer입니다.

    embed.set_footer(text=ctx.author.display_name)

     

    적용

    value가 ''이 아닐 때 embed에 field를 추가해주었습니다.

    마지막에 embed에 field가 없으면 '잘못된 명령어입니다.' 라는 메시지를 보내게 해 주었습니다.

    @bot.command(name='롤')
    async def random_lol(ctx, *, text=''):
        result = lol.getResult(text)
        embed = discord.Embed(title="결과", color=discord.Color.green())
        for key, value in result.items():
            if value != '':
                embed.add_field(name=key, value=value, inline=True)
        if embed.fields:
            await ctx.send(embed=embed)
        else:
            await ctx.send("잘못된 명령어입니다.")

     

     

    반응형

    댓글