HK

python

파이썬 디스코드봇 개발 #3 임베드로 메세지 꾸미기(1)

DevRuby 18 일 전 조회 수 77 추천 수 0

안녕하세요! 10분만에 강좌 하나 더쓰는 루비입니다.

이번 강좌에서는 제목과 같이 임베드 모듈을 사용하여 메세지를 꾸며볼껀데요, 지난 강좌때 다음에 설명한다고 넘어갔던거만 두번정도 있던것같아 다시 정리해봅니당


class discord.Embed()

임베드는 디스코드 모듈 안의 클래스로, 디스코드 내에서는 이렇게 생겼습니다.

46c466c6e1c06eced17a210ec4a8a7df.PNG11fd2237d7aa141fa966b97bc6539669.PNG52eb9d527743c131acd232e1de201132.PNG1aa8fdb6be54507b6e3abb7cb8f1808d.PNG

매우 많은 봇들이 메세지를 보낼때 임베드를 이용합니다. 그 이유는 가독성, 디자인 등등... 매우 많습니다. 제 봇 역시 메세지를 보낼때 임베드를 많이 이용합니다.

그러면 이 임베드는 어떻게 만들고, 어떻게 보내는걸까요?


임베드의 생성은 다음과 같습니다.

E = discord.Embed(title="타이틀", description = "설명", color = 0x000000)

이런식으로 간단하게 임베드를 생성할 수 있습니다. 물론 임베드 클래스 안에 title, description, color 만 있는게 아니고요. url, type, timestamp, Empty, footer, image 등  매우 많은 매개변수들이 있죠. 오늘은 임베드에 대해서'만' 알아볼거니 전부 다 설명해보려 합니다.

임베드의 전송

임베드는 send() 함수 안에서 생성하고 보내거나, 아니면 따로 생성한것을 보내는 등의 방식으로 전송할 수 있습니다.

본 강좌에서는 send() 함수 밖에서 생성한 후, 보내는 방식으로 하겠습니다.

embed = discord.Embed(title="제목!", description = "설명!", color = 0xffffff)

await message.channel.send(embed=embed)

와 같이 생성하고 전송합니다.


Title

임베드를 생성할때 필수로 넣어줘야하는 값인 title은 임베드의 제목을 나타냅니다.

cc665e5f0177dfc8c1bc2da081743ba7.png

코드 : 

embed=discord.Embed(title='흔해빠진 제목 1')

await message.channel.send(embed=embed)


Color

이렇게 title 하나만 넣었을때도 작동은 합니다만... 너무 안예쁩니다...

여기서 여러분은 조금더 예쁘게(?) 임베드를 꾸미기 위해 color값을 변경할 수 있습니다.

f5383fde5d78a8b4b94116eff21dcf01.png

코드 :

embed=discord.Embed(title='흔해빠진 제목 1', color = 0xff0000)

await message.channel.send(embed=embed)

아까 넣었던 제목 왼쪽에 색깔이 생겼습니다. 이것도 충분히 괜찮긴 한데..... 뭔가 허전합니다


Description

b8713d2357fda0e36109fc3ba6a2a03c.png



코드:

embed=discord.Embed(title='흔해빠진 제목 1', description = "뭔가 이상한 내용", color = 0xff0000)

await message.channel.send(embed=embed)

임베드의 설명이 추가됩니다. 이제 조금 보기 좋아지네요!


Url

58358783a0551d0e755e470620e81209.png


코드:

embed=discord.Embed(title='흔해빠진 제목 1', description = "뭔가 이상한 내용", color = 0xff0000, url = "https://www.koreaminecraft.net/")

await message.channel.send(embed=embed)

임베드의 제목(title)을 클릭하면, 지정해놓은 url인 한마포가 열립니다. 제가 지금 노동중인곳이죠





살려주세요

원래 오늘 다 쓰려고 했지만..... 다쓰면 한 5시는 될 것 같아서(현 3시 40분) 다음 글에서 마저 쓰겠습니다... 으어ㅓㅓ 휴식이 필요해

총총


6개의 댓글

mchang
4 일 전

오! 감사합니다

KimLotTV
6 일 전

저기 혹시

!공지 "할말"

치면 embed 로 "할말" 이 나오게 할수는 없낭? 계속 찾고있는데 안나와서..

DevRuby
6 일 전
@KimLotTV

메세지를 보낸 채널에 임베드를 보낼려먼 간단히 await message.channel.send(embed=discord.Embed(title=message.context[3:])) 으로 보낼 수 있습니다.

임베드 클래스의 title 값에 메세지 내용의 3번째 글자부터. 즉 !공지를 뺀 나머지 말들을 넣고, 전송합니다

공지 채널을 찾고, 보내는것은 https://github.com/kijk2869/Discord-Python-Notice-Korean https://github.com/kijk2869/Discord-Python-Notice-Korean 에서 예제를 다운로드 하실 수 있을것같습니다.

KimLotTV
5 일 전
@DevRuby

저 죄송한데.. 제가 파이썬을 잘 못하고 디스코드도 잘 못해서.. 구문을 주실수 있을까요?

DevRuby
5 일 전
@KimLotTV

소스코드를 보여달라고 하신거면... 정확히 설명해주세요.

뭐 예를들어 임베드의 타이틀에 넣는다던가... description에 넣는다던가... 아니면 공지 채널에 보낸다던가

!공지 할말

이라는 명령어를 쳤을때 그 채널에 임베드를 보내는 방법은

if(message.content.split()[0] == "!공지"):

text = message.content[3:]

await message.channel.send(embed=discord.Embed(title=text))

text 변수에 전송한 메세지의 4번째 글자부터를 넣고

channel.send() 함수로 embed를 보냅니다. 파이썬을 아예 모르는분들을 대상으로 하는 강의는 아니다보니... 파이썬에 대해서 조금이라도 공부하시고 보셔야 이해가 되실것같습니다 ㅠㅠ

KimLotTV
4 일 전
@DevRuby

아 넵..ㅠㅠ

제목 글쓴이 조회 수 날짜 추천 수
[프리미엄] [2] [HK] 마인크래프트 개발 디스코드 - 컨텐츠를 만들고 서버 어드민이 되어보자! 5 DC 434 4 일 전 0
[채널공지] 고퀄리티 서버 만들기 안내 DC 82 4 일 전 0
[python] 심파기 - 파이썬 [2] 변수 - 1 N logdev 12 4 시간 전 0
[개발 [ 마인크래프트 ]] 마인크레프트 미스틱몹 변장에 대해서 알아보자 Cloud 18 13 시간 전 0
심해까지 파고들어가는 기초 강좌 - 파이썬 강좌 1 logdev 30 1 일 전 0
[스크립트 기초] [ skript lecture ] custom craft 1 GalaxyNetwork 38 1 일 전 0
[마크소식] Minecraft: Java Edition - Snapshot 20w22a DC 35 1 일 전 0
[python] 파이썬 얕은 복사, 깊은 복사 2 logdev 34 2 일 전 0
[python] 파이썬으로 검색 알고리즘 짜기 3 logdev 27 2 일 전 1
[스킨제작] 마인크래프트 하늘 느낌 스킨 배포 2 륜온 41 2 일 전 0
[python] 파이썬 디스코드봇 개발 #6 유저 뮤트 기능 만들기 1 DevRuby 68 5 일 전 0
[질문채널] 스크립트좀 도와주세요 ㅠㅠ 3 Y_Lemon 42 5 일 전 0
[서버제작 기초] 마인크래프트 서버 기초강좌 :: (6) 스크립트 플러그인을 사용해 보자! 승규ㅣrunkan 44 6 일 전 0
[마크소식] Minecraft (Bedrock) - 1.16.0.63 3 DC 109 12 일 전 0
[마크소식] Minecraft: Java Edition - Snapshot 20w21a 1 DC 130 13 일 전 0
[Java] [Java기초] 2강 - 출력함수 AshBluebird 64 15 일 전 0
[python] 파이썬 디스코드봇 개발 #5 밴, 킥 등의 관리 명령어 만들기 1 DevRuby 147 17 일 전 0
[서버제작 기초] 마인크래프트 서버 기초 강좌 :: (3) 유저 권한 설정하기 1 승규ㅣrunkan 126 17 일 전 0
[python] 파이썬 디스코드봇 개발 #4 임베드로 메세지 꾸미기(2) 1 DevRuby 73 18 일 전 0
[python] 파이썬 디스코드봇 개발 #3 임베드로 메세지 꾸미기(1) 6 DevRuby 77 18 일 전 0




개발자 최신글
사진이 없습니다.

자유

와;; 화면비 안맞는거 이제 봤네;; 1

ys7

2020-06-02

0

https://www.koreaminecraft.net/files/thumbnails/435/766/001/262x150.crop.jpg
저택같은 기숙사(서버) 2

zoom5699

2020-06-02

1