Discord.py 완성하기

Embed 생성, 메세지 전송

Embed란?

디스코드를 사용하시는 유저분이라면, 봇들이 다음과 같은 메세지들을 보내는걸 보신적이 있을겁니다.

일반적인 텍스트 메세지가 아닌, 블록으로 둘러쌓인 형태의 메세지입니다.

칙칙하고 가독성이 떨어지던 텍스트를 다음과 같이 예쁘고 가독성이 뛰어나게 바꿀 수 있습니다.

실제로 대부분의 봇들은 간단한 메세지가 아니라면 대부분 Embed를 사용해 메세지를 보냅니다.

 

 

Embed의 생성

Embed는 다음과 같이 간단하게 생성 가능합니다.

embed = discord.Embed(title="TITLE")

여기서 title은 Embed를 생성할때 필수적으로 들어가야하는 요소입니다.

생성시 설정 가능한 요소들과 그 자료형은 다음과 같습니다.

 

title - str

description - str

url - str

timestamp - datetime.datetime

color - int

color 값은 16진수를 이용하면 편합니다.

빨강색은 0xff0000, 초록색은 0x00ff00, 파란색은 0x0000ff로 표현 가능합니다.

Ex)

embed = discord.Embed(
title="title", 
description = "description", 
color = 0x00ff00, 
timestamp = datetime.datetime.now(),
url = "https://www.youtube.com/watch?v=Ue7U67ENudQ")

해당 임베드는 다음과 같이 생겼을 것입니다.

 

Embed 메세지 전송

아마 discord.py를 잠깐이라도 해보신 분들이라면, 다음 함수를 알고계실겁니다.

await TextChannel.send()

채널에 메세지를 보내는 가장 기본적이라고 할 수 있는 함수죠.

send 함수를 이용해 Embed는 다음과 같이 보낼 수 있습니다.

await TextChannel.send(embed= myembed)

(myembed는 제가 임의로 정한 discord.Embed 형식 변수입니다. 저자리에 다른걸 집어넣어도 상관 없습니다)

!embed 명령어를 사용하면 아까 만든 embed를 전송하는 봇을 만들어보겠습니다.

import discord
import datetime

client = discord.Client()

@client.event
async def on_message(message):
    if(message.content == "!embed"):
        embed = discord.Embed(
        title="title", 
        description = "description", 
        color = 0x00ff00, 
        timestamp = datetime.datetime.now(),
        url = "https://www.youtube.com/watch?v=Ue7U67ENudQ")
        await message.channel.send(embed=embed)


client.run('token')

댓글

댓글 본문
graphittie 자세히 보기